IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How could i implement up page and down page in cics?


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
daye.Zheng

New User


Joined: 15 Feb 2008
Posts: 22
Location: China

PostPosted: Mon Mar 24, 2008 6:45 am
Reply with quote

Hi all,
i have several questions.

1. How could i implement up page and down page in cics?

2. I need read more than one rows from db2 table to cics map, how
could i implement it effectively? Whick technique i can use?
How could i design the map? Defining many rows variables?

3. If i need operate one of the rows, BUt only one row can be do, how
could i implement it effectively? One by one select it ?
Back to top
View user's profile Send private message
the_gautam

Active User


Joined: 05 Jun 2005
Posts: 165
Location: Bangalore

PostPosted: Mon Mar 24, 2008 8:08 am
Reply with quote

here is a simple UP-DOWN scroll program in CICS :
Code:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SCRLPGM.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 REC.
            02 EMPID   PIC X(5).
            02         PIC X.
            02 EMPNAME PIC X(10).
            02         PIC X.
            02 EMPCOR  PIC X(10).
            02         PIC X(53).
       77 LEN          PIC S9(4) COMP VALUE 80.
       01 WS-COMMAREA  PIC X.
       01 WS-RESP      PIC S9(8) COMP.
       01 WS-FLAG      PIC X  VALUE 'N'.
       01 I            PIC 99 VALUE 0.
       COPY SCRLSET.
       COPY DFHAID.
       COPY DFHBMSCA.
       LINKAGE SECTION.
       01 DFHCOMMAREA PIC X.
       PROCEDURE DIVISION.
            IF EIBCALEN = 0
               MOVE 'PRESS THE ENTER KEY TO PROCESS.' TO MSGO
            ELSE
               EVALUATE EIBAID
               WHEN DFHPF3
                    PERFORM EXIT-PARA
               WHEN DFHPF7
                    PERFORM STARTBR-PARA
                    PERFORM READ-PREV-PARA VARYING I FROM 10 BY -1 UN
      -             TIL I < 1  OR WS-FLAG = 'Y'
               WHEN DFHPF8
                    PERFORM STARTBR-PARA
                    PERFORM READ-NEXT-PARA VARYING I FROM 1  BY  1 UN
      -             TIL I > 10 OR WS-FLAG = 'Y'
               WHEN OTHER
                    PERFORM ERROR-PARA
               END-EVALUATE
            END-IF.
            PERFORM CLEAR-PARA.
            EXEC CICS
               HANDLE CONDITION
               ERROR(ERROR-PARA)
            END-EXEC.

       SEND-PARA.
            EXEC CICS
               SEND MAP('SCRLMAP') MAPSET('SCRLSET') ERASE
            END-EXEC.
            EXEC CICS
               RETURN TRANSID('SCRL')
               COMMAREA(WS-COMMAREA)
               LENGTH(LEN)
            END-EXEC.

       RECEIVE-PARA.
            EXEC CICS
               RECEIVE MAP('SCRLMAP') MAPSET('SCRLSET')
            END-EXEC.

       STARTBR-PARA.
            PERFORM RECEIVE-PARA.
            MOVE EMPIDI TO EMPID.
            EXEC CICS
                 STARTBR FILE('SCRLFILE')
                 RIDFLD(EMPID)
                 GTEQ
                 RESP(WS-RESP)
            END-EXEC.
            IF WS-RESP NOT = DFHRESP(NORMAL)
               MOVE 'RECORD NOT FOUND.' TO MSGO
            END-IF.

       READ-PREV-PARA.
            EXEC CICS
                 READPREV FILE('SCRLFILE')
                 INTO(REC)
                 LENGTH(LEN)
                 RESP(WS-RESP)
                 RIDFLD(EMPID)
            END-EXEC.
            IF WS-RESP = DFHRESP(NORMAL)
               STRING '     EMP-ID : ', EMPID,
                      '     EMP NAME : ', EMPNAME,
                      '     EMP COURSE : ', EMPCOR
                      DELIMITED BY SIZE INTO DETAILO(I)
            ELSE
               IF WS-RESP = DFHRESP(ENDFILE)
                  MOVE 'Y' TO WS-FLAG
               ELSE
                  PERFORM ERROR-PARA
               END-IF
            END-IF.

       READ-NEXT-PARA.
            EXEC CICS
                 READNEXT  FILE('SCRLFILE')
                 INTO(REC)
                 LENGTH(LEN)
                 RESP(WS-RESP)
                 RIDFLD(EMPID)
            END-EXEC.
            IF WS-RESP = DFHRESP(NORMAL)
               STRING '     EMP-ID : ', EMPID,
                      '     EMP NAME : ', EMPNAME,
                      '     EMP COURSE : ', EMPCOR
                      DELIMITED BY SIZE INTO DETAILO(I)
            ELSE
               IF WS-RESP = DFHRESP(ENDFILE)
                  MOVE 'Y' TO WS-FLAG
               ELSE
                  PERFORM ERROR-PARA
               END-IF
            END-IF.

       CLEAR-PARA.
            MOVE LOW-VALUES TO SCRLMAPO.
            MOVE LOW-VALUES TO REC.
            PERFORM SEND-PARA.

       ERROR-PARA.
            MOVE 'INVALID OPERATION.' TO MSGO.
            PERFORM SEND-PARA.

       EXIT-PARA.
            EXEC CICS
               RETURN
            END-EXEC.
Back to top
View user's profile Send private message
daye.Zheng

New User


Joined: 15 Feb 2008
Posts: 22
Location: China

PostPosted: Mon Mar 24, 2008 8:30 am
Reply with quote

Hi the_gautam,
Thanks for your reply! Your sample is very useful for me.

But, it just a sample for vsam, do you have any db2 sample like this one, i am very appreciate for your help!
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
No new posts How to avoid duplicating a CICS Web S... CICS 0
Search our Forums:

Back to Top