Fill occurrence label in advance
Posted: September 21st, 2021, 2:57 am
Is their any way to fill the occurrence label of a roster up to the max occurrence number without going to the last occurrence row.
If I enter in a roster I want to fill all the row occurrence labels at once without moving to the last row.
Presently I am using the SETOCCLABEL function to display the occurrence label of a row based on CUROCC() value.
The problem with the above method is that the occurrence label displays only for the rows where the cursor has moved.
Sample of my code:
------------------------------------------------------------------------------------------------------
PROC ACH_ITEM
PREPROC
DO I=1 WHILE I<=TOTOCC(ACH000)
TONUMBER(ACH_ITEM(I))=CUROCC();
IF DEPT='01' THEN
IF CUROCC() = 1 THEN $ = "0101101" ENDIF;
IF CUROCC() = 2 THEN $ = "0101102" ENDIF;
IF CUROCC() = 3 THEN $ = "0101103" ENDIF;
IF CUROCC() = 4 THEN $ = "0101104" ENDIF;
IF CUROCC() = 5 THEN $ = "0101105" ENDIF;
IF CUROCC() = 6 THEN $ = "0101106" ENDIF;
IF CUROCC() = 7 THEN $ = "0101107" ENDIF;
IF CUROCC() = 8 THEN $ = "0101108" ENDIF;
IF CUROCC() = 9 THEN $ = "0101109" ENDIF;
IF CUROCC() = 10 THEN $ = "0102101" ENDIF;
IF CUROCC() = 11 THEN $ = "0102102" ENDIF;
IF CUROCC() = 12 THEN $ = "0102103" ENDIF;
IF CUROCC() = 13 THEN $ = "0103101" ENDIF;
IF CUROCC() = 14 THEN $ = "0103102" ENDIF;
IF CUROCC() = 15 THEN $ = "0103103" ENDIF;
IF CUROCC() = 16 THEN $ = "0103104" ENDIF;
IF CUROCC() = 17 THEN $ = "0103105" ENDIF;
IF CUROCC() = 18 THEN $ = "0103201" ENDIF;
IF CUROCC() = 19 THEN $ = "0103202" ENDIF;
IF CUROCC() = 20 THEN $ = "0103203" ENDIF;
IF CUROCC() = 21 THEN $ = "0103204" ENDIF;
IF CUROCC() = 22 THEN $ = "0103205" ENDIF;
IF CUROCC() = 23 THEN $ = "0103301" ENDIF;
IF CUROCC() = 24 THEN $ = "0103302" ENDIF;
IF CUROCC() = 25 THEN $ = "0103303" ENDIF;
IF CUROCC() = 26 THEN $ = "0103304" ENDIF;
IF CUROCC() = 27 THEN $ = "0103305" ENDIF;
IF CUROCC() = 28 THEN $ = "0103401" ENDIF;
IF CUROCC() = 29 THEN $ = "0103402" ENDIF;
IF CUROCC() = 30 THEN $ = "0103403" ENDIF;
IF CUROCC() = 31 THEN $ = "0103404" ENDIF;
IF CUROCC() = 32 THEN $ = "0103405" ENDIF;
IF CUROCC() = 33 THEN $ = "0104101" ENDIF;
IF CUROCC() = 34 THEN $ = "0104102" ENDIF;
IF CUROCC() = 35 THEN $ = "0104103" ENDIF;
IF CUROCC() = 36 THEN $ = "0104104" ENDIF;
IF CUROCC() = 37 THEN $ = "0104105" ENDIF;
IF CUROCC() = 38 THEN $ = "0104201" ENDIF;
IF CUROCC() = 39 THEN $ = "0104202" ENDIF;
IF CUROCC() = 40 THEN $ = "0104203" ENDIF;
IF CUROCC() = 41 THEN $ = "0104204" ENDIF;
IF CUROCC() = 42 THEN $ = "0104205" ENDIF;
IF CUROCC() = 43 THEN $ = "0104301" ENDIF;
IF CUROCC() = 44 THEN $ = "0104302" ENDIF;
IF CUROCC() = 45 THEN $ = "0104303" ENDIF;
IF CUROCC() = 46 THEN $ = "0104304" ENDIF;
IF CUROCC() = 47 THEN $ = "0104305" ENDIF;
IF CUROCC() = 48 THEN $ = "0104306" ENDIF;
IF CUROCC() = 49 THEN $ = "0104307" ENDIF;
IF CUROCC() = 50 THEN $ = "0105101" ENDIF;
IF CUROCC() = 51 THEN $ = "0105102" ENDIF;
IF CUROCC() = 52 THEN $ = "0105103" ENDIF;
IF CUROCC() = 53 THEN $ = "0106101" ENDIF;
IF CUROCC() = 54 THEN $ = "0106102" ENDIF;
IF CUROCC() = 55 THEN $ = "0106103" ENDIF;
IF CUROCC() = 56 THEN $ = "0107101" ENDIF;
IF CUROCC() = 57 THEN $ = "0107102" ENDIF;
IF CUROCC() = 58 THEN $ = "0107103" ENDIF;
IF CUROCC() = 59 THEN $ = "0107104" ENDIF;
IF CUROCC() = 60 THEN $ = "0107105" ENDIF;
IF CUROCC() = 61 THEN $ = "0107106" ENDIF;
IF CUROCC() = 62 THEN $ = "0107107" ENDIF;
IF CUROCC() = 63 THEN $ = "0108101" ENDIF;
IF CUROCC() = 64 THEN $ = "0108102" ENDIF;
IF CUROCC() = 65 THEN $ = "0108103" ENDIF;
IF CUROCC() = 66 THEN $ = "0108104" ENDIF;
IF CUROCC() = 67 THEN $ = "0109101" ENDIF;
IF CUROCC() = 68 THEN $ = "0109102" ENDIF;
IF CUROCC() = 69 THEN $ = "0109103" ENDIF;
ENDIF;
IF DEPT='02' THEN
IF CUROCC() = 1 THEN $ = "0201101" ENDIF;
IF CUROCC() = 2 THEN $ = "0201102" ENDIF;
IF CUROCC() = 3 THEN $ = "0201103" ENDIF;
IF CUROCC() = 4 THEN $ = "0201104" ENDIF;
IF CUROCC() = 5 THEN $ = "0201105" ENDIF;
IF CUROCC() = 6 THEN $ = "0201106" ENDIF;
IF CUROCC() = 7 THEN $ = "0202101" ENDIF;
IF CUROCC() = 8 THEN $ = "0202102" ENDIF;
IF CUROCC() = 9 THEN $ = "0202103" ENDIF;
ENDIF;
IF DEPT='03' THEN
IF CUROCC() = 1 THEN $ = "0301101" ENDIF;
IF CUROCC() = 2 THEN $ = "0301102" ENDIF;
IF CUROCC() = 3 THEN $ = "0301103" ENDIF;
IF CUROCC() = 4 THEN $ = "0301104" ENDIF;
IF CUROCC() = 5 THEN $ = "0301105" ENDIF;
ENDIF;
SETOCCLABEL(ACH000(I), STRIP(GETLABEL(ACH_ITEM_VS1,ACH_ITEM(I))));
ENDDO;
----------------------------------------------------------------------------------------------------------
I want the functionality that if the user enters into the roster, all the row occurrence label should filled in at a time up to the last occurrence without going to the last row.
For example if I select DEPT code = 01 then row occurrence label must be filled up to max occurrence number 69 for DEPT code = 01
or if I select DEPT code = 02 then row occurrence label must be filled up to max occurrence number 9 for DEPT code = 02
Please guide me..
If I enter in a roster I want to fill all the row occurrence labels at once without moving to the last row.
Presently I am using the SETOCCLABEL function to display the occurrence label of a row based on CUROCC() value.
The problem with the above method is that the occurrence label displays only for the rows where the cursor has moved.
Sample of my code:
------------------------------------------------------------------------------------------------------
PROC ACH_ITEM
PREPROC
DO I=1 WHILE I<=TOTOCC(ACH000)
TONUMBER(ACH_ITEM(I))=CUROCC();
IF DEPT='01' THEN
IF CUROCC() = 1 THEN $ = "0101101" ENDIF;
IF CUROCC() = 2 THEN $ = "0101102" ENDIF;
IF CUROCC() = 3 THEN $ = "0101103" ENDIF;
IF CUROCC() = 4 THEN $ = "0101104" ENDIF;
IF CUROCC() = 5 THEN $ = "0101105" ENDIF;
IF CUROCC() = 6 THEN $ = "0101106" ENDIF;
IF CUROCC() = 7 THEN $ = "0101107" ENDIF;
IF CUROCC() = 8 THEN $ = "0101108" ENDIF;
IF CUROCC() = 9 THEN $ = "0101109" ENDIF;
IF CUROCC() = 10 THEN $ = "0102101" ENDIF;
IF CUROCC() = 11 THEN $ = "0102102" ENDIF;
IF CUROCC() = 12 THEN $ = "0102103" ENDIF;
IF CUROCC() = 13 THEN $ = "0103101" ENDIF;
IF CUROCC() = 14 THEN $ = "0103102" ENDIF;
IF CUROCC() = 15 THEN $ = "0103103" ENDIF;
IF CUROCC() = 16 THEN $ = "0103104" ENDIF;
IF CUROCC() = 17 THEN $ = "0103105" ENDIF;
IF CUROCC() = 18 THEN $ = "0103201" ENDIF;
IF CUROCC() = 19 THEN $ = "0103202" ENDIF;
IF CUROCC() = 20 THEN $ = "0103203" ENDIF;
IF CUROCC() = 21 THEN $ = "0103204" ENDIF;
IF CUROCC() = 22 THEN $ = "0103205" ENDIF;
IF CUROCC() = 23 THEN $ = "0103301" ENDIF;
IF CUROCC() = 24 THEN $ = "0103302" ENDIF;
IF CUROCC() = 25 THEN $ = "0103303" ENDIF;
IF CUROCC() = 26 THEN $ = "0103304" ENDIF;
IF CUROCC() = 27 THEN $ = "0103305" ENDIF;
IF CUROCC() = 28 THEN $ = "0103401" ENDIF;
IF CUROCC() = 29 THEN $ = "0103402" ENDIF;
IF CUROCC() = 30 THEN $ = "0103403" ENDIF;
IF CUROCC() = 31 THEN $ = "0103404" ENDIF;
IF CUROCC() = 32 THEN $ = "0103405" ENDIF;
IF CUROCC() = 33 THEN $ = "0104101" ENDIF;
IF CUROCC() = 34 THEN $ = "0104102" ENDIF;
IF CUROCC() = 35 THEN $ = "0104103" ENDIF;
IF CUROCC() = 36 THEN $ = "0104104" ENDIF;
IF CUROCC() = 37 THEN $ = "0104105" ENDIF;
IF CUROCC() = 38 THEN $ = "0104201" ENDIF;
IF CUROCC() = 39 THEN $ = "0104202" ENDIF;
IF CUROCC() = 40 THEN $ = "0104203" ENDIF;
IF CUROCC() = 41 THEN $ = "0104204" ENDIF;
IF CUROCC() = 42 THEN $ = "0104205" ENDIF;
IF CUROCC() = 43 THEN $ = "0104301" ENDIF;
IF CUROCC() = 44 THEN $ = "0104302" ENDIF;
IF CUROCC() = 45 THEN $ = "0104303" ENDIF;
IF CUROCC() = 46 THEN $ = "0104304" ENDIF;
IF CUROCC() = 47 THEN $ = "0104305" ENDIF;
IF CUROCC() = 48 THEN $ = "0104306" ENDIF;
IF CUROCC() = 49 THEN $ = "0104307" ENDIF;
IF CUROCC() = 50 THEN $ = "0105101" ENDIF;
IF CUROCC() = 51 THEN $ = "0105102" ENDIF;
IF CUROCC() = 52 THEN $ = "0105103" ENDIF;
IF CUROCC() = 53 THEN $ = "0106101" ENDIF;
IF CUROCC() = 54 THEN $ = "0106102" ENDIF;
IF CUROCC() = 55 THEN $ = "0106103" ENDIF;
IF CUROCC() = 56 THEN $ = "0107101" ENDIF;
IF CUROCC() = 57 THEN $ = "0107102" ENDIF;
IF CUROCC() = 58 THEN $ = "0107103" ENDIF;
IF CUROCC() = 59 THEN $ = "0107104" ENDIF;
IF CUROCC() = 60 THEN $ = "0107105" ENDIF;
IF CUROCC() = 61 THEN $ = "0107106" ENDIF;
IF CUROCC() = 62 THEN $ = "0107107" ENDIF;
IF CUROCC() = 63 THEN $ = "0108101" ENDIF;
IF CUROCC() = 64 THEN $ = "0108102" ENDIF;
IF CUROCC() = 65 THEN $ = "0108103" ENDIF;
IF CUROCC() = 66 THEN $ = "0108104" ENDIF;
IF CUROCC() = 67 THEN $ = "0109101" ENDIF;
IF CUROCC() = 68 THEN $ = "0109102" ENDIF;
IF CUROCC() = 69 THEN $ = "0109103" ENDIF;
ENDIF;
IF DEPT='02' THEN
IF CUROCC() = 1 THEN $ = "0201101" ENDIF;
IF CUROCC() = 2 THEN $ = "0201102" ENDIF;
IF CUROCC() = 3 THEN $ = "0201103" ENDIF;
IF CUROCC() = 4 THEN $ = "0201104" ENDIF;
IF CUROCC() = 5 THEN $ = "0201105" ENDIF;
IF CUROCC() = 6 THEN $ = "0201106" ENDIF;
IF CUROCC() = 7 THEN $ = "0202101" ENDIF;
IF CUROCC() = 8 THEN $ = "0202102" ENDIF;
IF CUROCC() = 9 THEN $ = "0202103" ENDIF;
ENDIF;
IF DEPT='03' THEN
IF CUROCC() = 1 THEN $ = "0301101" ENDIF;
IF CUROCC() = 2 THEN $ = "0301102" ENDIF;
IF CUROCC() = 3 THEN $ = "0301103" ENDIF;
IF CUROCC() = 4 THEN $ = "0301104" ENDIF;
IF CUROCC() = 5 THEN $ = "0301105" ENDIF;
ENDIF;
SETOCCLABEL(ACH000(I), STRIP(GETLABEL(ACH_ITEM_VS1,ACH_ITEM(I))));
ENDDO;
----------------------------------------------------------------------------------------------------------
I want the functionality that if the user enters into the roster, all the row occurrence label should filled in at a time up to the last occurrence without going to the last row.
For example if I select DEPT code = 01 then row occurrence label must be filled up to max occurrence number 69 for DEPT code = 01
or if I select DEPT code = 02 then row occurrence label must be filled up to max occurrence number 9 for DEPT code = 02
Please guide me..