繁体   English   中英

在所有公司 AX2012 中标记复选框

[英]Mark checkbox in all companies AX2012

我在 PurchParameters 表中添加了一个复选框,名称为 setExchRateVal,我想在我所有没有 sql 操作的公司中将此字段标记为真。

我如何在 AX 中通过工作做到这一点?

我试过这个,但它没有完成,

PurchParameters purchParameters ;

while select forUpdate crossCompany purchParameters
{
    purchParameters.setExchRateVal = NoYes::Yes;
    purchParameters.update();
    //info(strFmt("%1 - %2", purchParameters.SetExchRateVal, purchParameters.dataAreaId));
}

AX 错误:不允许跨公司进行更新操作。

错误很明显。 您不能在同一个 select 查询中进行crossCompanyupdates 下面的Method 2更接近您正在做的事情。 更新参数表时,由于表上有Key ,可以通过几种方式完成。

见下文:

PurchParameters purchParametersUpdate;
PurchParameters purchParametersSeek;
DataArea        dataArea;

// Method 1
ttsBegin;
while select dataArea
{
    changeCompany(dataArea.id)
    {
        purchParametersUpdate = PurchParameters::find(true);
        purchParametersUpdate.setExchRateVal = NoYes::Yes;
        purchParametersUpdate.update();
    }
}
ttsCommit;


// Method 2
ttsBegin;
while select crossCompany purchParametersSeek
{
    purchParametersUpdate = null;

    select firstOnly forUpdate purchParametersUpdate
        where purchParametersUpdate.RecId == purchParametersSeek.RecId;

    if (purchParametersUpdate)
    {
        //purchParametersUpdate.setExchRateVal = NoYes::Yes;
        purchParametersUpdate.update();
    }
}
ttsCommit;

info("Done");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM