2013-04-03 32 views
0

将应用程序从Progress 4GL 7.4升级到10.2b ABL时,菜单显示中出现了一个问题,我没有源代码。而不是显示的菜单选项,我在一个时间(默认情况下左一)看到,只有两个可见的3列2列...
1选项51选项2选项
52选项3选项53选项
4选项
就好像菜单已经被组装成一个长字符串,该字符串被设计用于80个字符的框中的2列,现在以120个字符框显示,仍像80个字符宽的盒子一样显示,并将其更改为3列其中只有2个是可见的。什么进度4GL参数可能会影响默认帧宽度?

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

回答

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将使用的宽度是多少。更现代的版本是灵活的 - 但这可能会导致你的问题。同样的治疗方法,将旧的原始生物膜帽放回原位。或者使用预期尺寸的终端窗口。