问题 1 和 2 特定于 INFORMIX-SQL 4.10.DD6 (DOS) 执行屏幕。问题 3 适用于任何环境中的任何版本的 INFORMIX-SQL。
我希望能够在我的执行屏幕上显示超过 80 列,以便在一页中容纳更多内容。我尝试了 DOS 6.22 命令 'MODE CON: CO132' 并在我的执行屏幕上指定了 'SCREEN SIZE 24 BY 132' 然后在 80 列标记之后添加了一些字段标签以查看它是否有效,但 MODE CO132 命令不起作用屏幕保持在 80 列模式。有没有办法做到这一点,因为 VESA BIOS 在大多数硬件上是标准的,或者其他实用程序可以将 DOS 屏幕模式更改为 132 列?我在 LINUX 中使用 termcap 文件中的 CO#132 完成了此操作。
我的执行屏幕在同一页面上有两个表格。当我使用 Master/Detail 从一个表切换到另一个表时,具有 REVERSE 属性的字段将反向扩展一个向左的位置,而该字段中的数据保持在同一位置!.. ISQL 2.10 没有发生这种情况,但现在是 4.10 .. 我的屏幕尺寸为 24 X 80,尝试了 24 X 79 但没有解决显示问题。但是,当我在执行中按屏幕命令时,它会恢复正常。我也在使用分隔符“”;[空白分隔符] 在我的 .PER 的说明部分中。知道可能是什么原因造成的吗?
当用户决定在执行中中止 [Control-C] 添加、更新等命令时,DISPLAYONLY 字段不会恢复到执行命令之前的先前显示值。我的 .per 屏幕、属性和说明部分分别有以下示例:
[dispfld1 ] dispfld1 = DISPLAYONLY TYPE DATE,FORMAT="mmm-dd-yyyy",DEFAULT=NULL; BEFORE EDITADD EDITUPDATE OF tablename LET dispfld1 = TODAY
当用户选择执行操作添加或更新时,DISPLAYONLY 字段 dispfld1 会自动显示今天的日期,但是当中止添加或更新操作时,dispfld1 不会恢复为 NULL 值,它会保留今天的日期。
我尝试了各种方法。以下指令语句的语法不正确,但这是我想要完成的!
AFTER DISPLAY OF tablename
IF ABORT THEN LET dispfld1 = NULL
AFTER DISPLAY OF tablename
IF NEXTFIELD = ABORT THEN LET dispfld1 = NULL
BEFORE DISPLAY OF tablename
LET dispfld1 = NULL
与 table.columns 关联的字段标记恢复正常,但 DISPLAYONLY 字段保留我在进入添加或更新时选择显示的任何值。