REPORTS_VERSION='2.0.8860.18846';  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"); }