有关使用执行屏幕显示的问题

时间:2010-08-20 05:36:17

标签: linux dos informix termcap

问题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乘80,实验24 BY 79但没有解决显示问题。但是,当我按下Perform中的Screen命令时,它会恢复正常。我也在使用DELIMITERS“”; [空白分隔符]在我的说明文章中.PER ..知道是什么原因引起的吗?

  3. 当用户在执行中决定ABORT [Control-C]添加,更新等命令时,DISPLAYONLY字段在执行命令之前不会恢复到之前显示的值。我在.per屏幕,属性和说明部分分别有以下示例:

         [dispfld1  ] 
    
         dispfld1 = DISPLAYONLY TYPE DATE,FORMAT="mmm-dd-yyyy",DEFAULT=NULL;
    
         BEFORE EDITADD EDITUPDATE OF tablename
         LET dispfld1 = TODAY
    
  4. 当用户选择“执行操作添加”或“更新”时,DISPLAYONLY字段dispfld1会自动显示今天的日期,但是当ABORTing“添加”或“更新”操作时,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字段会保留我在进入“添加”或“更新”时选择显示的任何值。

1 个答案:

答案 0 :(得分:1)

  1. 我不确定,但可能没有办法让DOS输出使用132列。
  2. 听起来像个臭虫。
  3. 我认为在ISQL中没有办法做到这一点。