Navision 2018 - 多对多 table 关系

Navision 2018 - Many to many table relation

在 Navision 2018 中,我有两个 tables 合同和固定资产 (FA),其中每个合同可以有多个 FA,一个 FA 可以与多个合同相关联。所以我有一个映射 table,其中存储了合约和 FA 之间的映射。在我的 FA 资产卡中,我需要显示与 FA 关联的 'number of contracts',我已经完成了。但现在的问题是我需要在 'Number of contracts' 字段的向下钻取中显示合同列表,我不知道该怎么做? 提前谢谢你

您需要将代码添加到 "Number of Contracts" 字段的 OnDrillDown 触发器(可以在每个特定页面或 table 上完成)。

代码应首先根据当前固定资产编号正确过滤合同记录,然后合同列表页面应 运行 将过滤后的合同记录作为 table 视图.

类似这不是一个完整的示例,但应该为您指明正确的方向:

// "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);