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

Progress 4GL控制台场景下如何实现长字符串输入并存入变量?

问题根源

Progress OpenEdge 默认UPDATE语句使用单行FILL-IN控件接收输入,默认字符格式长度仅为8位,因此会出现输入截断问题。手动指定FORMAT "X(318)"时,单行输入控件需要的显示宽度超出了默认框架的宽度,就会抛出FILL-IN filter will not fit in FRAME错误。

可用解决方案

方案1:使用多行编辑器控件(推荐,适配长文本粘贴)

该方式不受单行宽度限制,直接支持最长32000字符输入,兼容粘贴操作,无需美化界面适配纯控制台场景:

DEF VAR filter AS CHAR NO-UNDO.

UPDATE filter
    VIEW-AS EDITOR
    SIZE 80 BY 6 /* 控制台编辑区域显示宽高,可自行调整 */
    MAX-CHARS 32000
    NO-BOX. /* 去掉控件边框,适配纯控制台样式 */

操作方法:用户粘贴完内容后,按CTRL+ENTER确认输入即可。

方案2:强制指定框架宽度适配单行长格式

如果需要使用单行输入,可手动声明足够宽的框架容纳长格式输入控件:

DEF VAR filter AS CHAR NO-UNDO.

FORM filter FORMAT "X(32000)"
    WITH FRAME long_input WIDTH 32010.

UPDATE filter WITH FRAME long_input.

注意:该方案下输入框会超出单屏显示宽度,输入时会自动横向滚动,按ENTER即可确认输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:36:01