Извлекать записи в отчете из нескольких топоров выбора - PullRequest
0 голосов
/ 03 мая 2018

У меня есть вопрос относительно того, как извлечь записи, которые я выбрал в форме, в отчет.

В настоящее время я могу выбрать несколько записей, но когда дело доходит до отчета, он продолжает обрабатывать одно и то же значение. Однако количество обработанных записей корректно, только значение повторяется.

Я не уверен, как это исправить, поэтому ваша помощь приветствуется.

Ниже приведена часть, в которой я получаю запись:

if (element.args() && element.args().dataset())
{
    switch(args.dataset())
    {
        case tablenum(LedgerJournalTrans) :
            ledgerJournalTrans = element.args().record();
            info(ledgerJournalTrans.Voucher);
            break;    
        case tablenum(LedgerJournalTable) :
            ledgerJournalTable = args.record();
            break;
    }    
}

1 Ответ

0 голосов
/ 04 мая 2018

element.args().record() указывает только на последнюю выбранную запись. Его источник данных приходит на помощь. Применяется обычный подход к обработке нескольких выбранных записей:

Common record;
FormDataSource fds;
fds = element.args().record().dataSource();
for (record = fds.getFirst(1) ?  fds.getFirst(1) : fds.cursor(); record; record = fds.getNext())
{
     // Do the printing using record
}

Этот подход часто используется в main методах функций, способных обрабатывать несколько выбранных записей.

FormLetter.getFormRecord также использует этот шаблон.

...