Professional Documents
Culture Documents
write/update data
Posted By: JimmyOctane Contact
C*===============================================
C* Chaining to a logical file, if record found
C* then update quantities else write record.
C*===============================================
C TheKey02 Klist
C Kfld PGPGRP
C Kfld PGPCA1
C Kfld PGPCA2
C Kfld PGPRDCS2
C*
C* Chain to file with keylist if found add to existing values
C* else Z-ADD (Zero out and add)
C*
C TheKey02 Chain AVAILABLEW
C*
C* This snippet of code is getting total quantity on hand/pick
C*
C If %Found(AVAILABLEW)
C Eval ONHAND = ONHAND + LPLOQT
C Eval ONPICK = ONPICK + LPPIQT
C + MOMQTY
C Update AVAILR
C Else
C Movel(p) PGPRDCS2 PRODUCT
C Movel(p) PGPGRP PGROUP
C Movel(p) PGPCA1 CAT1
C Movel(p) PGPCA2 CAT2
C Movel(p) PGDESC DESC
C Z-add LPLOQT ONHAND
C Z-add LPPIQT ONPICK
C Write AVAILR
C Endif
C*===============================================
C*===============================================
C* $LoadSFL - Load the Main Menu.
C* load all errors so can total
C*===============================================
CSR $LoadSFL Begsr
C*
C If SavRrn > *Zeros
C Z-add SavRrn RRN1
C Z-add SavRrn SCRRN
C Endif
C*
C* Subfile page is set to 12. show 12 records to user at a time
C* This load function sequences the data by customer # or Name
C* Depending on what the value of ReadBy is.
C*
C Do 12
C Select
C When ReadBy = 'C'
C Read C40NAM1
89
C When ReadBy = 'N'
C Read C40NAM2
89
C Endsl
C*
C If Not*In89
C Movel(p) C4NUM S1CUSTOMER
C Movel(p) C4NAME S1CNAME
C Add 1. RRN1
C Add 1. SCRRN
C Write SUB01
C Endif
C*
C Enddo
C*
C Z-add SCRRN SavRrn
C*
C* If no records in subfile then do not disply the subfile.
C*
C If SavRrn = *Zeros And *In89
C Eval *In50 = *Off
C Endif
C
C*
C Endsr
C*===============================================
Keyword:
A R PHYR PFILE(PHYSICAL)
A K PHPRDC
A K PHRDDT
A S PHSTAT COMP(NE 'D')
A PHORDS RANGE(20 59)
A PHORDT COMP(NE 'SA')
A PHRDDT COMP(GE 20030901)
*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
* MSGSFL: Message Subfile.
*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
A R MSGSFL SFL
A SFLMSGRCD(24)
A MSGKEY SFLMSGKEY
A PGMQ SFLPGMQ(10)
*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
* MSGCTL: Subfile Control for MSGSFL
*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
A R MSGCTL SFLCTL(MSGSFL)
A OVERLAY
A SFLDSP
A SFLDSPCTL
A SFLINZ
A N03 SFLEND
A SFLSIZ(0002)
A SFLPAG(0001)
A PGMQ SFLPGMQ(10)
A*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-
=-=-=-=-=
A* SUB01: Subfile #01
A* Selection of All Survey Question Type.
A*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-
=-=-=-=-=
A R SUB01 SFL
A*
A SFLNXTCHG
A S01OPTN 1A B 9 3
A 40 DSPATR(RI)
A 40 DSPATR(PC)
A S01SPLF 10A O 9 6
A S01UDTA 10A O 9 28
A S01HTML 1A O 9 40
A S01PDF 1A O 9 45
A S01JNAM 10A O 9 17
A*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-
=-=-=-=-=
A* SFL01CTL: Subfile Control for SUB01
A*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-
=-=-=-=-=
A R SUB01CTL SFLCTL(SUB01)
A*
A SFLSIZ(0014)
A SFLPAG(0013)
A CF06(06 'Add')
A CF12(12 'Cancel')
A RTNCSRLOC(&#REC &#FLD)
A OVERLAY
A SFLCSRRRN(&WHERE01)
A 50 SFLDSP
A 51 SFLDSPCTL
A 52 SFLCLR
A 89 SFLEND(*MORE)
A SCRRN01 4S 0H SFLRCDNBR(CURSOR)
A #REC 10A H
A #FLD 10A H
A WHERE01 5S 0H
A 2 2TIME
A COLOR(BLU)
A EDTWRD('0 : : ')
A 1 2DATE
A COLOR(BLU)
A EDTWRD('0 / / ')
A 1 71USER
A COLOR(BLU)
A 2 71SYSNAME
A COLOR(BLU)
A S01CDAY 9A O 1 11COLOR(BLU)
A 5 2'Type options, press Enter.'
A COLOR(BLU)
A 6 4'2=Edit'
A COLOR(BLU)
A 8 6'SPLF Name '
A DSPATR(UL)
A COLOR(WHT)
A 8 2'Opt'
A DSPATR(UL)
A COLOR(WHT)
A 3 69'DRPT001R/01'
A 2 26'Daily Reports SPLF
Maintenance'
A S01CNAM 30A O 1 26
A 8 17'Job Name '
A DSPATR(UL)
A COLOR(WHT)
A 8 39'HTML'
A DSPATR(UL)
A COLOR(WHT)
A 8 44'PDF'
A DSPATR(UL)
A COLOR(WHT)
A 6 12'4=Delete'
A COLOR(BLU)
A 6 22'5=Display'
A COLOR(BLU)
A 8 28'User Data '
A DSPATR(UL)
A COLOR(WHT)
C/EXEC SQL
C+ DELETE FROM SRBFFI
C+ WHERE FFPRDC = :OLDPROD1 OR
C+ FFPRDC = :OLDPROD2 OR
C+ FFPRDC = :OLDPROD3
C/END-EXEC
C/EXEC SQL
C+ UPDATE XAOAUD
C+ SET XADFLG = 'Y'
C+ WHERE XADFLG = ' '
C/END-EXEC
D PRMDTA DS
D @PRDG1 1 5
D @PRDG2 6 10
D @LOW_MI_DSM 11 13
D @HIGH_MI_DSM 14 16
D @PRIME1 17 22
D @PRIME2 23 28
D @PRIME3 29 34
D @PRIME4 35 40
D @THANDLER 41 41
D @TMREP1 42 44
D @TMREP2 45 47
D SRLDA E DS EXTNAME(SRDLDA)
D XXFDAT 6 0 OVERLAY(LDUSR1:16)
D XXTDAT 6 0 OVERLAY(LDUSR1:22)
D SDS
D PGMNAME 1 10
DINVDETL E DS EXTNAME(SROISDPL)
D ISO S D
D @FDATE S 8 0
D @TDATE S 8 0
C EXSR SQLOPEN
C EXSR GETDETAIL
C EXSR SQLCLOSE
C/EJECT
C GETDETAIL BEGSR
C EXSR GET
C SQLCOD DOWEQ 0
C IF IDAMOU <> 0
C CLEAR TYPE
C SELECT
C WHEN IDCCA1 = @PRIME1 OR IDCCA1 = @PRIME2
OR
C IDCCA1 = @PRIME3 OR IDCCA1 = @PRIME4
C EVAL TYPE = '2'
C IF IDTYPP = 2
C EVAL IDQTY = IDQTY * -1
C EVAL IDAMOU = IDAMOU * -1
C END
C WRITE R072A
C ENDIF
C EXSR GET
C ENDDO
C ENDSR
C/EJECT
C *INZSR BEGSR
C KEY KLIST
C KFLD PRMTYP
C KFLD PSARCH
C ENDSR
C/EJECT
C SQLOPEN BEGSR
C/EXEC SQL
C+ DECLARE A CURSOR FOR
C+ SELECT *
C+ FROM SR3ISD
C+ WHERE IDIDAT BETWEEN :@FDATE AND :@TDATE AND
C+ IDPGRP BETWEEN :@PRDG1 AND :@PRDG2 AND
C+ IDSALE <= :@HIGH_MI_DSM AND
C+ IDFOCC <> 'Y'
C/END-EXEC
C/EXEC SQL
C+ OPEN A
C/END-EXEC
C ENDSR
C/EJECT
C GET BEGSR
C/EXEC SQL
C+ FETCH A INTO :INVDETL
C/END-EXEC
C ENDSR
C/EJECT
C SQLCLOSE BEGSR
C/EXEC SQL
C+ CLOSE A
C/END-EXEC
C ENDSR
C/EJECT