首页 > 解决方案 > 如何使用 active() 方法 x++

问题描述

好的,我做到了。它工作正常。感谢帮助。这是我的代码。现在我只需要以不同的形式调用我的命令按钮来禁用它并在那里创建一个信息。任何人都可以看看吗?在我的代码中,我得到了参考错误。

[ExtensionOf(formdatasourcestr(ProdTableListPage, ProdTable))]
final class ProdParmReportFinishedActiveWG_Extension
{

 public int active()
{
    int ret;
    next Active();

    {
        ProdTable tableBuffer = this.cursor();
        ProdTable prodtable;


        if(tableBuffer.ProdId == tableBuffer.CollectRefProdId
             && tableBuffer.ProdStatus != ProdStatus::ReportedFinished)
            {
               select firstonly RecId,ProdId from ProdTable where
            ProdTable.CollectRefProdId == tableBuffer.ProdId
             && ProdTable.Prodstatus != ProdStatus::ReportedFinished
                && tableBuffer.RecId != prodtable.RecId;
            {
                    Global::info(strFmt("%1 , %2",
            prodtable.prodid, prodtable.recid));

                    // FormButtonControl mybutton = this.FormRun().design().controlname(formControlStr(ProdParmReportFinished, Ok)) as FormButtonControl;
                    //  mybutton.enabled(false);
            }

        }
        else
        {

            Global::info(strFmt("%1 , %2, %3, %4",
            tableBuffer.prodid, tableBuffer.CollectRefProdId, tableBuffer.InventRefType, tableBuffer.ProdStatus));
        }

    }
    return ret;
}

}

标签: axaptamicrosoft-dynamicsx++dynamics-365-operations

解决方案


“我想在每次用户更改他的实际行时使用此代码,但它只运行一次并应用于我的所有行。”

使用selectionChanged()方法而不是active().

事实上,大多数您认为应该使用 active() 的用例,您可能正在寻找selectionChanged()(或处理程序的 OnSelectionChanged 事件)。


推荐阅读