Navision 2018-多对多表关系

时间:2019-09-11 11:56:36

标签: navision dynamics-nav microsoft-dynamics-nav

在Navision 2018中,我有两个表合同和固定资产(FA),其中每个合同可以具有多个FA,并且一个FA可以与多个合同关联。因此,我有一个映射表,用于存储合同和FA之间的映射。在我的FA资产卡中,我需要显示与FA相关的“合同数量”。但是现在的问题是,我需要在“合同数量”字段的明细中显示合同清单,我不知道该怎么办? 预先谢谢

1 个答案:

答案 0 :(得分:1)

您需要将代码添加到“合同数量”字段的OnDrillDown触发器中(可以在每个特定页面或表格上完成)。

代码首先应基于当前的固定资产编号对合同记录进行正确的过滤,然后以过滤后的合同记录作为表格视图运行“合同列表”页面。

类似这样的例子虽然不完整,但应该指出正确的方向:

// "No." will be taken from Rec which will be your current Fixed Asset.
Contract.SETRANGE("Fixed Asset No.","No.");
ContractListPage.SETTABLEVIEW(Contract);
ContractListPage.RUN;

有关更多信息,请检查SETTABLEVIEW Function

为了解决多对多房地产的挑战,您需要首先找到所有需要在联系人列表中显示的合同,然后构建所需的过滤器值:

ContractFixedAssets.SETRANGE("Fixed Asset No.","No.");

IF ContractFixedAssets.FIND('+') THEN BEGIN
    IF FilterValue <> '' THEN
        FilterValue += '|';

    FilterValue += ContractFixedAssets."Contract No.";
END;

Contract.SETFILTER("No.",'%1',FilterValue);