Report Dynamics NAV 2013报告-如何创建条件左外连接的等效项?

Report Dynamics NAV 2013报告-如何创建条件左外连接的等效项?,report,dynamics-nav,Report,Dynamics Nav,我们使用Microsoft Dynamics NAV 2013 R2,我被要求修改一份报告。报告当前从Sales Line表中提取数据,我需要包括存储在Item表中的制造商零件号。销售行表包括一个项目编号,该编号可能存在于项目表中,也可能不存在于项目表中,只有在销售行记录的“类型”为“项目”时,才应进行查找 如果我正在编写SQL,我将使用条件左外部联接: SELECT [Other Columns], "Item"."Manufacturer Part No" FROM "Sales Line"

我们使用Microsoft Dynamics NAV 2013 R2,我被要求修改一份报告。报告当前从Sales Line表中提取数据,我需要包括存储在Item表中的制造商零件号。销售行表包括一个项目编号,该编号可能存在于项目表中,也可能不存在于项目表中,只有在销售行记录的“类型”为“项目”时,才应进行查找

如果我正在编写SQL,我将使用条件左外部联接:

SELECT [Other Columns], "Item"."Manufacturer Part No"
FROM "Sales Line"
LEFT OUTER JOIN "Item" ON "Sales Line"."Type" = 'Item'
    AND "Sales Line"."Item No" = "Item"."No"
如果我进入报表数据集设计器,将项表添加为数据源并查看属性,我应该能够将DataItemLinkType设置为SQL Advanced Options,将SQLJoinType设置为LEFT OUTER JOIN,但这两个属性都没有列在数据源的属性框中


如何访问NAV 2013 R2中的DataItemLinkType和SQLJoinType,以使其成为一个左外部联接,以及如何使联接以销售行类型为“Item”为条件?

这是不可能的-您链接的MSDN文章whar是用于查询对象的。 但是我们需要更多关于这份报告的信息来帮助你。 这是标准导航报告吗


像阿扎托斯说的那样,我们需要更多的信息

但是从您编写的内容来看,似乎需要将第二个表添加为(子)数据项,并使用属性在两个表之间建立链接

属性DataItemTableView可用于筛选子(右)表


希望这会有所帮助。

在一位顾问的帮助下,我得出结论,这在NAV中不可能直接实现,但有两种可能的方法可以满足我的需求:

  • 向销售订单表中添加一个附加字段。将此字段设置为查找项目表上的制造零件号的查找字段,并使用项目号字段进行筛选。这种方法的优点是,该字段将可用于使用Sales Order表的任何页面或报告,但这确实意味着这些页面和报告将需要重新测试,以检查是否存在任何不可预见的副作用
  • 将Item表作为DataItem添加到报表数据集设计器中,然后将父DataItem(Sales Line DataItem)的PrintOnlyIfDetail属性设置为“否”。这会将此父项的所有子项设置为左外部联接
    无论采用哪种方法,联接都不是有条件的,因此需要使用表达式设置制造零件的可见性No,以便仅当销售行的类型为“Item”时才会显示

    谢谢你的回复。不,这是为我们编写的自定义报告。