REPORTS_VERSION='2.0.9229.19760';
reps = {};
params = {};
reps.run = []; // здесь будут обработчики
function RunReport(r) {
try
{
dj.dom.byId("repAnswer" + r.id).innerHTML = '<<< Формирование отчёта >>>';
if (r.version == 4) { RunReport4(r); return; }
const service = "service/getdata.asmx/run";
dj.request.post(service, {
handleAs: "json",
data: JSON.stringify(params.build(r)),
headers: { 'Content-Type': 'application/json' }
}
).then(
function (response) {
var x = JSON.parse(response.d);
if (x.Error) {
ShowReportError(r, x.Error);
}
else ShowReportOK(r,x);
},
function (error) {
ShowReportError(r, error);
}
);
}
catch (ex) {
alert("Ошибка при запросе отчёта:\n" + ex.message);
}
//alert("runned");
}
function RunReport4(r) {
try {
dj.dom.byId("repAnswer" + r.id).innerHTML = '<<< Формирование отчёта >>>';
const service = "service/getdata4.asmx/run";
dj.request.post(service, {
handleAs: "json",
data: JSON.stringify(params.build(r)),
headers: { 'Content-Type': 'application/json' }
}
).then(
function (response) {
var x = JSON.parse(response.d);
if (x.Error) {
ShowReportError(r, x.Error);
}
else ShowResult4(r,x);
},
function (error) {
ShowReportError(r, error);
}
);
}
catch (ex) {
alert("Ошибка при запросе отчёта:\n" + ex.message);
}
//alert("runned");
}
function ShowResult4(report,text) {
document.getElementById("repAnswer" + report.id).innerHTML = '
' + text + '
';
}
function ShowReportOK(report, answer){
try
{
var html = '';
var arr = answer.Result;
for (var i = 0; i < arr.length; i++) {
html += '' + arr[i].Description + '';
}
html += '';
document.getElementById("repAnswer" + report.id).innerHTML = html;
}
catch (ex) {
alert("Ошибка в функции ShowReportOK:\n" + ex.message);
}
}
function ShowReportError(report, error) {
document.getElementById("repAnswer" + report.id).innerHTML = '' + error + '';
}
params.checkDate = function (str) {
try {
var arr = str.split(/(?:,|\s|\.)+/);
var d2 = parseInt(arr[2]);
var d1 = parseInt(arr[1]);
var d0 = parseInt(arr[0]);
return d2 > 2015 && d2 < 3015 /* таки я оптимист */
&& d1 > 0 && d1 < 13 && d0 > 0 && d0 < 32
}
catch (ex) {
return false;
}
}
// собирает параметры для отправки на сервер
params.build = function (r) {
var res = {};
var tp;
res.id = r.id;
res.sid = app.info.sid;
res.date1 = params.inputDate1.get("value");
res.date2 = params.inputDate2.get("value");
res.region = params.selRegion.get("value");
res.agent = params.selAgent.get("value");
res.oper = params.selOperator.get("value");
res.div = params.selDivision.get("value");
res.format = params.selFormat.get("value");
res.summa = params.cbxSumma.get("value") == "on";
res.route = params.cbxRoute.get("value") == "on";
res.seria = params.cbxSeria.get("value") == "on";
res.month = params.cbxMonth.get("value") == "on";
res.divide = params.cbxDivide.get("value") == "on";
tp = dijit.byId("param-CardNumber" + r.id.toString());
if (tp) res.CardNumber = tp.get("value");
else res.CardNumber = "";
tp = dijit.byId("param-TerminalNumber" + r.id.toString());
if (tp) res.TerminalNumber = tp.get("value");
else res.TerminalNumber = "";
tp = dijit.byId("param-Celler" + r.id.toString());
if (tp) res.Celler = tp.get("value");
else res.Celler = 0;
tp = dijit.byId("param-SeriaGroup" + r.id.toString());
if (tp) res.SeriaGroup = tp.get("value");
else res.SeriaGroup = 0;
tp = dijit.byId("param-ReportGrouping" + r.id.toString());
if (tp) res.ReportGrouping = tp.get("value");
else res.ReportGrouping = 0;
tp = dijit.byId("param-TimeType" + r.id.toString());
if (tp) res.TimeType = tp.get("value") == "on";
else res.TimeType = 0;
tp = dijit.byId("param-RouteCode" + r.id.toString());
if (tp) res.RouteCode = tp.get("value");
else res.RouteCode = "";
return res;
}
// это только для инициализации
params.assign = function () {
params.inputDate1 = dijit.byId("inputDate1");
params.inputDate2 = dijit.byId("inputDate2");
params.selOperator = dijit.byId("selOperator");
params.selDivision = dijit.byId("selDivision");
params.selFormat = dijit.byId("selFormat");
params.selRegion = dijit.byId("selRegion");
params.selAgent = dijit.byId("selAgent");
params.cbxSumma = dijit.byId("cbxSumma");
params.cbxRoute = dijit.byId("cbxRoute");
params.cbxSeria = dijit.byId("cbxSeria");
params.cbxMonth = dijit.byId("cbxMonth");
params.cbxDivide = dijit.byId("cbxDivide");
}