1

我正在尝试在采购行和销售行上创建一个“已接收”布尔字段,以便在采购行上将项目标记为 True 时,链接的销售行也标记为 True。到目前为止,我已经设法在采购行上创建了一个字段来存储相关销售行的 ID,但是我在弄清楚采购行字段何时更改的触发器以及如何使用销售行 ID 时遇到了一些麻烦字段以更新与 id 匹配的特定销售行。

field(csg_PoliReceived; Rec.csg_PoliReceived)
        {
            Caption = 'Purchase Order Line Received';
            ApplicationArea = All;
            trigger OnValidate()
            begin
                // if true
                // update Sales Line to true
                // if false
                // update Sales Line to false
            end;
        }

我在扩展采购行页面的页面扩展中有这个片段,所以我不确定如何查询具有匹配 ID 的销售行以及如何更新该记录。任何建议将不胜感激。谢谢!

4

1 回答 1

1

修改应在您创建OnValidate的字段的触发器中完成。tableextensionPurchase Line

我将假设您有一个名为的字段,如果链接到一个Sales Line Id,它将包含 的。SystemIdSales LinePurchase Line

trigger OnValidate()
var
    SalesLine: Record "Sales Line";
begin
    if not IsNullGuid("Sales Line Id") then begin
        SalesLine.GetBySystemId("Sales Line Id");
        SalesLine.Validate("Purchase Order Line Received", Received);
        SalesLine.Modify(true);
    end;
end;

此代码将Purchase Order Line Received在 上更新Sales LineReceived更新Purchase Line

您在设计中可能要考虑的一件事是 aPurchase Line和 aSales Line可以通过多种方式链接,例如通过预订或托运。

于 2022-01-03T10:51:36.860 回答