Member LISTCTR in CGICBLDEV2 / QCBLLESRC

1.00 
 ********START OF PGM : LISTCTR  ****************************************
2.00 
       *================================================================
3.00 
       *
4.00 
       *  After compiling this module, create the program as follow:
5.00 
       *
6.00 
       *  CRTPGM  PGM(CGICBLDEV2/LISTCTR) MODULE(CGICBLDEV2/LISTCTR)
7.00 
       *          BNDDIR(CGICBLDEV2/CGICBLDEV2)
8.00 
       *          ACTGRP(LISTCTR) AUT(*USE)
9.00 
       *
10.00 
       *================================================================
11.00 
        PROCESS NOXREF APOST
12.00 
        ID    DIVISION.
13.00 
        PROGRAM-ID. LISTCTR.
14.00 
        ENVIRONMENT DIVISION.
15.00 
        CONFIGURATION SECTION.
16.00 
        SPECIAL-NAMES.
17.00 
              copy CPYSPCNAME of CGICBLDEV2-QCBLLESRC.
18.00 
        INPUT-OUTPUT SECTION.
19.00 
        FILE-CONTROL.
20.00 
       *----------------------------------
21.00 
            SELECT ctrdvy
22.00 
                   ASSIGN       TO         DATABASE-ctrdvy
23.00 
                   ORGANIZATION IS         INDEXED
24.00 
                   ACCESS       IS         DYNAMIC
25.00 
                   RECORD KEY   IS         EXTERNALLY-DESCRIBED-KEY
26.00 
                   FILE STATUS  IS         STATUS-ctrdvy.
27.00 
       *----------------------------------
28.00 
        DATA DIVISION.
29.00 
        FILE SECTION.
30.00 
       *----------------------------------
31.00 
        FD  ctrdvy
32.00 
                                           LABEL RECORD IS STANDARD.
33.00 
        01  ctrdvy-RECFD.
34.00 
            COPY DDS-ALL-FORMAT   OF ctrdvy.
35.00 
       *=================================================================
36.00 
        WORKING-STORAGE SECTION.
37.00 
       *=================================================================
38.00 
       *       ----- Variables specific to this program ------
39.00 
       *
40.00 
        01         HTML-DATA.
41.00 
       * Variables to execute a command
42.00 
            05     rc                  PIC  S9(9) comp-4.
43.00 
            05     cmd                 PIC  X(2000).
44.00 
       * Variables to parse the input string
45.00 
            05     returnString        PIC  X(100).
46.00 
            05     request             PIC  X(1000).
47.00 
            05     xyrname             PIC  X(1000).
48.00 
       * Variables to load external HTML
49.00 
            05     fn                  PIC  X(10) VALUE 'HTMLEXAMPL'.
50.00 
            05     lib                 PIC  X(10) VALUE 'CGICBLDEV2'.
51.00 
            05     mbr                 PIC  X(10) VALUE 'LISTCTR'.
52.00 
       * Variable for QWrtSection subprocedure
53.00 
            05     HtmlSects           PIC  X(1000).
54.00 
       * Variables for QUpdHtmlVar subprocedure
55.00 
            05     varnamein           PIC  X(50).
56.00 
            05     varnameout          PIC  X(30).
57.00 
            05     varvalout           PIC  X(1000).
58.00 
       * Miscellaneous variables
59.00 
        01         MISC-DATA.
60.00 
            05     LinesNbr            PIC  S9(05).
61.00 
            05     wkf                 PIC  X(01).
62.00 
            05     openSW              PIC  X(01).
63.00 
            05     edited-ctrday       PIC  ZZ9.
64.00 
       * Status field
65.00 
            05     status-ctrdvy       PIC  X(02).
66.00 
       *=================================================================
67.00 
       *                M A I N  -  L I N E
68.00 
       *=================================================================
69.00 
        PROCEDURE DIVISION.
70.00 
        A-start-pgm.
71.00 
            perform OpenFiles              thru z-OpenFiles.
72.00 
            perform GetCGIInput            thru z-GetCGIInput.
73.00 
            perform LoadHtml               thru z-LoadHtml.
74.00 
            perform SendHtml               thru z-SendHtml.
75.00 
       *----------------------------------
76.00 
        B-end-pgm.
77.00 
            exit program and continue run unit.
78.00 
       *=================================================================
79.00 
        GetCGIInput.
80.00 
       * Get input data from POST or GET
81.00 
            call 'QZHBGETINPUT'.
82.00 
       * Parse input string into program field 'xyrname':
83.00 
            move 'xyrname' to varnamein.
84.00 
            call 'QZHBGETVAR' using
85.00 
                                    by content varnamein
86.00 
                                    returning into xyrname.
87.00 
       * Parse input string into program field 'request', cvt to uppercase
88.00 
            move 'request' to varnamein.
89.00 
            call 'QZHBGETVARUPPER' using
90.00 
                                    by content varnamein
91.00 
                                    returning into request.
92.00 
       *----------------------------------
93.00 
        z-GetCGIInput.
94.00 
            EXIT.
95.00 
       *=================================================================
96.00 
        LoadHtml.
97.00 
       * Load html skeleton source member
98.00 
            call 'QGETHTML' using fn lib mbr.
99.00 
       *----------------------------------
100.00 
        z-LoadHtml.
101.00 
            EXIT.
102.00 
       *=================================================================
103.00 
        SendHtml.
104.00 
       *Send section /$top
105.00 
            move 'top' to HtmlSects
106.00 
            call 'QWRTSECTION' using HtmlSects.
107.00 
       *Initial bootstrap
108.00 
            if request = ' '
109.00 
               perform Case1 thru z-Case1
110.00 
            else
111.00 
               perform Case2 thru z-Case2
112.00 
            end-if.
113.00 
       *Send HTML buffer
114.00 
            move '*fini' to HtmlSects
115.00 
            call 'QWRTSECTION' using HtmlSects.
116.00 
       *----------------------------------
117.00 
        z-SendHtml.
118.00 
            EXIT.
119.00 
       *=================================================================
120.00 
        Case1.
121.00 
               move 'case1' to HtmlSects
122.00 
               call 'QWRTSECTION' using HtmlSects.
123.00 
       *----------------------------------
124.00 
        z-Case1.
125.00 
            EXIT.
126.00 
       *=================================================================
127.00 
        Case2.
128.00 
       *Set output variable /%xyrname%/
129.00 
            move 'xyrname' to varnameout
130.00 
            move xyrname to varvalout
131.00 
            call 'QUPDHTMLVAR' using varnameout varvalout.
132.00 
       *Send section /$case2
133.00 
            move 'case2' to HtmlSects
134.00 
            call 'QWRTSECTION' using HtmlSects.
135.00 
       *Send countries table
136.00 
            perform WriteRows thru z-WriteRows
137.00 
       *Send section /$end
138.00 
            move 'end' to HtmlSects
139.00 
            call 'QWRTSECTION' using HtmlSects.
140.00 
       *----------------------------------
141.00 
        z-Case2.
142.00 
            EXIT.
143.00 
       *=================================================================
144.00 
        WriteRows.
145.00 
            compute LinesNbr = 0.
146.00 
            perform WriteRow thru z-WriteRow
147.00 
                    until status-ctrdvy not = '00'.                        60
148.00 
            if LinesNbr >= 1
149.00 
               move 'tabend' to HtmlSects
150.00 
            else
151.00 
               move 'none' to HtmlSects
152.00 
            end-if.
153.00 
            call 'QWRTSECTION' using HtmlSects.
154.00 
       *----------------------------------
155.00 
        z-WriteRows.
156.00 
            EXIT.
157.00 
       *=================================================================
158.00 
        WriteRow.
159.00 
            read ctrdvy next record
160.00 
            at end
161.00 
                  move wkf to wkf.
162.00 
            if status-ctrdvy = '00'
163.00 
               compute LinesNbr = LinesNbr + 1
164.00 
               if LinesNbr = 1
165.00 
                  move 'tabstr' to HtmlSects
166.00 
                  call 'QWRTSECTION' using HtmlSects
167.00 
               end-if
168.00 
               perform SetTabRow thru z-SetTabRow
169.00 
               move 'tabrow' to HtmlSects
170.00 
               call 'QWRTSECTION' using HtmlSects
171.00 
            end-if.
172.00 
       *----------------------------------
173.00 
        z-WriteRow.
174.00 
            EXIT.
175.00 
       *=================================================================
176.00 
        SetTabRow.
177.00 
       * Set HTML output variables
178.00 
       * for section "tabrow"
179.00 
       *==================================
180.00 
       * Set output variable /%country%/
181.00 
            move 'country' to varnameout
182.00 
            move ctrnam to varvalout
183.00 
            call 'QUPDHTMLVAR' using varnameout varvalout.
184.00 
       * Set variable /%delvDays%/
185.00 
       * editing numeric filed "ctrday" (Signed 3,0)
186.00 
            move 'delvdays' to varnameout
187.00 
            move ctrday to edited-ctrday
188.00 
            move edited-ctrday to varvalout
189.00 
            call 'QUPDHTMLVAR' using varnameout varvalout.
190.00 
       *----------------------------------
191.00 
        z-SetTabRow.
192.00 
            EXIT.
193.00 
       *=================================================================
194.00 
        OpenFiles.
195.00 
            if openSW = ' '
196.00 
               move 'ovrdbf ctrdvy cgicbldev2/ctrdvy secure(*yes)' to cmd
197.00 
               call 'QDOCMD' using cmd
198.00 
                             returning into rc
199.00 
               open input ctrdvy
200.00 
               move 'x' to openSW
201.00 
            else
202.00 
               move ' ' to ctrnam
203.00 
               start ctrdvy key is >= externally-described-key
204.00 
            end-if.
205.00 
       *----------------------------------
206.00 
        Z-OpenFiles.
207.00 
            EXIT.
208.00 
 ********* END OF PGM : LISTCTR ****************************************
0.064 sec.s