ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

logic

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • logic

    Hi all!

    i am stuck up with something can u people help me out, here is the application: i have a display file screen in the i have one field say some cust no if i enter the cust no and on the display file there r some function keys so based on the function keys pressed we shud display the appropriate screens n in each n every screen all field r to be validation for blanks and all fields r alphanumeric. so can anybody provide me with the logic in RPGIII as i have done the same in RPG400.

    thanks

  • #2
    Re: logic

    John,

    Sorry but you're not making much sense. Can you re-state the question? Or maybe it's me?!

    MdnghtPgmr
    "Tis better to be thought a fool then to open one's mouth and remove all doubt." - Benjamin Franklin

    Comment


    • #3
      Re: logic

      John,

      Basically you're going to have to create you a Display File that prompts for your Customer Number and allows for each function key.

      At that point, do a select based on indicators being turned on to display for the sub-displays (information based on selected function key) and generate a display window or screen for that information. Just have it loop back to the original display when finished displaying/updating/deleting or whatever.

      Or, you could create your SINGLE display file to only display specific information based on Function Key pressed (Indicator turned on by pressing function key). It's totally your choice.

      Kinda like:

      Code:
       
      Do while *IN03 = '0'
       
         Set indicators to *OFF
       
         ExFMT  SelectScreen
       
         If *In03 = '1'
             Iter
         EndIf
       
         Select
       
            When *In02 = '1'
                      exfmt UpdateDisplay
       
            When *In04 = '1'
                      exfmt DeleteDisplay
       
            When *In06 = '1'
                      exfmt InsertDisplay
       
            When *In08 = '1'
                      exfmt SearchDisplay
       
         EndSL
       
      EndDO

      Comment


      • #4
        Re: logic

        John,

        Here is some RPGIII code I found
        I also included a text file that if you use Iseries navigator
        and CPYFRMPCD you can get the proper formatting.


        PHP Code:
              *-------------------------------------------------------------------------
             
        FCLK919FMCF  E                    WORKSTN      KINFDS WSDS
             F                                        SFLRNFKSFILE SFLFLD
             F                                        SFLRNTKSFILE SFLTIM
             F                                        SFLRS1KSFILE SFLSV1
             F                                        SFLRS2KSFILE SFLSV2
             FCKCOMPANIF  E           K        DISK                           UC
             FCKEMPLMSIF  E           K        DISK
             FCKSECRTYIF  E           K        DISK
             FCKSECRT2IF  E           K        DISK
             FCKAUDITFIF  E           K        DISK
             FCKDESCMSIF  E           K        DISK
             FCKWORKCDIF  E           K        DISK
        D0829FCKSELECTIF  E           K        DISK
             E
        *-------------------------------------------------------------------------
             
        E*            A R R A Y S   A N D   T A B L E S
             E
        *-------------------------------------------------------------------------
             
        E                    CLK        10 10
             E                    ADT        12 14 0             Audit date
        /times
             E                    CHG        41  1               Field changes
             E                    SUB         7 10               Secured Bef
             E                    SUA         7 10               Secured Aft
             E                    SUC     7   7  1               Secured codes
             E                    SUD         7 10               Secured Desc
             E                    PCB        10  5               Paycode before
             E                    PCA        10  5               Paycode after
             E                    HRB        10  5 2             Hours before
             E                    HRA        10  5 2             Hours after
             E
        *
             
        E                    GTXT    1   5 30               General text
             E                    FNAM    1  41 10   FTXT   12
             E                    MSG     1   4 78
             I
        *-------------------------------------------------------------------------
             
        I*                 D A T A   S T R U C T U R E S
             I
        *-------------------------------------------------------------------------
             
        I/COPY KTXXCOPY,DATFMTDS
             I            DS
             I                                        1 100 CLK
             I                                        1  10 EECK01                INDV
        .
             
        I                                       11  20 EECK02
             I                                       21  30 EECK03
             I                                       31  40 EECK04
             I                                       41  50 EECK05
             I                                       51  60 EECK06
             I                                       61  70 EECK07
             I                                       71  80 EECK08
             I                                       81  90 EECK09
             I                                       91 100 EECK10
             I            DS
             I                                        1  230AUDKEY
             I                                        1   90AUDKYE
             I                                       10  230AUDDTM
             I                                       10  170AUDKYD
             I                                       18  230AUDKYT
             I            DS
             I                                        1  230AUDKYA
             I                                        1   90AUDKEA
             I                                       10  170AUDKDA
             I                                       18  230AUDKTA
             I            DS
             I                                        1  230AUDKYZ
             I                                        1   90AUDKEZ
             I                                       10  170AUDKDZ
             I                                       18  230AUDKTZ
             I            DS
             I                                        1  140FRMDTM
             I                                        1   80FRDATE
             I                                        9  140FRTIME
             I            DS
             I                                        1  140TODTM
             I                                        1   80TODATE
             I                                        9  140TOTIME
             I            DS
             I                                        1  140BOTDTM
             I                                        1   80BOTDAT
             I                                        9  140BOTTIM
             I            DS
             I                                        1  140CURDTM
             I                                        1   80AUDATE
             I                                        9  140AUTIME
             I            DS
             I                                        1 168 ADT
             I                                        1  140AUBATI
             I                                       15  280AUAATI
             I                                       29  420AUBATO
             I                                       43  560AUAATO
             I                                       57  700AUBRTI
             I                                       71  840AUARTI
             I                                       85  980AUBRTO
             I                                       99 1120AUARTO
             I                                      113 1260AUBSTI
             I                                      127 1400AUASTI
             I                                      141 1540AUBSTO
             I                                      155 1680AUASTO
             IWSDS        DS
             I                                      369 369 KEY
             I                                    B 376 3770RR
        #
             
        I                                    B 378 3790PAGRRN
             I                                    B 380 3810REC
             ILDA        UDS
             I                                        1   20COMPAN
             I                                        3  12 USERID
             I                                       13  14 PGM
             I                                       85  94 PGMNAM
             I                                      170 170 FRM303
             I                                      171 171 FRM909
             I
        /COPY KTXXCOPY,$SELECTDS
             ISCRFRD      DS
             I                                        1  120SCRFR
             I                                        1   80SCRFDT
             I                                        9  120SCRFTM
             ISCRTOD      DS
             I                                        1  120SCRTO
             I                                        1   80SCRTDT
             I                                        9  120SCRTTM
             I            DS
             I                                        1  120CMPDTM
             I                                        1   80CMPDT
             I                                        9  120CMPTM
             I
        *------------------------------------
             
        IATTENDANCE TRACKER CODES INPUT
             I
        *------------------------------------
             
        I            DS
             I                                        1   8 ATCIN
             I                                        1   2 ATC1I
             I                                        3   4 ATC2I
             I                                        5   6 ATC3I
             I                                        7   8 ATC4I
             I
        *------------------------------------
             
        IATTENDANCE TRACKER CODES OUTPUT
             I
        *------------------------------------
             
        I            DS
             I                                        1  41 ATCOUT
             I                                        1   2 ATC1O
             I                                        4   5 ATC2O
             I                                        7   8 ATC3O
             I                                       10  11 ATC4O
             I
        *--------------------------------------------
             
        IAUDIT CHANGE ARRAY   U  USER CHANGED
             I
        *                      S  SYSTEM CHANGED
             I
        *                     ' ' NOT CHANGED
             I
        *--------------------------------------------
             
        ICHGDS       DS
             I                                        1  41 CHG
             I                                        1   1 AUATI
        $
             
        I                                        2   2 AUATO$
             
        I                                        3   3 AURTI$
             
        I                                        4   4 AURTO$
             
        I                                        5   5 AUSTI$
             
        I                                        6   6 AUSTO$
             
        I                                        7   7 AUALT$
             
        I                                        8   8 AUOVR$
             
        I                                        9   9 AUMB$
             
        I                                       10  10 AUCAN$
             
        I                                       11  11 AUSFT$
             
        I                                       12  12 AUSC1$
             
        I                                       13  13 AUSC2$
             
        I                                       14  14 AUSC3$
             
        I                                       15  15 AUUF1$
             
        I                                       16  16 AUUF2$
             
        I                                       17  17 AUUF3$
             
        I                                       18  18 AUUF4$
             
        I                                       19  19 AUATC$
             
        I                                       20  20 AUP01$
             
        I                                       21  21 AUP02$
             
        I                                       22  22 AUP03$
             
        I                                       23  23 AUP04$
             
        I                                       24  24 AUP05$
             
        I                                       25  25 AUP06$
             
        I                                       26  26 AUP07$
             
        I                                       27  27 AUP08$
             
        I                                       28  28 AUP09$
             
        I                                       29  29 AUP10$
             
        I                                       30  30 AUH01$
             
        I                                       31  31 AUH02$
             
        I                                       32  32 AUH03$
             
        I                                       33  33 AUH04$
             
        I                                       34  34 AUH05$
             
        I                                       35  35 AUH06$
             
        I                                       36  36 AUH07$
             
        I                                       37  37 AUH08$
             
        I                                       38  38 AUH09$
             
        I                                       39  39 AUH10$
             
        I                                       40  40 AUHRS$
             
        I                                       41  41 AUCOM$
             
        I*--------------------------------------------
             
        ISECURED FIELDS ARRAY - 'BEFORE' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  70 SUB
             I                                        1  10 AUBSC1
             I                                       11  20 AUBSC2
             I                                       21  30 AUBSC3
             I                                       31  40 AUBSC4
             I                                       41  50 AUBSC5
             I                                       51  60 AUBSC6
             I                                       61  70 AUBSC7
             I
        *--------------------------------------------
             
        ISECURED FIELDS ARRAY - 'AFTER' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  70 SUA
             I                                        1  10 AUASC1
             I                                       11  20 AUASC2
             I                                       21  30 AUASC3
             I                                       31  40 AUASC4
             I                                       41  50 AUASC5
             I                                       51  60 AUASC6
             I                                       61  70 AUASC7
             I
        *--------------------------------------------
             
        ISECURED FIELDS Descriptions
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  70 SUD
             I                                        1  10 COSDS1
             I                                       11  20 COSDS2
             I                                       21  30 COSDS3
             I                                       31  40 COSDS4
             I                                       41  50 COSDS5
             I                                       51  60 COSDS6
             I                                       61  70 COSDS7
             I
        *--------------------------------------------
             
        IPAYCODE ARRAY - 'BEFORE' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  50 PCB
             I                                        1   5 AUBP01
             I                                        6  10 AUBP02
             I                                       11  15 AUBP03
             I                                       16  20 AUBP04
             I                                       21  25 AUBP05
             I                                       26  30 AUBP06
             I                                       31  35 AUBP07
             I                                       36  40 AUBP08
             I                                       41  45 AUBP09
             I                                       46  50 AUBP10
             I
        *--------------------------------------------
             
        IPAYCODE ARRAY - 'AFTER' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  50 PCA
             I                                        1   5 AUAP01
             I                                        6  10 AUAP02
             I                                       11  15 AUAP03
             I                                       16  20 AUAP04
             I                                       21  25 AUAP05
             I                                       26  30 AUAP06
             I                                       31  35 AUAP07
             I                                       36  40 AUAP08
             I                                       41  45 AUAP09
             I                                       46  50 AUAP10
             I
        *--------------------------------------------
             
        IHOURS ARRAY - 'BEFORE' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  50 HRB
             I                                        1   52AUBH01
             I                                        6  102AUBH02
             I                                       11  152AUBH03
             I                                       16  202AUBH04
             I                                       21  252AUBH05
             I                                       26  302AUBH06
             I                                       31  352AUBH07
             I                                       36  402AUBH08
             I                                       41  452AUBH09
             I                                       46  502AUBH10
             I
        *--------------------------------------------
             
        IHOURS ARRAY - 'AFTER' FIELDS
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  50 HRA
             I                                        1   52AUAH01
             I                                        6  102AUAH02
             I                                       11  152AUAH03
             I                                       16  202AUAH04
             I                                       21  252AUAH05
             I                                       26  302AUAH06
             I                                       31  352AUAH07
             I                                       36  402AUAH08
             I                                       41  452AUAH09
             I                                       46  502AUAH10
             I
        *--------------------------------------------
             
        IBEFORE/AFTER FORMATTING DATA STRUCTURES
             I
        *--------------------------------------------
             
        I            DS
             I                                        1  41 SUBUFR
             I                                        1  10 SUKEY
             I                                       12  41 SUDESC
             I            DS
             I                                        1  41 PCBUFR
             I                                        1   5 PAYCOD
             I                                        7  21 PCDESC
             I            DS
             I                                        1   6 TIME6
             I                                        1   1 TIME1
             I                                        2   2 TIME2
             I            DS
             I                                        1   6 DATE6
             I                                        1   1 DATE61
             I                                        1   2 DATE6A
             I                                        3   4 DATE6B
             I                                        5   6 DATE6C
             I
        *
             
        I                                        7  14 DATE8
             I                                        7   8 DATE8A
             I                                        9   9 DAT8S1
             I                                       10  11 DATE8B
             I                                       12  12 DAT8S2
             I                                       13  14 DATE8C
             I            DS
             I                                        1   7 HR7
             I                                        1   1 HR1
             I                                        2   2 HR2
             I                                        3   3 HR3
             I                                        1   3 HRL3
             I                                        4   4 HRDEC
             I                                        5   6 HRR2
             I                                        7   7 HRSIGN
             I
        *
             
        I            DS
             I                                        1  41 SUMBUF
             I                                        1   8 SUMDTI
             I                                       10  14 SUMTMI
             I                                       17  24 SUMDTO
             I                                       26  30 SUMTMO
             I                                       33  39 SUMHRS
             I
        *
             
        I            DS
             I                                        1  41 DTLBA
             I                                        1   8 DTLBAD
             I                                       10  14 DTLBAT
             I            DS
             I                                        1  78 MSGFLD
             I                                        1  37 MSG37
        D0829I            DS
          
        |  I                                        1   9 SELFLD
          
        |  I                                        1   1 SLMI01
          
        |  I                                        2   2 SLMI02
          
        |  I                                        3   3 SLMI03
          
        |  I                                        4   4 SLMI04
          
        |  I                                        5   5 SLMI05
          
        |  I                                        6   6 SLMI06
          
        |  I                                        7   7 SLMI07
          
        |  I                                        8   8 SLMI08
        D0829I                                        9   9 SLMI09
             I
        *-------------------------------------------------------------------------
             
        I*       D  E  F  I  N  E  D      C  O  N  S  T  A  N  T  S
             I
        *-------------------------------------------------------------------------
             
        I              X'F4'                 C         PAGEUP
             I              X
        'F5'                 C         PAGEDN
             I              
        'Description'         C         SUTEXT
             I              
        'Pay code'            C         PCTEXT
             I              
        'Not Found'           C         NOTFND
             C
        *-------------------------------------------------------------------------
             
        C*      F  I  E  L  D       D  E  F  I  N  I  T  I  O  N  S
             C
        *-------------------------------------------------------------------------
             
        C*  1 BYTE SWITCHES
             C           
        *LIKE     DEFN DONE      AUDEOF
             C           
        *LIKE     DEFN DONE      AUDFND
             C           
        *LIKE     DEFN DONE      BASW
             C           
        *LIKE     DEFN DONE      CHGSW
             C           
        *LIKE     DEFN DONE      DTLSW
             C           
        *LIKE     DEFN DONE      ERRSW
             C           
        *LIKE     DEFN DONE      EMPFND
             C           
        *LIKE     DEFN DONE      EMPLOK
             C           
        *LIKE     DEFN DONE      ENDEMP
             C           
        *LIKE     DEFN DONE      FILLED
             C           
        *LIKE     DEFN DONE      GRPCHG
             C           
        *LIKE     DEFN DONE      INCLUD
             C           
        *LIKE     DEFN DONE      MORCHG
             C           
        *LIKE     DEFN DONE      POSSW
             C           
        *LIKE     DEFN DONE      SAVE78
             C           
        *LIKE     DEFN DONE      SFLFND
             C           
        *LIKE     DEFN DONE      SFSFND
             C           
        *LIKE     DEFN DONE      SUMFND
             C           
        *LIKE     DEFN DONE      SUMSW
             C
        *
             
        C*  2 BYTE COUNTERS
             C           
        *LIKE     DEFN HISEQ     #FLDS
             
        C           *LIKE     DEFN HISEQ     GRPMAX
             C           
        *LIKE     DEFN HISEQ     GRPSAV
             C           
        *LIKE     DEFN HISEQ     GRPCNT
             C           
        *LIKE     DEFN HISEQ     PAGSIZ
             C           
        *LIKE     DEFN HISEQ     SEQIN
             C           
        *LIKE     DEFN HISEQ     V
             C           
        *LIKE     DEFN HISEQ     C
             C           
        *LIKE     DEFN HISEQ     DX
             C           
        *LIKE     DEFN HISEQ     PC
             C           
        *LIKE     DEFN HISEQ     HR
             C           
        *LIKE     DEFN HISEQ     SU
             C
        *
             
        C*  3 BYTE FLAGS
             C           
        *LIKE     DEFN MODE      LEVEL
             C           
        *LIKE     DEFN MODE      ORDER
             C           
        *LIKE     DEFN MODE      VIEW
             C           
        *LIKE     DEFN MODE      IOPHAS
             C           
        *LIKE     DEFN MODE      IOMODE
             C           
        *LIKE     DEFN MODE      SFLLOC
             C
        *
             
        C*  7 BYTE COUNTERS
             C           
        *LIKE     DEFN SFLRN     POSRN
             C           
        *LIKE     DEFN SFLRN     ENDRN
             C           
        *LIKE     DEFN SFLRN     SFLRNF
             C           
        *LIKE     DEFN SFLRN     SFLRNT
             C           
        *LIKE     DEFN SFLRN     SFLRS1
             C           
        *LIKE     DEFN SFLRN     SFLRS2
             C           
        *LIKE     DEFN SFLRN     SAVRNS
             C           
        *LIKE     DEFN SFLRN     SFLREC
             C           
        *LIKE     DEFN SFLRN     SUMREC
             C           
        *LIKE     DEFN SFLRN     DTLREC
             C           
        *LIKE     DEFN SFLRN     DREC
             C           
        *LIKE     DEFN SFLRN     WRKDTL
             C           
        *LIKE     DEFN SFLRN     SFLCNT
             C           
        *LIKE     DEFN SFLRN     SUMCNT
             C           
        *LIKE     DEFN SFLRN     DTLCNT
             C           
        *LIKE     DEFN SFLRN     SFLIN
             C           
        *LIKE     DEFN SFLRN     SFLMAX
             C           
        *LIKE     DEFN SFLRN     FILAMT
             C           
        *LIKE     DEFN SFLRN     LINES
             C           
        *LIKE     DEFN SFLRN     NUMPAG
             C           
        *LIKE     DEFN SFLRN     EXTLIN
             C           
        *LIKE     DEFN SFLRN     PRVDTL
             C           
        *LIKE     DEFN SFLRN     INSUM
             C           
        *LIKE     DEFN SFLRN     OUTSUM
             C           
        *LIKE     DEFN SFLRN     SAVCUR
             C
        *
             
        C14 BYTE DATE/TIME FIELDS
             C           
        *LIKE     DEFN AUTTIM    SETDTM
             C           
        *LIKE     DEFN AUTTIM    POSDTM
             C           
        *LIKE     DEFN AUTTIM    DATTIM
             C
        *
             
        CMISCELLANEOUS
             C           
        *LIKE     DEFN ORDER     SAVORD
             C           
        *LIKE     DEFN AUDATE    SVDATE
             C           
        *LIKE     DEFN AUTIME    SVTIME
             C           
        *LIKE     DEFN AUBATI    SVBATI
             C           
        *LIKE     DEFN AUAATI    SVAATI
             C
        *-------------------------------------------------------------------------
             
        C*                K  E  Y        L  I  S  T  S
             C
        *-------------------------------------------------------------------------
             
        C*  CKEMPLMS
             C           EMPKEY    KLIST
             C                     KFLD           AUCONO
             C                     KFLD           AUEMPN
             C           PRVKEY    KLIST
             C                     KFLD           AUCONO
             C                     KFLD           EMPPRV
             C
        *  CKAUDITF
             C           AUDTKY    KLIST
             C                     KFLD           AUDKYE
             C                     KFLD           AUDKYD
             C                     KFLD           AUDKYT
             C
        *  CKDESCMS
             C           KYDSC     KLIST
             C                     KFLD           DSCODE
             C                     KFLD           DSKEYM
             C
        *  CKWORKCD
             C
        *-------------------------------------------------------------------------
             
        C*                M  A  I  N  L  I  N  E
             C
        *-------------------------------------------------------------------------
        D0228C**                   MOVE 'N'       DONE
             C
        **                   EXSR LDSFL
             C           DONE      DOWEQ
        'N'
             
        C                     MOVE '-01 '    SCRNAM
             C                     EXSR SFLOUT
             C                     EXSR RESET
             C                     Z
        -ADDPAGRRN    SAVCUR
             C                     Z
        -ADDPAGRRN    SFLPS
             C           
        *INKA     CASEQ*ON       HELP             F1
             C           
        *INKC     CASEQ*ON       EXIT             F3
             C           
        *INKF     CASEQ*ON       SUMDTL           F6
             C           
        *INKG     CASEQ*ON       REORDR           F7
             C           
        *INKI     CASEQ*ON       PRVEMP           F9
             C           
        *INKJ     CASEQ*ON       NXTEMP           F10
             C           
        *INKK     CASEQ*ON       ALTVW            F11
             C           
        *INKL     CASEQ*ON       CANCEL           F12
             C           
        *INKM     CASEQ*ON       SFLPOS           F13
             C           
        *INKR     CASEQ*ON       SFLTOP           F17
             C           
        *INKS     CASEQ*ON       SFLBOT           F18
             C           KEY       CASEQPAGEDN    PGDN
             C                     CAS            ENTER
             C                     ENDCS
             C                     ENDDO
             C                     EXSR ENDJOB
             C
        ********
             
        C**INZSR*   PROGRAM INITIALIZATION
             C
        ********
             
        C           *INZSR    BEGSR
             C
        *
             
        C           PHELP     PLIST
             C                     PARM 
        'CLK919'  CSRPGM 10
             C                     PARM           CSRREC 10
             C                     PARM           CSRFLD 10
             C
        *
        D0829C           SELKEY    KLIST
          
        |  C                     KFLD           COMPAN
          
        |  C                     KFLD           USERID
          
        |  C                     KFLD           PGMNAM
          
        |  C*
        D0829C           SELKEY    CHAINCKSELECT             45
             C
        *
             
        C/COPY KTXXCOPY,DATFMTPL
             C                     MOVE 
        'N'       AUDFND
             C                     MOVE 
        'N'       DONE    1
             C                     MOVE 
        '01'      AUCONO
             C           
        *NAMVAR   DEFN *LDA      LDA
             C                     IN   LDA
              
        *
             
        C*
             
        C*  Single employee MODE and reverse chronological ORDER if from CLK303
             C           FRM303    IFEQ 
        'Y'
             
        C           FRM909    OREQ 'Y'
        D0829C                     MOVE *ALL'Y'   SELFLD
             C                     MOVE 
        *ON       *IN77
             C                     MOVE 
        'SNG'     MODE    3
             C                     EXSR SETREV
             C                     
        ELSE
             
        C                     MOVE 'ALL'     MODE
             C                     EXSR SETFWD
             C                     
        ENDIF
              *
             
        C*  For now!!!!!, default to SUMMARY LEVEL and FIELD VIEW
              
        *  maybe later make user parameters on company file
             C                     EXSR SETSUM
             C                     EXSR SETVWF
              
        *
             
        C                     EXSR GETCO
             C                     EXSR INZDAT
             C                     EXSR INZRNG
             C                     EXSR INZSCR
             C                     EXSR INZSEC
             C                     EXSR INZSU
              
        *
             
        C                     MOVE '/'       DAT8S1
             C                     MOVE 
        '/'       DAT8S2
             C                     Z
        -ADD41        #FLDS
             
        C                     Z-ADD7         PAGSIZ
             C                     MOVE 
        'N'       POSSW
              
        Find first authorized audit record
              
        *
             
        C           MODE      CASEQ'SNG'     INZSNG
             C           MODE      CASEQ
        'ALL'     INZALL
             C                     ENDCS
              
        *
             
        C                     EXSR INZKEY
              
        *
             
        C**                   MOVE '/'       DAT8S1
             C
        **                   MOVE '/'       DAT8S2
             C
        **                   Z-ADD41        #FLDS
             
        C**                   Z-ADD7         PAGSIZ
             C
        **                   MOVE 'N'       POSSW
              
        *
             
        C                     ENDSR
             C
        ********
             
        C*SFLPOS*   Position subfile to a user-entered date/time
             C
        ********
             
        C           SFLPOS    BEGSR
             C
        *
             
        C           *INKL     DOUEQ*ON
             C                     EXFMTPOSITN
             C                     MOVE 
        *OFF      *IN21
             C                     MOVE 
        *OFF      *IN22
             C                     MOVE 
        *OFF      *IN99
             C                     MOVE 
        *BLANKS   MSGFLD
             C
        *
             
        C           *IN01     IFEQ *ON
             C                     CALL 
        'HELP'    PHELP
             C                     ITER
             C                     
        ENDIF
             
        C*
             
        C           *INKD     IFEQ *ON
             C                     EXSR WINPOS
             C                     ITER
             C                     
        ENDIF
             
        C*
             
        C   KL                LEAVE
             C
        *
             
        C                     EXSR VALPOS
             C           
        *IN99     IFEQ *ON
             C                     ITER
             C                     
        ENDIF
             
        C*
             
        C                     LEAVE
             C                     ENDDO
             C
        *
             
        C           *INKL     IFNE *ON
             C
        *
             
        C                     EXSR FNDPOS
             C           POSRN     IFEQ 0
             C           ENDEMP    ANDEQ
        'N'
             
        C                     Z-ADD9999999   FILAMT
             C                     EXSR PGDN
             C                     Z
        -ADD0         FILAMT
             C                     EXSR FNDPOS
             C                     
        ENDIF
             
        C                     MOVE 'POS'     SFLLOC
             C                     EXSR REPOS
             C                     MOVE 
        '   '     SFLLOC
             C
        *
             
        C                     ENDIF
             
        C                     ENDSR
             C
        ********
             
        C*WINPOS*   Prompt window from 'POSITION TO' screen
             C
        ********
             
        C           WINPOS    BEGSR
             C
        *
             
        C                     MOVEL*BLANKS   IOWORK
             C                     OUT  LDA
             C
        *
             
        C                     SELEC
             C           CSRFLD    WHEQ 
        'POSDAT'
             
        C                     SETON                     21
             C                     CALL 
        'CALEND'
             
        C                     ENDSL
             C
        *
             
        C                     IN   LDA
             C
        *
             
        C           IOWORK    IFNE *BLANKS
             C   21                MOVELIOWORK    POSDAT
             C                     
        ENDIF
             
        C*
             
        C                     ENDSR
             C
        ********
             
        C*VALPOS*   Validate 'POSITION TO' fields
             C
        ********
             
        C           VALPOS    BEGSR
             C
        *
             
        C                     Z-ADD*ZERO     POSDTM
             C
        *
             
        C           1         DO   3         V
             C
        *
             
        C           *IN99     IFNE *ON
             C           V         CASEQ1         VALDAT
             C           V         CASEQ2         VALTIM
             C           V         CASEQ3         VALDTM
             C                     ENDCS
             C                     
        ENDIF
             
        C*
             
        C                     ENDDO
             C
        *
             
        C                     ENDSR
             C
        ********
             
        C*VALDAT*   Validate 'POSITION TO' date
             C
        ********
             
        C           VALDAT    BEGSR
             C
        *
             
        C           POSDAT    IFEQ *ZEROS
             C                     EXSR DATERR
             C                     
        ELSE
             
        C                     Z-ADDPOSDAT    PIDAT6
             C                     EXSR CVTDTI
             C           PERROR    IFEQ 
        'D'
             
        C                     EXSR DATERR
             C                     
        ENDIF
             
        C                     ENDIF
             
        C*
             
        C           *IN99     IFEQ *OFF
             C                     MOVELPODAT8    POSDTM
             C                     
        ENDIF
             
        C*
             
        C                     ENDSR
             C
        ********
             
        C*CVTDTI*   CVT Date from User to SYSTEM (PIDAT6 to PODAT8)
             
        C********
             
        C           CVTDTI    BEGSR
             C
        /COPY KTXXCOPY,CVTDTI
             C                     ENDSR
             C
        ********
             
        C*DATERR*   An invalid DATE was entered
             C
        ********
             
        C           DATERR    BEGSR
             C                     MOVE 
        *ON       *IN99
             C                     MOVE 
        *ON       *IN21
             C                     MOVELMSG
        ,1     MSG37
             C                     ENDSR
             C
        ********
             
        C*VALTIM*   Validate 'POSITION TO' time
             C
        ********
             
        C           VALTIM    BEGSR
             C
        *
             
        C           POSTIM    IFEQ *BLANKS
             C                     MOVE 
        '0'       POSTIM
             C                     
        ELSE
             
        C                     MOVELPOSTIM    PITIM5
             C                     EXSR CVTTMI
             C           PERROR    IFEQ 
        'T'
             
        C                     EXSR TIMERR
             C                     
        ENDIF
             
        C                     ENDIF
             
        C*
             
        C           *IN99     IFEQ *OFF
             C                     MOVE POTIM6    POSDTM
             C                     
        ENDIF
             
        C*
             
        C                     ENDSR
             C
        ********
             
        C*CVTTMI*   CVT Time from User to System (PITIM5 to POTIM6)
             
        C********
             
        C           CVTTMI    BEGSR
             C
        /COPY KTXXCOPY,CVTTMI
             C                     ENDSR
             C
        ********
             
        C*TIMERR*   An invalid TIME was entered
             C
        ********
             
        C           TIMERR    BEGSR
             C                     MOVE 
        *ON       *IN99
             C                     MOVE 
        *ON       *IN22
             C                     MOVELMSG
        ,2     MSG37
             C                     ENDSR
             C
        ********
             
        C*VALDTM*   Ensure date is within date range
             C
        ********
             
        C           VALDTM    BEGSR
             C                     MOVELPOSDTM    CMPDTM
             C                     EXSR CHKDAT
             C           INCLUD    IFEQ 
        'N'
             
        C                     EXSR DATERR
             C                     MOVELMSG
        ,3     MSG37
             C                     
        ENDIF
             
        C                     ENDSR
             C
        ********
             
        C*FNDPOS*   Find the subfile record number for entered date/time
             C
        ********
             
        C           FNDPOS    BEGSR
             C
        *
             
        C                     Z-ADD0         POSRN
             C                     Z
        -ADD1         SFLREC
             C
        *
             
        C           SFLREC    DOUGTENDRN
             C           POSRN     ORNE 0
             C                     EXSR CHNSFL
             C                     EXSR CMPDAT
             C           POSRN     IFEQ 0
             C                     ADD  1         SFLREC
             C                     
        ELSE
             
        C                     MOVE 'Y'       POSSW
             C                     EXSR SFLUPD
             C                     MOVE 
        'N'       POSSW
             C                     
        ENDIF
             
        C                     ENDDO
             C                     ENDSR
             C
        ********
             
        C*CMPDAT*   Check audit record date vsreposition date
             C
        ********
             
        C           CMPDAT    BEGSR
             C                     MOVELAUDATE    DATTIM
             C                     MOVE AUTIME    DATTIM
             C
        *
             
        C                     SELEC
             C
        *
             
        C           ORDER     WHEQ 'FWD'
             
        C           DATTIM    IFGE POSDTM
             C           RECLVL    ANDEQ
        'S'
             
        C                     EXSR SETSFL
             C                     
        ENDIF
             
        C*
             
        C           ORDER     WHEQ 'REV'
             
        C           DATTIM    IFLE POSDTM
             C           RECLVL    ANDEQ
        'S'
             
        C                     EXSR SETSFL
             C                     
        ENDIF
             
        C*
             
        C                     ENDSL
             C                     ENDSR
             C
        ********
             
        C*SETSFL*
             
        C********
             
        C           SETSFL    BEGSR
             C                     Z
        -ADDSFLREC    POSRN
             C           POSRN     IFEQ 0
             C                     Z
        -ADD1         POSRN
             C                     
        ENDIF
             
        C           POSRN     IFGT ENDRN
             C                     Z
        -ADDENDRN     POSRN
             C                     
        ENDIF
             
        C                     ENDSR
             C
        ********
             
        C*REPOS *   Position the subfile
             C
        ********
             
        C           REPOS     BEGSR
             C                     SELEC
             C
        *  Position to current page
        D0306C
        ***        SFLLOC    WHEQ 'CUR'
          
        |  C***        SAVCUR    ANDNE0
        D0306C
        ***                  Z-ADDSAVCUR    SFLPS
             C
        *  Position to next page
        D0509C           SFLLOC    WHEQ 
        'NXT'
          
        |  C           SAVCUR    ANDNE0
        D0509C           SAVCUR    ADD  PAGSIZ    SFLPS
        D0829C           SFLPS     IFGT SFLRN
          
        |  C                     Z-ADDSFLRN     SFLPS
        D0829C                     
        ENDIF
             
        C*  Position to previous page
             C           SFLLOC    WHEQ 
        'PRV'
             
        C           SAVCUR    ANDNE0
             C           SAVCUR    SUB  PAGSIZ    SFLPS
        D0829C           SFLPS     IFGT SFLRN
          
        |  C                     Z-ADDSFLRN     SFLPS
        D0829C                     
        ENDIF
             
        C*  Position to first page
             C           SFLLOC    WHEQ 
        'TOP'
             
        C                     Z-ADD1         SFLPS
             C
        *  Position to last page
             C           SFLLOC    WHEQ 
        'END'
             
        C           ENDRN     ANDNE0
             C                     Z
        -ADDENDRN     SFLPS
             C           SFLLOC    WHEQ 
        'POS'
             
        C           POSRN     ANDNE0
             C                     Z
        -ADDPOSRN     SFLPS
             C                     Z
        -ADD0         POSRN
             C                     ENDSL
             C                     ENDSR
             C
        ********
             
        C*SFLTOP*   Position subfile to first record
             C
        ********
             
        C           SFLTOP    BEGSR
             C                     MOVE 
        'TOP'     SFLLOC
             C                     EXSR REPOS
             C                     MOVE 
        '   '     SFLLOC
             C                     ENDSR
         
        ** Secured/user field codes for reading CKDESCMS
        DESJCTL
        ** General text fields
        User
        System
        Actual
        Rounded
        Sched
        **  Time File field names=10 bytes (DOCUMENTATION ONLY)   Field text=12 bytes
        TIATIM    Act Time In
        TIATOM    Act Time Out
        TIRTIM    Rnd Time In
        TIRTOM    Rnd Time Out
        TISTIM    Sch Time In
        TISTOM    Sch Time Out
        TITCOD    Daily Rule
        TITIOB    Override
        TIMORB    Meal
        /break
        TISLUN    Cancel Meal
        TISHFT    Shift
        TISEC1    Secured Fld1
        TISEC2    Secured Fld2
        TISEC3    Secured Fld3
        TISEC4    Secured Fld4
        TISEC5    Secured Fld5
        TISEC6    Secured Fld6
        TISEC7    Secured Fld7
        ATRCOD    Attendance
        TIPC01    Pay Code 1
        TIPC02    Pay Code 2
        TIPC03    Pay Code 3
        TIPC04    Pay Code 4
        TIPC05    Pay Code 5
        TIPC06    Pay Code 6
        TIPC07    Pay Code 7
        TIPC08    Pay Code 8
        TIPC09    Pay Code 9
        TIPC10    Pay Code 10
        TIHR01    Hours 1
        TIHR02    Hours 2
        TIHR03    Hours 3
        TIHR04    Hours 4
        TIHR05    Hours 5
        TIHR06    Hours 6
        TIHR07    Hours 7
        TIHR08    Hours 8
        TIHR09    Hours 9
        TIHR10    Hours 10
        TIRETM    Total hours
        CMDESC    Comment
        **
        Date Inconsistent With Company Format
        Time Inconsistent With Company Format
        Date
        /time Not Within Selected Range
        Details Available Only 
        For CHANGE or FORCE OT 
        Attached Files
        All my answers were extracted from the "Big Dummy's Guide to the As400"
        and I take no responsibility for any of them.

        www.code400.com

        Comment


        • #5
          Re: logic

          Hi Jamie

          Thanks a lottttttttttttttttttttttttttt Jamie.

          bye

          Comment


          • #6
            Re: logic

            Hi Jamie


            First i would like to thank for posting some sample code. i have gone thru tht code n i got some doubts in tht. i have seen tht there r some 8 Input Files used in the prgm n there r quite a good number of Data Structures used in the prgm
            r the files r flat files so tht using Data Structures fields a divided. if the files r not flat files then wt is the use of declaring the same fields In I Spec which r already present in the files wht function do they do if we declare the fields in I spec. n one more thing wt is the function of this stmt " I/COPY KTXXCOPY,DATFMTDS".

            thanks

            Comment


            • #7
              Re: logic

              John,

              The "I/Copy" statement copies source code during compile time into the current program.

              Also, I believe the Jaime just found some RPG/III code (as listed above) to give you some examples of how RPG/III specs are coded (per your original post). This can be used as a guide to create your own logic program.

              hth

              Comment


              • #8
                Re: logic

                Hi Fastone

                Thanks for the COPY stmt wt abt the fields tht r used in Data structures. i have seen some code where they have used the fields tht r present in the Physical File as the fields of the Data Structure's subfields wt is the function of these fields if v declare in the Data Structure.

                thanks

                Comment


                • #9
                  Re: logic

                  The datastructures allow the programmer to move specific fields to and from files.
                  They are also used to seperate the time from the date in a timestamp field.

                  Today we would use %subdt to remove the date/month/days........Time from a
                  timestamp but this was not available way back then

                  In this example (taken from the code sample)
                  PHP Code:
                  code
                       I            DS 
                       I                                        1 100 CLK 
                       I                                        1  10 EECK01                INDV

                       
                  I                                       11  20 EECK02 
                       I                                       21  30 EECK03 
                       I                                       31  40 EECK04 
                       I                                       41  50 EECK05 
                       I                                       51  60 EECK06 
                       I                                       61  70 EECK07 
                       I                                       71  80 EECK08 
                       I                                       81  90 EECK09 
                       I                                       91 100 EECK10 

                  The file contains only one field and it is 100 *char long.
                  but really its 10 - 10 *char fields

                  Again now we would use the + to just add them together in one long string

                  eval CLK = EECK01 + EECK02 + EECK03 + etc....



                  hope this helps
                  jamie
                  All my answers were extracted from the "Big Dummy's Guide to the As400"
                  and I take no responsibility for any of them.

                  www.code400.com

                  Comment


                  • #10
                    Re: logic

                    Hi Jamie!

                    The explanation u gave for the Data Structure n fields r fine n tht i know means, dividing one field into two r more subfields n use them inside the program, apart from tht is there any thing tht we can do if v declare fields inside a Data Structure.

                    thanks

                    Comment


                    • #11
                      Re: logic

                      Maybe just to use them for lets say an external call to a program.....
                      Like always Im not your best resource as I dont often use datastructures.

                      anyone else have an ideas as to how to use datastructures....


                      Thanks
                      jamie
                      All my answers were extracted from the "Big Dummy's Guide to the As400"
                      and I take no responsibility for any of them.

                      www.code400.com

                      Comment


                      • #12
                        Re: logic

                        thanx Jamie. sorry if i am troubling u.

                        bye

                        Comment


                        • #13
                          Re: logic

                          John - No trouble I just only know so much or as Fastone says so little
                          Thats what we are here for is to help....


                          take care
                          jamie
                          All my answers were extracted from the "Big Dummy's Guide to the As400"
                          and I take no responsibility for any of them.

                          www.code400.com

                          Comment


                          • #14
                            Re: logic

                            John,

                            There are NUMEROUS things you can do with a Data Structure... Subdivide fields, use them as work fields define them as constants, use them for sending data streams in and out of your program... just to name a few.

                            If you really want to get spiffy with it, turn it into a Multiple occurence Data Structure, then you can treat the structure like an array with each element containting ALL items defined in the structure.

                            The point it... the DS can be used for many things... it just depends on what you want to do with it and how you want to do it. Albeit... they are MUCH much easier to work with in ILE than with the original RPG/III

                            -Fasty

                            Comment

                            Working...
                            X