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

如何用Progress 4GL获取屏幕中Browse Widget的名称

获取Progress ABL中Browse Widget的名称方法

完全可行,你使用LIST-WIDGETS未成功的核心原因是:该函数默认仅返回当前会话中未关联到任何容器的顶级控件,而Browse通常嵌套在Frame、Window或其他容器内,因此无法被识别到。以下是几种可靠的实现方案:

方案1:遍历容器子控件(通用场景)

如果你的Browse控件放置在Frame、Window等容器中,直接遍历容器的子控件集合,筛选出Browse类型并读取其名称:

DEFINE VARIABLE hWidget AS HANDLE NO-UNDO.
DEFINE VARIABLE hContainer AS HANDLE NO-UNDO.

// 替换为你的容器句柄(比如默认Frame或指定Window)
hContainer = FRAME {&FRAME-NAME}:HANDLE.

DO hWidget = FIRST hContainer:CHILDREN TO LAST hContainer:CHILDREN:
    IF hWidget:TYPE = "BROWSE" THEN DO:
        MESSAGE "找到Browse控件:" hWidget:NAME VIEW-AS ALERT-BOX.
    END.
END.

方案2:使用QUERY-WIDGETS精准筛选

QUERY-WIDGETS比LIST-WIDGETS更灵活,支持按控件类型、父容器等条件筛选:

DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.

// 查询会话中所有Browse控件
FOR EACH WIDGET IN QUERY-WIDGETS("TYPE = 'BROWSE'"):
    hBrowse = WIDGET-HANDLE(WIDGET).
    MESSAGE "Browse名称:" hBrowse:NAME VIEW-AS ALERT-BOX.
END.

// 可选:限定查询范围到指定容器(比如某Window)
DEFINE VARIABLE hTargetWindow AS HANDLE NO-UNDO.
hTargetWindow = WINDOW w_Main:HANDLE. // 替换为你的窗口名称

FOR EACH WIDGET IN QUERY-WIDGETS("TYPE = 'BROWSE' AND PARENT = " + STRING(hTargetWindow:HANDLE)):
    hBrowse = WIDGET-HANDLE(WIDGET).
    MESSAGE "指定容器内的Browse:" hBrowse:NAME VIEW-AS ALERT-BOX.
END.

方案3:直接引用已知控件句柄

如果你在创建Browse时已经保存了其句柄,可直接读取名称属性:

// 示例:创建Browse时存储句柄
DEFINE VARIABLE hBrowse_Customer AS HANDLE NO-UNDO.
DEFINE VARIABLE hBrowse_Order AS HANDLE NO-UNDO.

CREATE BROWSE hBrowse_Customer
    ASSIGN NAME = "brs_Customer"
           FRAME = FRAME {&FRAME-NAME}:HANDLE
           QUERY = QUERY qry_Customer:HANDLE
           ... // 其他属性配置
           .

CREATE BROWSE hBrowse_Order
    ASSIGN NAME = "brs_Order"
           FRAME = FRAME {&FRAME-NAME}:HANDLE
           QUERY = QUERY qry_Order:HANDLE
           ... // 其他属性配置
           .

// 直接获取名称
MESSAGE "Customer Browse名称:" hBrowse_Customer:NAME 
        "Order Browse名称:" hBrowse_Order:NAME 
        VIEW-AS ALERT-BOX.

内容的提问来源于stack exchange,提问作者Abhinit Kumar Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:02:43