OOPS ALV using LVC_FIELDCATALOG_MERGE
REPORT ZVB_DD.
TABLES:VBAK,VBAP.
SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.
TYPES:BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
END OF TY_VBAK,
BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
END OF TY_VBAP,
BEGIN OF TY_FINAL,
VBELN TYPE VBAK-VBELN,
POSNR TYPE VBAP-POSNR,
END OF TY_FINAL.
DATA:LT_VBAK TYPE TABLE OF TY_VBAK,
LS_VBAK TYPE TY_VBAK,
LT_VBAP TYPE TABLE OF TY_VBAP,
LS_VBAP TYPE TY_VBAP,
LT_FINAL TYPE TABLE OF TY_FINAL,
LS_FINAL TYPE TY_FINAL.
DATA:LT_FCAT TYPE LVC_T_FCAT.
DATA:LO_OBJECT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA:LO_GRID TYPE REF TO CL_GUI_ALV_GRID.
SELECT VBELN
FROM VBAK
INTO TABLE LT_VBAK
WHERE VBELN IN S_VBELN.
IF LT_VBAK IS NOT INITIAL.
SELECT VBELN POSNR
FROM VBAP
INTO TABLE LT_VBAP
FOR ALL ENTRIES IN LT_VBAK
WHERE VBELN = LT_VBAK-VBELN.
ENDIF.
LOOP AT LT_VBAK INTO LS_VBAK.
LOOP AT LT_VBAP INTO LS_VBAP WHERE VBELN = LS_VBAK-VBELN.
LS_FINAL-VBELN = LS_VBAP-VBELN.
LS_FINAL-POSNR = LS_VBAP-POSNR.
APPEND LS_FINAL TO LT_FINAL.
ENDLOOP.
ENDLOOP.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'ZVB_SO'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = LT_FCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CREATE OBJECT LO_OBJECT
EXPORTING
CONTAINER_NAME = 'CONT'.
CREATE OBJECT LO_GRID
EXPORTING
I_PARENT = LO_OBJECT.
CALL METHOD lo_grid->set_table_for_first_display
CHANGING
it_outtab = LT_FINAL
it_fieldcatalog = LT_FCAT
* it_sort =
* it_filter =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CALL SCREEN '100'.
1.Double click on screen.
2.Enter short desc and click on 'layout'.
3.Draw custom container and give name as 'CONT'.
4.Activate.
5.Click on back and execute the program.
Result:
Comments
Post a Comment