Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8604

Re: Logic to add 1 from 01 until 99, then go to A1->Z9

$
0
0

The logic is the same, but it needs to check the second char:

 

DATA: BEGIN OF ITAB OCCURS 0,

         KEY(2) TYPE C,

        END   OF ITAB.

 

PARAMETERS: P_TIMES TYPE I.

 

DO P_TIMES TIMES.

   SORT ITAB BY KEY DESCENDING.

   READ TABLE ITAB INDEX 1.

   IF SY-SUBRC <> 0.

     ITAB-KEY = '01'.

   ELSE.

     IF ITAB-KEY CO '0123456789'.

       PERFORM NUM_CHECK USING ITAB-KEY 99.

     ELSE.

       IF ITAB-KEY+1(1) CO '0123456789'.

         PERFORM NUM_CHECK USING ITAB-KEY+1(1) 9.

       ELSE.

         IF ITAB-KEY+1(1) <> 'Z'.

           PERFORM CHECK_ABC USING ITAB-KEY+1(1) SPACE.

         ELSE.

           PERFORM CHECK_ABC USING ITAB-KEY(1) 'X'.

         ENDIF.

       ENDIF.

     ENDIF.

   ENDIF.

   APPEND ITAB.

ENDDO.

 

SORT ITAB BY KEY.

 

LOOP AT ITAB.

   WRITE: / ITAB-KEY.

ENDLOOP.

FORM NUM_CHECK  USING    P_IN P_MAX TYPE I.

   DATA: NUM(2) TYPE N.

   DATA: NUM_CHECK TYPE I.

 

   MOVE P_IN TO NUM_CHECK.

 

   IF NUM_CHECK < P_MAX.

     NUM_CHECK = NUM_CHECK + 1.

     MOVE NUM_CHECK TO NUM.

     CASE P_MAX.

       WHEN 9MOVE NUM+1 TO ITAB-KEY+1.

       WHEN 99. MOVE NUM   TO ITAB-KEY.

     ENDCASE.

   ELSE.

     CASE P_MAX.

       WHEN 9ITAB-KEY+1(1) = 'A'.

       WHEN 99. ITAB-KEY      = 'A1'.

     ENDCASE.

   ENDIF.

ENDFORM.         

FORM CHECK_ABC  USING    P_IN

                          P_START.

 

   DATA: OFFSET TYPE I.

   FIND P_IN IN SY-ABCDE MATCH OFFSET OFFSET.

   OFFSET    = OFFSET + 1.

   P_IN      = SY-ABCDE+OFFSET(1).

 

   CHECK P_START = 'X'.

   ITAB-KEY+1(1) = 1.

ENDFORM.                 


Viewing all articles
Browse latest Browse all 8604

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>