Axapta 在语句上更改allowedit

Axapta 在语句上更改allowedit,axapta,microsoft-dynamics,x++,Axapta,Microsoft Dynamics,X++,我试图更改单个字段上的allowedit值,但无法进入该字段。 这是我的实际代码,但我得到错误: 好的,我重建了模型,一切正常 [ExtensionOf(formStr(ProdParmReportFinished))] final class ProdParmReportFinishedWG_Extension { public void init() { next init(); ProdTable prodTable; select firstOnl

我试图更改单个字段上的allowedit值,但无法进入该字段。 这是我的实际代码,但我得到错误: 好的,我重建了模型,一切正常

  [ExtensionOf(formStr(ProdParmReportFinished))]
  final class ProdParmReportFinishedWG_Extension
 {
public void init()
{
    next init();

    ProdTable prodTable;


    select firstOnly RecId from prodTable
        where prodTable.InventRefType != InventRefType::None
           && prodTable.ProdId == prodTable.InventRefId
           && prodTable.ProdStatus != ProdStatus::ReportedFinished;

    prodParmReportFinished_ds.object(fieldNum(ProdParmReportFinished, EndJob)).allowEdit(prodTable.RecId != 0);
}

 }

如果您正在使用扩展,请尝试以下操作

[PostHandlerFor(formStr(YourForm), formMethodStr(YourForm, YourMethod))]
    public static void YourForm_xxx(XppPrePostArgs args)
    {
        FormRun sender = Args.getThis();
        sender.control(sender.controlId(formControlStr(YourForm, YourDatasource_Field))).allowEdit(false);
    }

用鼠标右键单击并选择copy event handler method(复制事件处理程序方法),方法的正确结构将复制给您,然后输入代码,如果您正在使用扩展,请尝试以下操作

[PostHandlerFor(formStr(YourForm), formMethodStr(YourForm, YourMethod))]
    public static void YourForm_xxx(XppPrePostArgs args)
    {
        FormRun sender = Args.getThis();
        sender.control(sender.controlId(formControlStr(YourForm, YourDatasource_Field))).allowEdit(false);
    }

用鼠标右键单击并选择“复制事件处理程序方法”,方法的正确结构将被复制到您手中,然后您输入代码

您将代码放在哪里?我为它创建了一个新类,正在使用扩展它取决于您扩展的确切内容:表单、表单数据源或表单控件。e、 g.ExtensionOfFormDatasourceStr,]我只扩展了表单和数据源。您的代码放在哪里了?我为它创建了一个新类,正在使用扩展它取决于您扩展的内容:表单、表单数据源或表单控件。e、 我只扩展了表单和数据源。谢谢,明天再试试。所以我可以在我的声明中使用这个?你能检查一下我的其他关于验证过程的开放线程吗?我有3个错误。在此作用域中找不到无效的标记“sender”,“sender”,应为。在-Validating]之后,似乎您没有正确地创建事件处理程序方法我实际上错过了类扩展,所以我没有最终的类。现在我有这样的东西。prodParmReportFinished\u ds.objectfieldNumProdParmReportFinished,EndJob.allowEditprodTable.RecId!=0; 但我在下一个init方法中出错。无法打开名为ProdParmReportFinished的表单。执行代码时出错:对象没有方法“runbase”。谢谢,明天再试。所以我可以在我的声明中使用这个?你能检查一下我的其他关于验证过程的开放线程吗?我有3个错误。在此作用域中找不到无效的标记“sender”,“sender”,应为。在-Validating]之后,似乎您没有正确地创建事件处理程序方法我实际上错过了类扩展,所以我没有最终的类。现在我有这样的东西。prodParmReportFinished\u ds.objectfieldNumProdParmReportFinished,EndJob.allowEditprodTable.RecId!=0; 但我在下一个init方法中出错。无法打开名为ProdParmReportFinished的表单。执行代码时出错:对象没有方法“runbase”。