Здравствуйте!
Вопрос: можно ли перед выполнением отчета запустить цикл по машинам?
function executeReport() { // функция выполнения отчета
// get data from corresponding fields
var id_res=$("#res").val();
if(!id_res)
{
msg("Выберите ресурс");
return;
} // exit if no resource selected
var u = getUnitByVIN();
if(!u)
{
msg ("Автомобиль с данным номером не найден");
return;
}
var nomer = $("#unit").val();
var sess = wialon.core.Session.getInstance(); // get instance of current Session
var res = sess.getItem(id_res); // get resource by id
var from = Date.parse($("#from").val())/1000;
var to = Date.parse($("#to").val())/1000;
var units = sess.getItems("avl_unit");
if (!units || !units.length){ msg("Units not found"); return; } // проверяет найдены ли объекты
var interval = { "from": from,
"to": to,
"flags": wialon.item.MReport.intervalFlag.absolute
};
$("#exec_btn").prop("disabled", true); // disable button (to prevent multiclick while execute)
var template = {// fill template object
"id": 0,
"n": "unit_stays",
"ct": "avl_unit",
"p": "",
"tbl": [{
"n": "unit_stays",
"l": "Стоянки",
"c": "time_begin,time_end,duration,location",
"cl": "Начало, Конец, Длительность, Местоположение",
"s": "",
"sl": "",
"p": "",
"sch": {
"f1": 0,
"f2": 0,
"t1": 0,
"t2": 0,
"m": 0,
"y": 0,
"w": 0
},
"f": 0
}]
};
[b] for (var i = 0; i < units.length; i++){ // construct Select object using found units
var unitId = units[i].getId(); // current unit in cycle[/b]
res.execReport(template, unitId, 0, interval, // выполнить выбранный отчет
function(code, data) { // execReport template
$("#exec_btn").prop("disabled", false); // включить клавишу
if (code) {
msg(wialon.core.Errors.getErrorText(code));
return;
} // выходит, если ошибочный код
if (!data.getTables().length) { // выходит, если не найдено таблиц
msg("<b>Нет данных для данного объекта</b>");
return;
} else showReportResult(data, nomer); // показ результата отчета
});
}
}