- REPORT ZNADAR1 NO STANDARD PAGE HEADING LINE-SIZE 180.
- TABLES: DD03L.
- PARAMETERS: TABLA_1(12),
- TABLA_2(12).
- DATA: BEGIN OF ITAB_1 OCCURS 0,
- FIELDNAME LIKE DD03L-FIELDNAME,
- KEYFLAG LIKE DD03L-KEYFLAG,
- END OF ITAB_1,
- BEGIN OF ITAB_2 OCCURS 0,
- FIELDNAME LIKE DD03L-FIELDNAME,
- KEYFLAG LIKE DD03L-KEYFLAG,
- END OF ITAB_2,
- BEGIN OF ITAB_3 OCCURS 0,
- POSI(2),
- FIELDNAME LIKE DD03L-FIELDNAME,
- LADO(1),
- END OF ITAB_3,
- AX TYPE I,
- BX TYPE I,
- CX(2).
- AT LINE-SELECTION.
- READ LINE 2.
- IF SY-LISEL+16(12) NE TABLA_1 OR SY-LISEL+39(12) NE TABLA_2.
- TABLA_1 = SY-LISEL+16(19).
- TABLA_2 = SY-LISEL+39(12).
- SY-LSIND = SY-LSIND - 1.
- PERFORM PINTAR.
- ELSE.
- PERFORM BUSCAR_Y_MONTAR.
- ENDIF.
- END-OF-SELECTION.
- PERFORM PINTAR.
- FORM PINTAR.
- REFRESH: ITAB_1, ITAB_2. CLEAR: ITAB_1, ITAB_2.
- SELECT * APPENDING CORRESPONDING FIELDS OF TABLE ITAB_1
- FROM DD03L WHERE TABNAME = TABLA_1.
- SELECT * APPENDING CORRESPONDING FIELDS OF TABLE ITAB_2
- FROM DD03L WHERE TABNAME = TABLA_2.
- DESCRIBE TABLE ITAB_1 LINES AX.
- DESCRIBE TABLE ITAB_2 LINES BX.
- IF BX > AX. AX = BX. ENDIF.
- BX = 1.
- SKIP 1.
- INCLUDE <ICON>.
- WRITE: AT 10 '@15@' AS ICON HOTSPOT NO-GAP, '@42@' AS ICON HOTSPOT,
- AT 17 TABLA_1 INPUT,
- AT 30 '--->',
- AT 40 TABLA_2 INPUT,
- AT 60 'Zona de Resultados'.
- SKIP 1.
- DO AX TIMES.
- WRITE / ' '.
- READ TABLE ITAB_1 INDEX BX.
- IF SY-SUBRC EQ 0.
- FORMAT COLOR OFF.
- WRITE AT 17 CX INPUT.
- IF ITAB_1-KEYFLAG = 'X'. FORMAT COLOR 4. ENDIF.
- WRITE AT 20 ITAB_1-FIELDNAME+0(12).
- ENDIF.
- READ TABLE ITAB_2 INDEX BX.
- IF SY-SUBRC EQ 0.
- FORMAT COLOR OFF.
- WRITE AT 37 CX INPUT.
- IF ITAB_2-KEYFLAG = 'X'. FORMAT COLOR 4. ENDIF.
- WRITE AT 40 ITAB_2-FIELDNAME+0(12).
- ENDIF.
- FORMAT COLOR OFF.
- WRITE AT 59 SY-VLINE.
- ADD 1 TO BX.
- ENDDO.
- ENDFORM.
- FORM BUSCAR_Y_MONTAR.
- DATA: TCADE(72) OCCURS 0 WITH HEADER LINE.
- REFRESH ITAB_3. CLEAR ITAB_3. BX = 3.
- DO.
- READ LINE BX.
- IF SY-SUBRC NE 0. EXIT. ENDIF.
- ITAB_3-POSI = SY-LISEL+17(2).
- ITAB_3-FIELDNAME = SY-LISEL+19(12).
- ITAB_3-LADO = '1'.
- IF NOT ITAB_3-POSI IS INITIAL. APPEND ITAB_3. ENDIF.
- ITAB_3-POSI = SY-LISEL+37(2).
- ITAB_3-FIELDNAME = SY-LISEL+39(12).
- ITAB_3-LADO = '5'.
- IF NOT ITAB_3-POSI IS INITIAL. APPEND ITAB_3. ENDIF.
- ADD 1 TO BX.
- ENDDO.
- SORT ITAB_3 BY POSI LADO.
- DATA: CADE(172),
- DX TYPE I.
- BX = DX = 3.
- * Montar iguales
- LOOP AT ITAB_3.
- AX = SY-TABIX MOD 2.
- IF AX NE 0. READ LINE BX. ENDIF.
- IF AX NE 0.
- CONCATENATE CADE '¬=¬' TABLA_1 '-' ITAB_3-FIELDNAME '.' INTO CADE.
- ELSE.
- CONCATENATE TABLA_2 '-' ITAB_3-FIELDNAME CADE INTO CADE.
- ENDIF.
- IF AX EQ 0.
- TCADE = CADE. APPEND TCADE.
- CLEAR CADE.
- ENDIF.
- ADD 1 TO BX.
- ENDLOOP.
- CLEAR TCADE. APPEND TCADE.
- LOOP AT ITAB_3.
- AX = SY-TABIX MOD 2.
- IF AX NE 0. READ LINE BX. ENDIF.
- IF AX NE 0.
- CONCATENATE 'MOVE¬' TABLA_1 '-' ITAB_3-FIELDNAME CADE
- INTO CADE.
- ELSE.
- CONCATENATE CADE '¬TO¬'
- TABLA_2 '-' ITAB_3-FIELDNAME '.' INTO CADE.
- ENDIF.
- IF AX EQ 0. TCADE = CADE. APPEND TCADE. CLEAR CADE. ENDIF.
- ADD 1 TO BX.
- ENDLOOP.
- CLEAR TCADE. APPEND TCADE.
- CONCATENATE 'SELECT¬*¬FROM¬' TABLA_1 '¬WHERE' INTO TCADE.
- APPEND TCADE.
- LOOP AT ITAB_3.
- AX = SY-TABIX MOD 2.
- IF AX NE 0. READ LINE BX. ENDIF.
- IF AX NE 0.
- IF SY-TABIX NE '1'. CADE = 'AND¬'. ENDIF.
- CONCATENATE CADE ITAB_3-FIELDNAME '¬=¬' INTO CADE.
- ELSE.
- CONCATENATE CADE TABLA_2 '-' ITAB_3-FIELDNAME INTO CADE.
- ENDIF.
- IF AX EQ 0. TCADE = CADE. APPEND TCADE. CLEAR CADE. ENDIF.
- ADD 1 TO BX.
- ENDLOOP.
- BX = 4.
- LOOP AT TCADE.
- READ LINE BX.
- TRANSLATE TCADE USING '¬ '.
- SY-LISEL+60 = TCADE.
- MODIFY LINE BX.
- ADD 1 TO BX.
- ENDLOOP.
- ENDFORM.
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki