0

在将应用程序从 Progress 4GL 7.4 升级到 10.2b ABL 时,菜单显示出现问题,我没有源代码。我没有显示 2 列菜单选项,而是看到 3 列,一次只有两列可见(默认情况下是左对)...
1 选项 51 选项 2 选项
52 选项 3 选项 53 选项
4 选项
,好像菜单已经组装成一个长字符串,设计用于 80 个字符的盒装框架中的 2 列,现在显示在 120 个字符的框架中,仍然像 80 个字符一样被装箱,将其更改为 3 列,其中只有 2 列可见。

由于我看不到或直接影响显示菜单的代码,我想了解是否有任何参数可用于控制终端显示的默认帧大小,并且可能在 7.4 和 10.2b 版本之间发生变化,或者在升级/安装过程中可能被忽略了。

4

1 回答 1

1

罪魁祸首可能是您的 TERM 变量或您的 protermcap 文件。

TERM 需要指向一个与您需要的框架一样宽的 protermcap 条目。

几乎所有的默认条目都是 80 列宽。

如果您保持所有脚本相同并且您所做的只是切换 Progress 版本,那么我的猜测是有人在您的旧安装中修改了 protermcap。您需要提前进行这些修改。

我将首先在您的 10.2B 环境中制作 $DLC/protermcap 的副本。只是为了安全。

然后从旧的 v7 安装中获取旧的 protermcap 的副本。把它放在 $DLC 以外的地方——比如 /home/test/protermcap。

然后可以设置 PROTERMCAP 环境变量:

PROTERMCAP=/home/test/protermcap
export PROTERMCAP

现在启动您的应用程序。如果它按预期工作,那么您可以将该 protermcap 复制到 $DLC 中(并在下次升级时尝试记住所有这些...)或将 v7 protermcap 放在安全的地方并修改您的脚本以使用 PROTERMCAP 环境变量。

Progress 也有可能改变了底层的 protermcap——7.x 是很久以前的事了,我记得,在这几年中发生变化的一件事是在一些终端定义中添加了“ws”属性(尤其是 xterm),它允许单个定义适应启动 Progress 时窗口的大小。回到糟糕的过去,您会定义一个 80(或 132)个字符的静态宽度,无论实际宽度是多少,Progress 都会使用它。更现代的版本是灵活的——但这可能会导致您的问题。同样的治疗方法,将旧的 protermcap 放回原位。或者使用预期大小的终端窗口。

于 2013-04-03T17:32:13.220 回答