前面曾讲到,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。