gpt4 book ai didi

axapta - dynamics ax x++网格修改方法

转载 作者:行者123 更新时间:2023-12-01 14:34:35 24 4
gpt4 key购买 nike

我想问一个问题。

假设我有一个表格形式的网格。在这个网格中,我有两个字段。第一个字段是 orderId,第二个字段是 invoiceId。每个字段都已经有一个重载的修改方法。

假设我的要求是,如果您在第一个字段中填写 orderId,那么 invoiceId 应该自动填写在字段 2 中。同样的情况应该以相反的方式发生。如果我填写 invoiceId,那么相关的 orderId 应该自动出现在 field1 中。

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

但是如果我想让它在两个方向上工作,我的 ax 客户端就会停止工作。看起来像是修改方法的无限循环,调试器无法帮助我。

我的问题是...对于这个修改后的方法重叠问题是否存在任何合适的解决方案?

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 相关..但已经解决了。

非常感谢,

尼科斯

最佳答案

您的修改后的 方法在方法的开头没有调用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 方法的位置移动到它们真正所属的表本身。

关于axapta - dynamics ax x++网格修改方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39616346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com