Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV layout with multiple lists / grids

Former Member
0 Likes
416

Hi All,

I have to display an ALV output as in the below format.

In the below sample illustration, 3 lists should be displayed one below the other with different Header sections with its detailed list underneath it.

ALV Ouput-

TOTAL NUMBER OF PURCHASE ORDERS FOR THE MONTH - XXX

<Detailed List>

PO num    Vend    Material    Qty    Price    Plant

XX              XX         XX            XX    XX         XX

XX              XX         XX            XX    XX         XX

and so on..

....

...

Sub Total

Total

DETAILS OF THE MATERIALS PURCHASED

<Material Detailed list>

Material num    Mat type    Mat desc    UoM    Matgrp

XX                    XX             XX               XX     XX

XX                    XX             XX               XX     XX

and so on..

....

...

DETAILS OF THE MATERIALS PURCHASED

SHIPMENT COST DOCUMENT NUMBERS CREATED FOR THE MONTH - XXX

<SHIPMENT COST DOCUMENT DETAILS>

SCD #    Carrier     G/L Acc        Costcenter    Delivery #    Cost

XX          XX           XX                   XX               XX               XX

XX          XX          XX                    XX               XX               XX

and so on..

....

...

Sub Total

Total

The above is a sample illustration of the required layout. I need advise about how this can be achieved using ALV's(whether List / Grid) and Hierarchial / Tree etc and in addition it should be allowed to download to a XLS / CSV file.

Thanks

Sakshi.

Moderator message : Requirement dumping not allowed, search for available information,  discussion locked

Message was edited by: Vinod Kumar

Hi All,

I have to display an ALV output as in the below format.

In the below sample illustration, 3 lists should be displayed one below the other with different Header sections with its detailed list underneath it.

ALV Ouput-

TOTAL NUMBER OF PURCHASE ORDERS FOR THE MONTH - XXX

<Detailed List>

PO num    Vend    Material    Qty    Price    Plant

XX              XX         XX            XX    XX         XX

XX              XX         XX            XX    XX         XX

and so on..

....

...

Sub Total

Total

DETAILS OF THE MATERIALS PURCHASED

<Material Detailed list>

Material num    Mat type    Mat desc    UoM    Matgrp

XX                    XX             XX               XX     XX

XX                    XX             XX               XX     XX

and so on..

....

...

DETAILS OF THE MATERIALS PURCHASED

SHIPMENT COST DOCUMENT NUMBERS CREATED FOR THE MONTH - XXX

<SHIPMENT COST DOCUMENT DETAILS>

SCD #    Carrier     G/L Acc        Costcenter    Delivery #    Cost

XX          XX           XX                   XX               XX               XX

XX          XX          XX                    XX               XX               XX

and so on..

....

...

Sub Total

Total

The above is a sample illustration of the required layout. I need advise about how this can be achieved using ALV's(whether List / Grid) and Hierarchial / Tree etc and in addition it should be allowed to download to a XLS / CSV file.

Thanks

Sakshi.

Moderator message : Requirement dumping not allowed, search for available information,  discussion locked

Message was edited by: Vinod Kumar

1 REPLY 1
Read only

Former Member
0 Likes
384

Hi Sakshi,

This can be achieved by creating separate Containers for each ALV report.

In the report call a screen using CALL SCREEN statement and create 3 containers in that screen. Display each of your report in one of the containers.

I hereby paste the sample code for displaying 2 reports in 2 containers. Please adapt this according to your requirement.

  

TABLES: vbap.

TYPE-POOLS: slis.

TYPES: BEGIN OF ty_vbap,
        vbeln TYPE vbeln_va,
        posnr TYPE posnr_va,
        matnr TYPE matnr,
        matwa TYPE matwa,
       END OF ty_vbap.

TYPES: BEGIN OF ty_vbfa,
        vbelv TYPE vbeln_von,
        posnv TYPE posnr_von,
        vbeln TYPE vbeln_nach,
        posnn TYPE posnr_nach,
        rfmng TYPE rfmng,
        rfwrt TYPE rfwrt,
        matnr TYPE matnr,
       END OF ty_vbfa.

DATA: it_vbap TYPE STANDARD TABLE OF ty_vbap,
      wa_vbap TYPE ty_vbap,
      it_vbfa TYPE STANDARD TABLE OF ty_vbfa,
      wa_vbfa TYPE ty_vbfa.

DATA: it_fieldcat1 TYPE STANDARD TABLE OF lvc_s_fcat,
      wa_fieldcat1 TYPE lvc_s_fcat,
      it_fieldcat2 TYPE STANDARD TABLE OF lvc_s_fcat,
      wa_fieldcat2 TYPE lvc_s_fcat.

DATA: lo_cont TYPE REF TO cl_gui_custom_container,
      lo_grid TYPE REF TO cl_gui_alv_grid.

DATA: lo_cont1 TYPE REF TO cl_gui_custom_container,
      lo_grid1 TYPE REF TO cl_gui_alv_grid.

SELECTION-SCREEN: BEGIN OF BLOCK b1.
SELECT-OPTIONS: s_vbeln FOR vbap-vbeln.
SELECTION-SCREEN: END OF BLOCK b1.

START-OF-SELECTION.

  SELECT vbeln
         posnr
         matnr
         matwa
    FROM vbap
    INTO TABLE it_vbap
    WHERE vbeln IN s_vbeln.

  IF it_vbap[] IS NOT INITIAL.

    SELECT vbelv
           posnv
           vbeln
           posnn
      rfmng
      rfwrt
      matnr
      FROM vbfa
      INTO TABLE it_vbfa
      FOR ALL ENTRIES IN it_vbap
      WHERE vbelv = it_vbap-vbeln.

  ENDIF.

  DEFINE fieldcat1.

    clear  wa_fieldcat1.
    wa_fieldcat1-fieldname   = &1.
    wa_fieldcat1-seltext   = &2.
    wa_fieldcat1-col_pos     = &3.
    append wa_fieldcat1 to it_fieldcat1.

  END-OF-DEFINITION.

  fieldcat1 'VBELN' 'Sale order'        1.
  fieldcat1 'POSNR' 'Sale order item'   2.
  fieldcat1 'MATNR' 'Material'          3.
  fieldcat1 'MATWA' 'Material entered'  4.

  DEFINE fieldcat2.

    clear  wa_fieldcat2.
    wa_fieldcat2-fieldname   = &1.
    wa_fieldcat2-seltext   = &2.
    wa_fieldcat2-col_pos     = &3.
    if wa_fieldcat2-fieldname = 'RFMNG'.
    wa_fieldcat2-DO_SUM = 'X'.
    endif.
    append wa_fieldcat2 to it_fieldcat2.

  END-OF-DEFINITION.

  fieldcat2 'VBELV' 'Sale order'           1.
  fieldcat2 'POSNV' 'Sale order item'      2.
  fieldcat2 'VBELN' 'Subsequent doc'       3.
  fieldcat2 'POSNN' 'Subsequent doc item'  4.
  fieldcat2 'RFMNG' 'Qunan'                5.
  fieldcat2 'RFWRT' 'Quna'                 6.
  fieldcat2 'MATNR' 'Material'             7.


  CALL SCREEN 100.


*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'ZPF'.
*  SET TITLEBAR 'xxx'.

  IF lo_cont IS INITIAL.
    CREATE OBJECT lo_cont
      EXPORTING
        container_name              = 'FIRST_CONT' "Screen custom control name
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.

    IF sy-subrc NE 0.

    ENDIF.

    CREATE OBJECT lo_grid
      EXPORTING
        i_parent          = lo_cont "Custom container class object
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc NE 0.

    ENDIF.

    CALL METHOD lo_grid->set_table_for_first_display
      CHANGING
        it_outtab                     = it_vbap[]
        it_fieldcatalog               = it_fieldcat1[]
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4.
    IF sy-subrc NE 0.

    ENDIF.

  ENDIF.

  IF lo_cont1 IS INITIAL.
    CREATE OBJECT lo_cont1
      EXPORTING
        container_name              = 'SECOND_CONT' "Screen custom control name
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.

    IF sy-subrc NE 0.

    ENDIF.

    CREATE OBJECT lo_grid1
      EXPORTING
        i_parent          = lo_cont1 "Custom container class object
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc NE 0.

    ENDIF.

    CALL METHOD lo_grid1->set_table_for_first_display
      CHANGING
        it_outtab                     = it_vbfa[]
        it_fieldcatalog               = it_fieldcat2[]
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4.
    IF sy-subrc NE 0.

    ENDIF.

  ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE to SCREEN 0.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

Thanks,

Manikandan JN.