从Gen业务过帐组表中分配一个值

时间:2019-11-30 19:35:00

标签: microsoft-dynamics navision dynamics-business-central microsoft-dynamics-business-central

我有Gen Bus。显示在销售订单子窗体上的过帐组字段。此子窗体还显示了线路的位置代码。

我正在尝试编写一种逻辑,例如如果用户选择位置代码作为DROPSHIP,则为Gen Bus。发布组应为LOCAL-DROPSHIP。

LOCAL-DROPSHIP是Gen.Bus中的一条记录。发布组。在编写此代码之前,我已经创建了它。但是,它不会分配给我的Rec.Gen Bus。发布组。

这是子窗体上的代码;

modify("Location Code")
    {
        trigger OnAfterValidate()
        var
            recLocation: Record Location;
            recCustomer: Record Customer;
            recSalesLine: Record "Sales Line";
            recGenPosting: Record "Gen. Business Posting Group";

        begin
            recGenPosting.Get('LOCAL-DS');
            if rec."Location Code" = 'DROPSHIP' then begin
                Message(recGenPosting.Code);
               // Validate("Gen. Bus. Posting Group", recGenPosting.Code);
                Rec."Gen. Bus. Posting Group" := recGenPosting.Code;
                CurrPage.Update();
            end;
        end;
    }

2 个答案:

答案 0 :(得分:0)

您应该将其作为表销售线的表扩展名而不是页面扩展名来执行。在这种情况下,验证很重要。

答案 1 :(得分:0)

在OnModify触发器上,写了“扩展销售线”表;

std::string sql = "INSERT INTO account (id, id_user, ip, last_join) VALUES (NULL, ?, ?, ?)";
MYSQL_BIND params[3] = {};

params[0].buffer_type = MYSQL_TYPE_STRING;
params[0].buffer = &id[0]; // or id.data() in C++17
params[0].buffer_length = params[0].length = id.length();

params[1].buffer_type = MYSQL_TYPE_STRING;
params[1].buffer = &ip_user[0]; // or ip_user.data() in C++17
params[1].buffer_length = params[1].length = ip_user.length();

params[2].buffer_type = MYSQL_TYPE_STRING;
params[2].buffer = &date[0]; // or date.data() in C++17
params[2].buffer_length = params[2].length = date.length();

MYSQL_STMT *stmt = mysql_stmt_init(db);
mysql_stmt_prepare(stmt, sql.c_str(), sql.length());
mysql_stmt_bind_param(stmt, params);
mysql_stmt_execute(stmt);
mysql_stmt_close(stmt);