Мой запрос заключается в том, чтобы клиент захотел ввести диапазон дат (обычно месяц) и извлечь все журналы Главной книги, в которых по крайней мере одна строка размещена в этом диапазоне дат. Например, они опубликуют журналы в марте за январь и захотят узнать, какие журналы имеют эти данные.
Основная идея - LedgerJournalTable для первого только LedgerJournalTrans. Я не лучший с объектом запроса. Почему мой запрос не работает? Он возвращает несколько журналов вместо одного. Я думал, что могу сгруппироваться и быть в порядке, но я думаю, что это сработает.
static void Job38(Args _args)
{
Query q;
QueryRun queryRun;
QueryBuildDatasource qbd;
QueryBuildDatasource qbd2;
QueryBuildRange qbr;
LedgerJournalTable ledgerJournalTable;
;
info(strfmt("%1", date2strxpp(str2date('10/01/2011', 213))));
q = new Query();
qbd = q.addDataSource(tablenum(LedgerJournalTable));
qbd2 = qbd.addDataSource(tableNum(LedgerJournalTrans));
qbd2.relations(true);
qbd2.firstOnly(true);
qbd2.joinMode(JoinMode::InnerJoin);
qbr = qbd2.addRange(fieldNum(LedgerJournalTrans, TransDate));
qbr.value(strfmt('(TransDate > %1) && (TransDate < %2)', Date2StrXpp(str2date('10/01/2011', 213)), Date2StrXpp(str2date('10/31/2011', 213))));
queryRun = new QueryRun(q);
while (queryRun.next())
{
ledgerJournalTable = queryRun.get(tableNum(LedgerJournalTable));
info(strfmt("%1", ledgerJournalTable.JournalNum));
}
}