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

OpenEdge新手求助:实现两数求和的可视化程序开发

OpenEdge 两数求和UI程序实现方案

变量定义与UI绑定

你已定义的三个变量,建议明确类型适配文本框输入特性:

DEFINE VARIABLE cNum1 AS CHARACTER NO-UNDO.  /* 绑定第一个文本框 */
DEFINE VARIABLE cNum2 AS CHARACTER NO-UNDO.  /* 绑定第二个文本框 */
DEFINE VARIABLE dResult AS DECIMAL NO-UNDO.  /* 存储求和结果 */

创建UI框架组件

手动编写代码创建包含文本框、标签和计算按钮的窗口框架:

DEFINE FRAME f_SumCalc
    cNum1 TEXT-BOX
        LABEL "数值1:"
        SIZE 14 BY 1
        AT ROW 2 COL 3
    cNum2 TEXT-BOX
        LABEL "数值2:"
        SIZE 14 BY 1
        AT ROW 4 COL 3
    btn_Calc BUTTON
        LABEL "计算求和"
        SIZE 12 BY 1.2
        AT ROW 6 COL 3
    lbl_Result LABEL
        LABEL "结果: "
        SIZE 22 BY 1.2
        AT ROW 6 COL 18
    WITH SIZE 55 BY 12
        TITLE "简易求和计算器".

实现求和逻辑

给计算按钮绑定CHOOSE事件,处理输入验证、数值转换与结果展示:

ON CHOOSE OF btn_Calc IN FRAME f_SumCalc DO:
    /* 校验输入是否为有效数值 */
    IF NOT VALID-DECIMAL(cNum1) OR NOT VALID-DECIMAL(cNum2) THEN DO:
        MESSAGE "请输入合法的数值(支持小数)" VIEW-AS ALERT-BOX INFORMATION.
        RETURN.
    END.

    /* 转换数值并计算 */
    dResult = DECIMAL(cNum1) + DECIMAL(cNum2).

    /* 更新标签显示结果 */
    ASSIGN lbl_Result:LABEL = "结果: " + STRING(dResult, "->>,>>9.99").
END.

启动窗口运行

添加窗口启用与等待关闭的代码:

ENABLE ALL WITH FRAME f_SumCalc.
WAIT-FOR WINDOW-CLOSE OF FRAME f_SumCalc.

可选优化:实时计算

如果不需要点击按钮,可给文本框添加LEAVE事件实现输入后自动计算:

ON LEAVE OF cNum1, cNum2 IN FRAME f_SumCalc DO:
    IF VALID-DECIMAL(cNum1) AND VALID-DECIMAL(cNum2) THEN DO:
        dResult = DECIMAL(cNum1) + DECIMAL(cNum2).
        ASSIGN lbl_Result:LABEL = "结果: " + STRING(dResult, "->>,>>9.99").
    END.
END.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:33:29