Har*_*rry 5 axapta dynamics-ax-2012
对于开发人员,我有一个自定义列表页面,用户可以在其中选择少量记录,在操作窗格中点击按钮,在一个类中运行一些逻辑,所有这些都可以正常工作.我的问题是光标不会停留在同一记录中,而是转到网格的顶部.听起来像一个熟悉的问题?
我使用具有所有逻辑的自定义类中的args存储列表页面的FormDataSource.
我尝试了一些东西,但都没有用.
formDataSource.research(true) 真正的参数应该在研究完成其工作后保留位置.我猜这应该是最直接的解决方案.列表页面查询有两个使用外部联接加入的数据源,我的猜测是研究(true)仅适用于内部联接.
formDatasource.setPosition(位置)
int position;
position = formDatasource.getPosition();
formDatasource.research();
formDatasource.setPosition(位置);
我使用getPosition存储位置并使用setPosition再次设置它.没用
formDataSource.findRecord()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findRecord(currentRecord);
我使用ds.cursor()获取当前记录并在research()之后将其传递给findRecord().没用
formDataSource.findValue()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findValue(fieldNum(Table,RecId),int642str(recId));
我使用ds.cursor()获取当前记录和recId,并在research()之后将其传递给findValue().没用
我调试了上面的代码,而cursor()方法确实得到了当前记录及其recId.我开始相信它可能是列表页面的限制,并祈祷有人证明我错了.
任何帮助表示赞赏.
使用方法3,但像这样。
YourTable tmpTable;
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
tmpTable = TmpTable::findByRecId(recId);
formDatasource.reread();
formDatasource.research();
formDatasource.findRecord(tmpTable);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
13573 次 |
| 最近记录: |