[英]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.