Axapta 在字段x+中设置默认数据+;采购订单

Axapta 在字段x+中设置默认数据+;采购订单,axapta,microsoft-dynamics,x++,Axapta,Microsoft Dynamics,X++,我想基于PurchCreateOrder中的curUserid()设置一个默认值。如何将字段中的数据放入表单扩展? 有没有更好的选择?字段绑定到数据源,我有不同的字段和不同的数据源 我的代码给了我异常的终止错误和空引用。XPP编译器 [ExtensionOf(tableStr(PurchTable))] final class PurchCreateOrderGetDefAdress_Extension { void initvalue(PurchaseType _purchaseType)

我想基于PurchCreateOrder中的curUserid()设置一个默认值。如何将字段中的数据放入表单扩展? 有没有更好的选择?字段绑定到数据源,我有不同的字段和不同的数据源

我的代码给了我异常的终止错误和空引用。XPP编译器

[ExtensionOf(tableStr(PurchTable))]

final class PurchCreateOrderGetDefAdress_Extension
{
void initvalue(PurchaseType  _purchaseType)
{
    next initvalue(_purchaseType);

    PurchTable purchtable;
    LogisticsPostalAddress logpostadress;
    UserInfoSz usrsz;
    str user = curUserId(); 


    select firstonly logpostadress where logpostadress.city == 'lub';
   // select firstonly InventSiteId, InventLocationId from purchtable join usrsz where purchtable.InventSiteId == usrsz.InventSiteId && usrsz.IsDefault == true;
    select firstonly InventSiteId from usrsz where usrsz.UserId == user && usrsz.IsDefault == true;

    purchtable.initValue();
    purchtable.deliveryname = 'asasasasas' ;//logpostadress.Address;
    purchtable.inventsiteid = usrsz.InventSiteId;
    purchtable.inventlocationid = usrsz.InventSiteId;


    info(strFmt("%1, %2, %3", logpostadress.Address, usrsz.InventSiteId));

}

}

错误是直截了当的

错误扩展类“PurchTable”提供了一个使用此名称的方法,但此方法不能用作命令链方法,因为参数配置文件与原始方法不匹配

查看突出显示的参数配置文件,并与您的进行比较

编辑:查看这些链接,了解有关指挥链(CoC)的更多信息:

  • (这段视频很棒)

我可能读错了,但看起来您通过调用
purchtable.initValue()创建了一个无休止的循环?您的代码有效地位于
initValue()
调用
initValue()
的内部。你不应该使用
这个
?看一看,即使我删除了putchtable.initvalue,我的代码也不起作用。只是得到我上面提到的错误。当我在formdatasourcestr中尝试它时,在添加了不带def值的purchasetype之后,我得到了空引用。。public void initvalue(PurchaseType _PurchaseType)我收到异常终止错误。您是否删除了
purchtable.initvalue()正如我在其他评论中提到的?你在一个无休止的循环中。从小事做起,删除大部分代码,然后让
CoC
正常工作,然后添加更多代码以确定错误所在。即使我删除了除CoC以外的所有内容,我也会遇到此问题。您是否查看了链接以确保正确执行CoC?如果你只有最低限度的CoC,并且你说它不工作,那么要么CoC坏了(可疑),要么你的环境出了问题,要么在另一个
initValue
调用中。尝试完整系统构建/同步。继续消除变量…现在你只是说“它不工作”,我们真的无法帮助回答这个问题。我试着在课堂上用CoC运行它,结果出现异常终止错误,有40行错误行,不知道发生了什么(错误只在initvalue()下面)我不想下一次调用。我仍将尝试进行完整的模型构建。当我使用initvalue事件处理程序进行构建时,它运行得很好,但我有一个问题。当我从另一个dbsource(LogisticsPostalAddress)获得表单中的字段时我想做一个init,我可以在1个事件中完成吗?现在我需要为不同的表使用2个事件。