- REPORT ZTREE.
- ** Ejemplo
- SELECTION-SCREEN:
- SKIP 1,
- BEGIN OF LINE,
- COMMENT 1(2) TEXT-801,
- PUSHBUTTON 4(2) TEXT-802 USER-COMMAND B01,
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 5(1) TEXT-803,
- COMMENT 6(3) TEXT-801,
- COMMENT 10(28) TEXT-001.
- PARAMETERS: P_SEPARA(2) TYPE N DEFAULT '03'.
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 5(1) TEXT-803,
- COMMENT 6(3) TEXT-801,
- PUSHBUTTON 10(2) TEXT-802 USER-COMMAND B02,
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN001(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN002(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN003(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN004(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN005(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN006(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN007(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN008(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN009(30).
- SELECTION-SCREEN:
- END OF LINE,
- BEGIN OF LINE,
- COMMENT 11(1) TEXT-803,
- COMMENT 12(3) TEXT-801,
- COMMENT 16(22) TEXT-003.
- PARAMETERS LIN010(30).
- SELECTION-SCREEN:
- END OF LINE.
- * Ini ---------------------------------------------- Rutina Standard
- DATA: BEGIN OF STAB OCCURS 0.
- INCLUDE STRUCTURE SCREEN.
- DATA: ON(1),
- END OF STAB.
- DATA: CX(2) TYPE N.
- INITIALIZATION.
- * Ini ---------------------------------------------- Only for example
- LIN001 = '+,TEXT-001,1'.
- LIN002 = '++,TEXT-002,1'.
- LIN003 = '++,TEXT-002,1'.
- LIN004 = '++,TEXT-002,1'.
- LIN005 = '++,TEXT-002,1'.
- LIN006 = '++,TEXT-002,1'.
- LIN007 = '++,TEXT-002,1'.
- LIN008 = '++,TEXT-002,1'.
- LIN009 = '++,TEXT-002,1'.
- LIN010 = '++,TEXT-002,1'.
- * Fin ---------------------------------------------- Only for example
- LOOP AT SCREEN.
- MOVE-CORRESPONDING SCREEN TO STAB.
- STAB-ON = 'X'.
- APPEND STAB.
- ENDLOOP.
- CX = 1.
- AT SELECTION-SCREEN.
- CLEAR CX.
- IF SY-UCOMM+0(1) = 'B' AND
- SY-UCOMM+1(1) CO '1234567890' AND
- SY-UCOMM+2(1) CO '1234567890'.
- CX = SY-UCOMM+1(2).
- ENDIF.
- AT SELECTION-SCREEN OUTPUT.
- DATA: DI TYPE I,
- SI(1).
- CHECK CX > 0.
- CLEAR DI.
- LOOP AT SCREEN.
- IF SCREEN-NAME+0(2) = '%P'.
- IF CX > 0. CX = CX - 1. ENDIF.
- ENDIF.
- CHECK CX = 0.
- IF DI = 0.
- CHECK SCREEN-NAME+0(2) NE '%P'.
- ENDIF.
- ADD 1 TO DI.
- READ TABLE STAB WITH KEY NAME = SCREEN-NAME.
- IF DI > 1.
- STAB-ON = SI.
- ENDIF.
- IF DI = 1. SI = STAB-ON. ENDIF.
- IF STAB-ON = 'X'.
- SCREEN-INVISIBLE = 1.
- SCREEN-INPUT = SCREEN-REQUIRED = 0.
- STAB-ON = ' '. MODIFY STAB INDEX SY-TABIX.
- ELSE.
- MOVE-CORRESPONDING STAB TO SCREEN.
- STAB-ON = 'X'. MODIFY STAB INDEX SY-TABIX.
- ENDIF.
- MODIFY SCREEN.
- IF STAB-ON = 'X' AND SCREEN-NAME+0(2) = '%P'. SI = 'X'. ENDIF.
- ENDLOOP.
- * End ---------------------------------------------- Rutina Standard
- * Ini ---------------------------------------------- Rutinas Propias
- END-OF-SELECTION.
- PERFORM WRITE_NEW_MENU.
- FORM WRITE_NEW_MENU.
- DATA: CAD(65533),
- BEGIN OF ITAB OCCURS 0,
- TXT(72),
- END OF ITAB.
- CLEAR ITAB. REFRESH ITAB.
- CONCATENATE LIN001 LIN002 LIN003 LIN004 LIN005 LIN006 LIN007
- LIN008 LIN009 LIN010 INTO CAD SEPARATED BY ','.
- SPLIT CAD AT ',' INTO TABLE ITAB.
- SKIP 1.
- DATA: AX TYPE I,
- COL001(2) TYPE N,
- COL002(2) TYPE N,
- COL003(2) TYPE N,
- BOTON(2) TYPE N,
- DX LIKE ITAB-TXT.
- CLEAR AX.
- COL001 = 4.
- BOTON = 1.
- LOOP AT ITAB.
- IF ITAB-TXT+0(1) = '+'.
- IF DX NE ITAB-TXT.
- DX = ITAB-TXT.
- AX = 1.
- ELSE.
- AX = 2.
- CONTINUE.
- ENDIF.
- ENDIF.
- CASE AX.
- WHEN 1. IF SY-TABIX = 1.
- WRITE: / 'selection-screen:'.
- WRITE: / ' skip 1,',
- / ' begin of line,',
- / ' comment 1(2) text-801, "--'.
- ELSE.
- COL002 = COL001 + 1.
- WRITE: / ' begin of line,'.
- CONCATENATE '######comment#' COL002
- '(1) text-803, "`' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- ADD 1 TO COL002.
- CONCATENATE '######comment#' COL002
- '(3) text-801, "--' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- ADD 1 TO BOTON.
- ADD 6 TO COL001.
- ENDIF.
- CONCATENATE '######pushbutton#' COL001
- '(2)#text-802#user-command#b' BOTON
- ',#"+' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- WRITE / ' end of line,'.
- WHEN 2. COL002 = COL001 + 1.
- WRITE: / ' begin of line,'.
- CONCATENATE '######comment#' COL002
- '(1) text-803, "`' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- ADD 1 TO COL002.
- CONCATENATE '######comment#' COL002
- '(3) text-801, "--' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- ADD 4 TO COL002.
- CONCATENATE '######comment#' COL002
- '(3) text-001. ' INTO CAD.
- TRANSLATE CAD USING '# '. WRITE / CAD.
- WHEN 3. IF ITAB-TXT = '1'.
- WRITE: / '* parameters: xx(2) type n.'.
- WRITE: / ' selection-screen:',
- / ' end of line,'.
- ENDIF.
- ENDCASE.
- ADD 1 TO AX.
- IF AX > 3. AX = 1. ENDIF.
- AT LAST.
- WRITE: / ' selection-screen:',
- / ' end of line.'.
- ENDAT.
- ENDLOOP.
- ENDFORM.
- * End ---------------------------------------------- Rutinas Propias
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki