Dynamics ax 2009 如何更改重写方法leave()中的StringEdit值?

Dynamics ax 2009 如何更改重写方法leave()中的StringEdit值?,dynamics-ax-2009,x++,axapta,dynamics-ax-2012,Dynamics Ax 2009,X++,Axapta,Dynamics Ax 2012,我有一个StringEdit并重写了leave方法 public boolean leave() { boolean ret; ; info("leaved"); this.text("leaved"); CliHouseNumber.text("leaved"); ret = super(); info("leaved"); return ret; } 问题是2个信息日志被激发,但CliHouseNumber的值没有改变。为什

我有一个StringEdit并重写了leave方法

public boolean leave()
{
    boolean ret;
    ;
    info("leaved");
    this.text("leaved");
    CliHouseNumber.text("leaved");
    ret = super();
    info("leaved");

    return ret;
}
问题是2个信息日志被激发,但CliHouseNumber的值没有改变。为什么值保持不变

信息:

  • 该字段链接到数据源和数据字段
试着放

ret=super()


在你的代码之前;它可能正在撤消您所做的更改

根据要求,您的正确解决方案:


将编辑框的DataField属性设置为空,并将EDT属性设置为正确的类型。否则,只允许设置出现在数据字段中的值;您尝试设置的任何其他内容都将被拒绝

是否有可能取消StringEdit与数据源和数据字段的链接以更改其值并最终再次链接?我认为如果字段有数据源和数据字段,则不可能更改其值。可能不是;我不知道您使用的系统是否从数据库强制执行编辑框的内容,或者它是否支持通过更改编辑框来动态更新基础数据。如果用户更改了该框中的文本怎么办?它会改变基础数据吗?如果是这样的话,那么问题可能是您错过了一个调用来触发更新数据的通知。。。(我不知道Axapta/Dynamics,所以我只是猜测)。好的,所以我将该字段中的DataField属性设置为空,并将EDT属性设置为我想要的类型。它解决了我遇到的问题。因为在设置数据字段时,我只能选择该数据源的数据字段中可用的值,不允许使用随机值。谢谢你试着帮助我:)所以如果你能把我给出的答案贴出来,我会接受它作为答案:)