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

如何基于临时记录使用Base App页面执行Lookup并获取筛选器?

基于临时记录用Base App页面实现Lookup并获取筛选器的方案

以下是几个无需自定义页面、适配本地部署许可证限制的实用思路:

思路1:通过页面实例直接调用GetSelectionFilter

先初始化Base App的标准页面,将临时记录传入后运行模态窗口,结束后直接从页面实例获取筛选器并应用到临时记录上:

var
    TempCustomer: Record Customer temporary;
    CustomerListPage: Page "Customer List";
begin
    // 假设已填充临时记录数据
    CustomerListPage.SetTableView(TempCustomer); // 将临时记录的视图传入页面
    if CustomerListPage.RunModal() = Action::OK then begin
        CustomerListPage.GetSelectionFilter(TempCustomer); // 获取用户设置的筛选器到临时记录
        // 此时TempCustomer已带有用户设置的筛选条件,可后续处理
        Message('筛选器内容: %1', TempCustomer.GetFilter("No."));
    end;
end;

思路2:利用RecordRef获取页面视图(筛选器)

如果需要更灵活地处理筛选器文本,可通过RecordRef配合页面的GetView方法直接获取筛选器字符串:

var
    TempCustomer: Record Customer temporary;
    CustomerListPage: Page "Customer List";
    RecRef: RecordRef;
    FilterView: Text;
begin
    RecRef.GetTable(TempCustomer);
    CustomerListPage.SetRecordRef(RecRef);
    if CustomerListPage.RunModal() = Action::OK then begin
        FilterView := CustomerListPage.GetView(); // 获取完整的筛选器视图文本
        // 可将筛选器应用回临时记录
        TempCustomer.SetView(FilterView);
        Message('获取到的筛选视图: %1', FilterView);
    end;
end;

思路3:借助临时记录的视图传递与反向获取

如果标准页面支持直接绑定临时记录,也可以通过先给临时记录设置初始视图,运行页面后直接读取临时记录的筛选条件:

var
    TempCustomer: Record Customer temporary;
begin
    // 填充临时记录数据...
    if Page.RunModal(Page::"Customer List", TempCustomer) = Action::OK then begin
        // 用户在页面设置的筛选器会自动同步回TempCustomer
        Message('筛选后的记录数: %1', TempCustomer.Count());
        Message("No.字段筛选器: %1", TempCustomer.GetFilter("No."));
    end;
end;

注意:部分Base App页面可能对临时记录的支持有差异,测试时需确认目标页面是否允许绑定临时记录并同步筛选条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:39:56