Axapta 防止在VATNum中添加空白

Axapta 防止在VATNum中添加空白,axapta,dynamics-ax-2012,dynamics-ax-2012-r3,Axapta,Dynamics Ax 2012,Dynamics Ax 2012 R3,在TaxVatNumTable表单中,我需要在插入新记录时消除字段VATNum中的空白。现在,我已经做的是覆盖TaxVatNumTable上的modifiedField方法: public void modifiedField(FieldId _fieldId) { super(_fieldId); switch (_fieldId) { case fieldNum(TaxVATNumTable, VATNum): this.VATNum =

在TaxVatNumTable表单中,我需要在插入新记录时消除字段VATNum中的空白。现在,我已经做的是覆盖TaxVatNumTable上的modifiedField方法:

public void modifiedField(FieldId _fieldId)
{
   super(_fieldId);

   switch (_fieldId)
   {
        case fieldNum(TaxVATNumTable, VATNum):
        this.VATNum = strRem(this.VATNum," ");
        break;
    }
}

效果很好,但有没有其他方法来实现这一点?我在想WPF中的OnPreviewKeyDown事件,检查按下的键,如果是空格,什么也不做。这可能吗

你做这件事的方式是最好的方式。

TextChange
方法意味着每次击键都要进行测试,千万不要在AX中进行测试。

您看过
TextChange()
方法吗?查看和@FH in way我刚刚尝试在textChange中添加这个.text(strem(this.text(),“”)),但出现了一些异常,我无法捕获它,或者我不知道如何…@FH in way,我认为我必须扩展TaxVATNumValidate并重写validateVATNum方法。我将采用这种方法,这似乎是正确的方法。请不要使用数据验证方法来更改数据。@FH Inway感谢您的最后评论,我对此不确定。我不会的。事实上,我使用这种验证方法只是为了进行一些检查并弹出一些警告,当然从validateVATnum方法返回false。这是一件好事,我学会了避免在每次按下键时更改文本,并且在验证时不更改数据。