Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

*&---------------------------------------------------------------------*

*& 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

You might also like