Cp1251

var version = java.lang.System.getProperty("java.version");
if (version.startsWith("1.8.0")) {
    load("nashorn:mozilla_compat.js");
}

importPackage(org.apache.log4j);
importPackage(Packages.publicapi);

log = LogManager.getLogger('PostLoadScript');

log.debug ('GLOBAL.get(\'MONTH\'): ' + GLOBAL.get('MONTH').intValue());
log.debug('Идет расчет на: ' + GLOBAL.get('DAT'));

DS_POTR.retrieve();
log.debug('DS_POTR: ' + DS_POTR.getRowCount() + ' строк.');
       
for(i = 0; i < DS_POTR.getRowCount(); i ++)
 for(j = 0; j < DS.getRowCount(); j ++)
   if (DS_POTR.getValue (i, 'ID_ACTIVE') == DS.getValue (j, 'ID_ACTIVE'))
     DS.setValue(j, 'month_' + GLOBAL.get('MONTH').intValue(), DS_POTR.getValue (i, 'DEF'));

DS.notifyViews();

if (GLOBAL.get('MONTH').intValue() < GLOBAL.get('MONTH_NUMBER').intValue() - 1)
{

  INFO.setText('Идет расчет на ' + MONTH_DS.getValue(GLOBAL.get('MONTH').intValue(), 'MONTH_NAME_SIMPLE') + '...');

  // положим в глобальные переменные следующий месяц и снова вызовем DB executor (т.е. рекурсивно сам этот скрипт)
  // можно, наверное, и просто вызвать скрипт, ну вот хотелось поиграться с DB экзекутором

  // таким образом получим обновление надписи на форме (идет расчет на месяц такой-то)
  // в одном потоке, т.е. в том же RML документе метод "запрос - вывод надписи - запрос - вывод надписи" не обновляет форму

  GLOBAL.put('DAT', MONTH_DS.getValue(GLOBAL.get('MONTH'), 'MONTH_CHAR'));
  GLOBAL.put('MONTH', GLOBAL.get('MONTH').intValue() + 1);

  DBE.execute();
}

else

  INFO.setText('Расчет закончен.');

ret = '';
