Professional Documents
Culture Documents
Z Test 2alv
Z Test 2alv
*& Report Z_TEST_2ALV_OOLMOS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST_2ALV_OOLMOS.
include Z_TEST_2ALV_OOLMOS_top.
include Z_TEST_2ALV_OOLMOS_f01.
START-OF-SELECTION.
PERFORM display_alv.
*&---------------------------------------------------------------------*
*& Include Z_TEST_2ALV_OOLMOS_TOP
*&---------------------------------------------------------------------*
data : gt_sort1 TYPE LVC_T_SORT.
data : gt_sort2 TYPE LVC_T_SORT.
DATA: custom_container TYPE REF TO cl_gui_custom_container,
splitter TYPE REF TO cl_gui_splitter_container,
graphic_parent1 TYPE REF TO cl_gui_container,
graphic_parent2 TYPE REF TO cl_gui_container.
DATA ref_grid TYPE REF TO cl_gui_alv_grid.
DATA ref_grid1 TYPE REF TO cl_gui_alv_grid.
*--- Field catalog table
DATA gt_fieldcat1 TYPE lvc_t_fcat .
DATA gt_fieldcat2 TYPE lvc_t_fcat .
*--- Layout structure
DATA gs_layout1 TYPE lvc_s_layo .
DATA gs_layout2 TYPE lvc_s_layo .
data:itab1 TYPE STANDARD TABLE OF mara.
data:itab2 TYPE STANDARD TABLE OF vbrk.
*&---------------------------------------------------------------------*
*& Include Z_TEST_2ALV_OOLMOS_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form F1000_PREPARA_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
*FORM f1000_prepara_alv .
FORM display_alv.
CREATE OBJECT custom_container
EXPORTING
container_name = 'CONTAINER'. "use uppercase letters!
** create splitter container in which to place graphics
CREATE OBJECT splitter
EXPORTING
parent = custom_container
rows = 2
columns = 1
align = 15. " (splitter fills the hole custom container)
** get part of splitter container for 1st table
CALL METHOD splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = graphic_parent1.
** get part of splitter container for 2nd table
CALL METHOD splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = graphic_parent2.
CREATE OBJECT ref_grid
EXPORTING
i_parent = graphic_parent1.
*----Preparing field catalog.
PERFORM prepare_field_catalog1 CHANGING gt_fieldcat1 .
*----Preparing layout structure
PERFORM prepare_layout1 CHANGING gs_layout1 .
** Display first ALV
PERFORM set_display.
CREATE OBJECT ref_grid1
EXPORTING
i_parent = graphic_parent2.
*----Preparing field catalog.
PERFORM prepare_field_catalog2 CHANGING gt_fieldcat2 .
*----Preparing layout structure
PERFORM prepare_layout2 CHANGING gs_layout2 .
** Display second ALV
PERFORM set_display1.
ENDFORM. "display_alv
"Here are forms only for first alv because is the same for the second.
*WRITE: 'hola'.
FORM prepare_field_catalog1 CHANGING pt_fieldcat1 TYPE lvc_t_fcat .
DATA ls_fcat TYPE lvc_s_fcat .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = '/MKBS/Z_KONTR_STRUC'
CHANGING
ct_fieldcat = pt_fieldcat1[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ls_fcat-FIELDNAME = 'MATNR'.
ls_fcat-SELTEXT = 'MATERIAL'.
APPEND ls_fcat TO pt_fieldcat1.
ls_fcat-FIELDNAME = 'ERSDA'.
ls_fcat-SELTEXT = 'FECHA MATERIAL'.
APPEND ls_fcat TO pt_fieldcat1.
ls_fcat-FIELDNAME = 'LAEDA'.
ls_fcat-SELTEXT = 'FECHA CREACIÓN'.
APPEND ls_fcat TO pt_fieldcat1.
ls_fcat-FIELDNAME = 'MATKL'.
ls_fcat-SELTEXT = 'GRUPO DE ARTICULOS'.
APPEND ls_fcat TO pt_fieldcat1.
SELECT *
UP TO 100 ROWS
from mara
INTO TABLE itab1.
* LOOP AT pt_fieldcat1 INTO ls_fcat .
*
* CASE ls_fcat-fieldname .
*
* WHEN 'BRKON' .
*
* ls_fcat-outputlen = '10' .
*
* ls_fcat-coltext = 'Br. kontr.' .
*
* MODIFY pt_fieldcat1 FROM ls_fcat .
*
* ENDCASE.
*
* ENDLOOP.
ENDFORM . " PREPARE_FIELD_CATALOG
FORM prepare_layout1 CHANGING ps_layout1 TYPE lvc_s_layo.
ps_layout1-zebra = 'X' .
ps_layout1-grid_title = 'Fakturisano po kontrolniku' .
ps_layout1-smalltitle = 'X' .
ENDFORM. " prepare_layout
FORM set_display.
DATA : gs_variant0 type disvariant
* IT_OUTTAB TYPE STANDARD TABLE ,
.
gs_variant0-report = sy-repid.
gs_variant0-username = sy-uname.
gs_variant0-variant = 'ALV1'.
CALL METHOD ref_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout1
is_variant = gs_variant0
i_save = 'A'
i_default = 'X'
CHANGING
it_outtab = itab1[]
it_fieldcatalog = gt_fieldcat1
it_sort = gt_sort1.
ENDFORM. "set_display
*ENDFORM. " F1000_PREPARA_ALV
*&---------------------------------------------------------------------*
*& Form PREPARE_FIELD_CATALOG2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FIELDCAT2 text
*----------------------------------------------------------------------*
FORM prepare_field_catalog2 CHANGING pt_fieldcat2 TYPE lvc_t_fcat .
DATA ls_fcat TYPE lvc_s_fcat .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = '/MKBS/Z_KONTR_STRUC'
CHANGING
ct_fieldcat = pt_fieldcat2[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ls_fcat-FIELDNAME = 'VBELN'.
ls_fcat-SELTEXT = 'factura'.
APPEND ls_fcat TO pt_fieldcat2.
ls_fcat-FIELDNAME = 'FKTYP'.
ls_fcat-SELTEXT = 'tipo de factura'.
APPEND ls_fcat TO pt_fieldcat2.
ls_fcat-FIELDNAME = 'VKORG'.
ls_fcat-SELTEXT = 'organizacion de vemtas'.
APPEND ls_fcat TO pt_fieldcat2.
ls_fcat-FIELDNAME = 'VTWEG'.
ls_fcat-SELTEXT = 'canal de distribucion'.
APPEND ls_fcat TO pt_fieldcat2.
SELECT *
UP TO 100 ROWS
from vbrk
INTO TABLE itab2.
ENDFORM. " PREPARE_FIELD_CATALOG2
*&---------------------------------------------------------------------*
*& Form PREPARE_LAYOUT2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GS_LAYOUT2 text
*----------------------------------------------------------------------*
FORM prepare_layout2 CHANGING ps_layout2 TYPE lvc_s_layo.
ps_layout2-zebra = 'X' .
ps_layout2-grid_title = 'layout 2 vbrk' .
ps_layout2-smalltitle = 'X' .
ENDFORM. " PREPARE_LAYOUT2
*&---------------------------------------------------------------------*
*& Form SET_DISPLAY1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM set_display1 .
DATA : gs_variant0 type disvariant
* IT_OUTTAB TYPE STANDARD TABLE ,
.
gs_variant0-report = sy-repid.
gs_variant0-username = sy-uname.
gs_variant0-variant = 'ALV2'.
CALL METHOD ref_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout2
is_variant = gs_variant0
i_save = 'A'
i_default = 'X'
CHANGING
it_outtab = itab2[]
it_fieldcatalog = gt_fieldcat2
it_sort = gt_sort1.
ENDFORM. " SET_DISPLAY1