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
相关产品推荐
相关产品推荐

