我的要求是客户想要输入日期范围(通常是一个月)并提取在该日期范围内至少有一行发布的所有总帐日记帐。例如,他们将在3月份发布1月期刊,并想知道哪些期刊有这些数据。
基本的想法是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));
}
}
答案 0 :(得分:2)
您是否尝试过JoinMode::ExistsJoin
?