【问题标题】:Cursor moves to top when refreshing list page grid刷新列表页面网格时光标移动到顶部
【发布时间】:2016-08-03 09:09:41
【问题描述】:

各位开发者, 我有一个自定义列表页面,用户可以在其中选择几条记录,点击操作窗格中的一个按钮,该按钮在类中运行一些逻辑,一切正常。我的问题是光标不会停留在同一条记录上,而是转到网格的顶部。听起来像一个熟悉的问题?

我使用 args 将列表页面的 FormDataSource 存储在具有所有逻辑的自定义类中。

我尝试了一些东西,但都没有成功。

  1. formDataSource.research(true) 真正的参数应该在研究完成后保留位置。我猜这应该是最直接的解决方案。列表页面查询有 2 个使用外连接连接的数据源,我的猜测是研究(真实)仅适用于内连接。

  2. formDatasource.setPosition(位置)

    定位;
    位置 = formDatasource.getPosition();

    formDatasource.research();

    formDatasource.setPosition(位置);

    我使用 getPosition 存储位置并使用 setPosition 再次设置它。没用。

  3. formDataSource.findRecord()

    currentRecord = formDatasource.cursor();

    recId = currentRecord.RecId;
    formDatasource.reread();

    formDatasource.research();
    formDatasource.findRecord(currentRecord);

    我使用 ds.cursor() 获取当前记录并在 research() 之后将其传递给 findRecord()。没用。

  4. 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。 我开始相信这可能是列表页面的限制,并祈祷有人证明我错了。

感谢任何帮助。

【问题讨论】:

标签: axapta dynamics-ax-2012


【解决方案1】:

使用方法3,但是像这样。

YourTable tmpTable;


currentRecord = formDatasource.cursor();

recId = currentRecord.RecId;
tmpTable = TmpTable::findByRecId(recId);
 formDatasource.reread();

formDatasource.research();
formDatasource.findRecord(tmpTable); 

希望这会有所帮助。

【讨论】:

  • //只设置tmpTable-Buffer的recId: JUW_tmpCostCalculation positionDummy; ; positionDummy.recId = JUW_tmpCostCalculation.recid; JUW_tmpCostCalculation_DS.research(); JUW_tmpCostCalculation_DS.findRecord(positionDummy);
【解决方案2】:

尝试将“true”作为研究方法的参数传递。 salesLine_ds.research(true) 在我的情况下有效,即如果我研究该行,光标将停留在同一行。

【讨论】:

    【解决方案3】:

    像这样使用第二种方法

    int position;
    position = formDatasource.getPosition();
    //Make your update operations here
    formDatasource.research(true);
    
    formDatasource.setPosition(position);
    

    它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2021-02-13
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多