You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BLC代码创建新记录后让界面自动显示该记录?

解决方案

在Acumatica中,仅通过设置Current和调用RequestRefresh()无法让UI导航到新记录,大概率是因为视图刷新后,原缓存对象已不在视图的数据集内。可以尝试以下两种代码方案:

方法一:直接定位并强制UI可见

// 假设你的视图实例为MyView,新创建的记录缓存为newRecord
// 先刷新视图加载最新数据
MyView.View.RequestRefresh();
// 将新记录设为视图当前项
MyView.Current = newRecord;
// 强制UI滚动到该记录位置
MyView.View.EnsureVisible(newRecord);

方法二:通过主键重新查询定位

如果方法一仍未生效,可通过记录主键重新从视图中查询目标记录,确保其已在视图数据集中:

// 持久化后获取新记录的主键值
var newRecordKey = newRecord.YourPrimaryKeyField;
// 刷新视图
MyView.View.RequestRefresh();
// 根据主键查询视图中的记录
var targetRecord = MyView.View.SelectSingle(newRecordKey);
if (targetRecord != null)
{
    MyView.Current = targetRecord;
    MyView.View.EnsureVisible(targetRecord);
}

额外注意

  • 务必在记录完全持久化后执行上述代码,比如在Persist方法完成后,或导入流程的收尾阶段
  • 批量导入场景下,建议在所有记录导入完成后再执行定位逻辑,避免多次触发UI跳转

内容的提问来源于stack exchange,提问作者pmfith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:29:57