0

问题 1 和 2 特定于 INFORMIX-SQL 4.10.DD6 (DOS) 执行屏幕。问题 3 适用于任何环境中的任何版本的 INFORMIX-SQL。

  1. 我希望能够在我的执行屏幕上显示超过 80 列,以便在一页中容纳更多内容。我尝试了 DOS 6.22 命令 'MODE CON: CO132' 并在我的执行屏幕上指定了 'SCREEN SIZE 24 BY 132' 然后在 80 列标记之后添加了一些字段标签以查看它是否有效,但 MODE CO132 命令不起作用屏幕保持在 80 列模式。有没有办法做到这一点,因为 VESA BIOS 在大多数硬件上是标准的,或者其他实用程序可以将 DOS 屏幕模式更改为 132 列?我在 LINUX 中使用 termcap 文件中的 CO#132 完成了此操作。

  2. 我的执行屏幕在同一页面上有两个表格。当我使用 Master/Detail 从一个表切换到另一个表时,具有 REVERSE 属性的字段将反向扩展一个向左的位置,而该字段中的数据保持在同一位置!.. ISQL 2.10 没有发生这种情况,但现在是 4.10 .. 我的屏幕尺寸为 24 X 80,尝试了 24 X 79 但没有解决显示问题。但是,当我在执行中按屏幕命令时,它会恢复正常。我也在使用分隔符“”;[空白分隔符] 在我的 .PER 的说明部分中。知道可能是什么原因造成的吗?

  3. 当用户决定在执行中中止 [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 字段保留我在进入添加或更新时选择显示的任何值。

4

1 回答 1

1
  1. 我不确定,但可能没有办法让 DOS 输出使用 132 列。
  2. 听起来像一个错误。
  3. 我认为在 ISQL 中没有办法做到这一点。
于 2010-08-21T05:21:37.053 回答