我有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;
}
答案 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);