精通COBOL--16.3.4 输出过程中的光标定位

来源:互联网 发布:c语言例题 编辑:程序博客网 时间:2024/06/08 18:43

前面曾讲到,CICS中默认的输出是以当前光标所在位置作为起始位置的。不过,光标的实际位置在程序中也是可以进行更改。若要在程序中更改光标的位置,需要提供更改后光标的位置值。在CICS支持的标准终端屏幕上,光标的位置值如图所示。

由上图可以看出,光标的位置值是一个一维数字,而并非由行数和列数形成的一个二维向量。通常在程序要求中只给出直观的行列数,需要通过计算将其转换为程序中的光标位置值。例如,以下代码将从屏幕中倒数第二行的第一列开始输出相应信息:

IDENTIFICATION  DIVISION.

PROGRAM-ID.  CURSORPGM.

*

 ENVIRONMENT  DIVISION.

*

 DATA  DIVISION.

 WORKING-STORAGE  SECTION.

 ……

01  MSG    PIC  X(80).

*

 PROCEDURE  DIVISION.

    ……

MOVE   ‘MESSAGE  OUTPUT :’   TO  MSG.

EXEC  CICS  SEND  CONTROL   CURSOR(1760)              /*此处为光标定位*/

                                   END-EXEC

EXEC  CICS  SEND               FROM(MSG)

                                   LENGTH(20)

                                   END-EXEC.

……

    EXEC  CICS  RETURN  END-EXEC.

    GOBACK.

这样,输出信息的位置便可由程序任意指定,而不必受之前光标所在位置的影响了。此外,如果在SEND命令中同时加上ERASE选项,则屏幕将被清屏,光标位置将被刷新。刷新后的光标位置为其初始位置,相应位置值为0

原创粉丝点击