Cursor positioning in CICS is an important aspect in the screen and program design. At the time of screen (MAP) design the initial cursor location must be specified as per the requirement. This is the Static Cursor positioning. This can be changed dynamically at the time program coding and it is called as the Dynamic Cursor positioning.
We will see how this can be achieved Statically and Dynamically.
Static Positioning: At the time of MAP creation we have a attribute option IC in the DFHMDF macro. By coding the IC in the filed definition, the initial position can be set.
xxx DFHMDF POS(10,2)
LENGTH = 10
ATTRIB (IC, UNPROT, FSET)
So the cursor will be positioned at the above field location initially. This can be overridden by the dynamic or relative CP* techniques.
Dynamic Cursor Positioning:
By moving the ‘-1’ to the length field of the desired filed, the CP* can be set at that field.
Ex: In program coding, while sending the map Code ‘Move -1 to filednameL’
MAP needs to be sent with CURSR option with out giving any value to it.
EXEC CICS SEND MAP(TEST-MAP1)
This type is also called as ‘Symbolic positioning’.
Exact cursor location can be set by mentioning the numeric number in the SEND MAP command.
EXEC CIC SEND MAP(TEST-MAP1)
It will be placed at the 40th location on the screen.
CP with SEND CONTROL:
Here also absolute positioning needs to be given in the CURSR Option
If the Cursoroption is omitted, then it gets places at the 0 position on the screen.
EIBPOSN holds the current cursor position while program is being executed. This can also be used in send map with cursor(eibposn).
For further reading on the other basic concepts go thru the topics mentioned under Mainframes also if you have any concerns on the current topic send it via the comments section below.Also if you would like to post your topics on mainframes feel free to contact via comments.