繁体   English   中英

动态ax x ++网格修改方法

[英]Dynamics ax x++ grid modified method

我想问一个问题。

让我们说我有一个网格形式。 在这个网格中我有两个字段。 第一个字段是orderId,第二个字段是invoiceId。 每个字段都有一个重载的修改方法。

让我们说我的要求是,如果你在第一个字段填写orderId,那么invoiceId应该自动填写在字段2中。同样应该以对立的方式发生。 如果我填写invoiceId然后自动地相关orderId应该在field1中自动填充。

例如,如果注释掉一个方法的相关代码,那么工作正常,但只能在一个方向上。

但是,如果我希望它为两个方向工作,我的斧头客户端就会停止工作。 通过修改的方法看起来像无限循环,debuger无法帮助我。

我的问题是......存在任何适当的解决方案,这种修改后的方法会覆盖问题吗?

modified()// method for invoice Field
{
   SalaryProvRevisions table = SalaryProvRevisions_ds.getFirst(1) ?    SalaryProvRevisions_ds.getFirst(1) :SalaryProvRevisions_ds.cursor();
   table.OrderId=SalarayProvInvoiceHandler::getOrderIds(table.InvoiceId);
.
.
.
.
}

modified()// method for ordeid field
{
   SalaryProvRevisions table = SalaryProvRevisions_ds.getFirst(1) ? SalaryProvRevisions_ds.getFirst(1) : SalaryProvRevisions_ds.cursor();
   table.InvoiceId=SalarayProvInvoiceHandler::getInvoiceId(table.OrderId);
.
.
.
.
}

当然这个故事有一些其他的问题,比如一个orderId可以与很多invoiceid有关..但已经解决了它们。

非常感谢,

尼科斯

modified方法在方法的开头没有调用super() ,这可能是原因。 此外,由于缺少返回类型,您列出的方法无法编译。

我建议你在表的modifiedField方法中进行自定义。

public void modifiedField(FieldId _fieldId)
{
    super(_fieldId);
    switch (_fieldId)
    {
        case fieldnum(SalaryProvRevisions, OrderId):
            this.InvoiceId = SalaryProvRevisions::getInvoiceId(this.OrderId);
            break;
        case fieldnum(SalaryProvRevisions, InvoiceId):
            this.OrderId = SalaryProvRevisions::getOrderId(this.InvoiceId);
            break;
    }
}

我会将get方法的位置移动到它们真正属于的表本身。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM