Axapta 如何在Dynamics AX 2012的内部联接中显示零值?

Axapta 如何在Dynamics AX 2012的内部联接中显示零值?,axapta,microsoft-dynamics,dynamics-ax-2012,x++,Axapta,Microsoft Dynamics,Dynamics Ax 2012,X++,我有两个表,我已经通过内部连接连接 qbdsPurchTable = query.addDataSource(tableNum(PurchTable)); qbdsVendPackingSlipTrans = qbdsPurchTable.addDataSource(tableNum(VendPackingSlipTrans)); qbdsVendPackingSlipTrans.fetchmode(Joinmode::InnerJoin); qbdsVendPackingSlipTrans.

我有两个表,我已经通过内部连接连接

qbdsPurchTable = query.addDataSource(tableNum(PurchTable));

qbdsVendPackingSlipTrans = qbdsPurchTable.addDataSource(tableNum(VendPackingSlipTrans));
qbdsVendPackingSlipTrans.fetchmode(Joinmode::InnerJoin);
qbdsVendPackingSlipTrans.addLink(fieldNum(PurchTable, PurchId),fieldNum(VendPackingSlipTrans, OrigPurchId));
qbdsVendPackingSlipTrans.relations(false);
在我的purch表中,它有很多数据,但只有一个在VendPackingSlipTrans上有数据

Purch TableVend装箱单运输 采购采购价格数据1数据21000数据2数据3数据4

我的代码所做的是: 数据2 1000

但我想发生的是 数据10 数据2 1000 数据30 数据40

顺便说一下,我尝试了外部联接,但这是输出 数据10 数据20 数据30 数据40

它没有得到1000的值。

如果使用InnerJoin,请小心,查询返回的记录中只有关系为TRUE,因此,只有一条记录是正确的,您只有两条记录之间的匹配

试着用外套

qbdsPurchTable=query.addDataSourcetableNumPurchTable; qbdsVendPackingSlipTrans=qbdsPurchTable.AddDataSourceTableTable-VendPackingSlipTrans; qbdsVendPackingSlipTrans.joinModeJoinmode::OuterJoin; QBDSENDPACKINGSLIPTRANS.addLinkfieldNumPurchTable、PurchId、fieldNumVendPackingSlipTrans、OrigPurchId; QBDS供应商包装SlipTrans.Relations其他; 以下是一些附加信息:

);

新链接:

新代码-选择所有记录:

QueryRun QueryRun; 可购买的可购买的; 自动包装自动售货机自动包装自动售货机; QueryBuildDataSource数据源; 查询; 查询=新查询; datasource=query.addDataSourcetableNumPurchTable; datasource=datasource.addDataSourcetableNumVendPackingSlipTrans; joinModeJoinMode::OuterJoin; datasource.relationstrue; queryRun=新的QueryRunquery; while queryRun.next//插入此while循环以测试代码 { purchTable=queryRun.gettablenumPurchTable; vendPackingSlipTrans=queryRun.gettablenumVendPackingSlipTrans; infostrfmt%1–%2,purchTable.PurchId,vendPackingSlipTrans.Price;//插入您的字段 } 我表现出所有的价值

如果使用InnerJoin,请小心,查询返回的记录中只有relation为TRUE,因此,只有一条记录是正确的,只有两条记录匹配

试着用外套

qbdsPurchTable=query.addDataSourcetableNumPurchTable; qbdsVendPackingSlipTrans=qbdsPurchTable.AddDataSourceTableTable-VendPackingSlipTrans; qbdsVendPackingSlipTrans.joinModeJoinmode::OuterJoin; QBDSENDPACKINGSLIPTRANS.addLinkfieldNumPurchTable、PurchId、fieldNumVendPackingSlipTrans、OrigPurchId; QBDS供应商包装SlipTrans.Relations其他; 以下是一些附加信息:

);

新链接:

新代码-选择所有记录:

QueryRun QueryRun; 可购买的可购买的; 自动包装自动售货机自动包装自动售货机; QueryBuildDataSource数据源; 查询; 查询=新查询; datasource=query.addDataSourcetableNumPurchTable; datasource=datasource.addDataSourcetableNumVendPackingSlipTrans; joinModeJoinMode::OuterJoin; datasource.relationstrue; queryRun=新的QueryRunquery; while queryRun.next//插入此while循环以测试代码 { purchTable=queryRun.gettablenumPurchTable; vendPackingSlipTrans=queryRun.gettablenumVendPackingSlipTrans; infostrfmt%1–%2,purchTable.PurchId,vendPackingSlipTrans.Price;//插入您的字段 }
我表现出所有的价值

您应该正确指定连接模式,请替换此行

qbdsVendPackingSlipTrans.fetchmode(Joinmode::OuterJoin);


您应该正确指定连接模式,请替换此行

qbdsVendPackingSlipTrans.fetchmode(Joinmode::OuterJoin);


嗨,先生,什么都没发生。它只显示了零,没有得到1000的值。你能显示你的代码来检索查询执行的结果吗?嗨,先生,什么都没发生。它只显示零,没有得到1000的值。你能显示你检索查询执行结果的代码吗?嗨,先生!谢谢你的链接。然而,正如我的帖子所指出的,我已经尝试退出,但它只显示了零。嗨,Michal Z,我很抱歉,我没有很好地回答你的问题。我无法创建测试用例,但如果您尝试使用fetchMode或类似的方式,请参见以下链接:?我认为问题在于何时构造查询。干得好!嗨,MichaelZ,我想找到了任何可能的方法…请参阅附加的新代码,其中只有datasource QueryBuildDataSource datasource;嗨,先生!谢谢你的链接。然而,正如我的帖子所指出的,我已经尝试退出,但它只显示了零。嗨,Michal Z,我很抱歉,我没有很好地回答你的问题。我无法创建测试用例,但如果您尝试使用fetchMode或类似的方式,请参见以下链接:?我认为问题在于何时构造查询。干得好!嗨,MichaelZ,我想找到了任何可能的方法…请参阅附加的新代码,其中只有datasource QueryBuildDataSource datasource;你能把这封信寄出去吗?请把它写进你的问题中,而不是写评论。你能把它贴出来吗?请把它写进你的问题,而不是写评论。