【发布时间】:2016-08-03 09:09:41
【问题描述】:
各位开发者, 我有一个自定义列表页面,用户可以在其中选择几条记录,点击操作窗格中的一个按钮,该按钮在类中运行一些逻辑,一切正常。我的问题是光标不会停留在同一条记录上,而是转到网格的顶部。听起来像一个熟悉的问题?
我使用 args 将列表页面的 FormDataSource 存储在具有所有逻辑的自定义类中。
我尝试了一些东西,但都没有成功。
formDataSource.research(true) 真正的参数应该在研究完成后保留位置。我猜这应该是最直接的解决方案。列表页面查询有 2 个使用外连接连接的数据源,我的猜测是研究(真实)仅适用于内连接。
-
formDatasource.setPosition(位置)
定位;
位置 = 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。 我开始相信这可能是列表页面的限制,并祈祷有人证明我错了。
感谢任何帮助。
【问题讨论】:
-
您也可以尝试使用任务宏并调用#taskF5 来刷新表单。这与单击列表页面上的刷新按钮相同。您可以参考msdn.microsoft.com/en-us/library/hh812104.aspx了解更多详情。
-
'research' 有一个可选的布尔参数来保留网格中的位置。有关出色的概述,请参阅kashperuk.blogspot.com.es/2010/03/…