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

required program logic for generating 5 ALV GRIDS using Object and Methods

Former Member
0 Likes
402

For generating 3 ALV GRIDS the this program (Sample report ZUS_SDN_THREE_ALV_GRIDS) is available in sdn.sap.com.

could you guide me for generating the 5 ALV GRIDS and needs to populate the values like below..

GRID1 : VBAK sales order details

GRID2 : VBAP item details

GRID3 : LIKP & LIPS shipping details

GRID4 : VBRP&VBRK billing details

GRID5 : KNA1 customer details

thanks & regards

srinivas...

2 REPLIES 2
Read only

Former Member
0 Likes
368

Hi,

I am giving code for 4 alv grids....

Example for this is printing 'Material BOM data'.

You can add one more grid by analyzing the code below.

I have done it for four.

Giving you selection screen varients..:

Material.......... .......1 to 20000

Plant.....................1 to 1000

BOM Usage...........1 to 8

BOM status...........1 to 3

BOM category.........D to P

TABLES mast.


*----------------------------------------------------------------------*
*                           T Y P E S                                  *
*----------------------------------------------------------------------*
TYPES:
*Material to BOM Link
  BEGIN OF type_mast,
    matnr TYPE mast-matnr,             " Material Number
    werks TYPE mast-werks,             " Plant
    stlan TYPE mast-stlan,             " BOM Usage
    stlnr TYPE mast-stlnr,             " Bill of material
  END OF type_mast.


TYPES:
*Material Descriptions
  BEGIN OF type_makt,
    matnr TYPE makt-matnr,             " Material Number
    maktx TYPE makt-maktx,             " Material Descriptions
  END OF type_makt.

TYPES:
*BOM Header
  BEGIN OF type_stko,
    stlty TYPE stko-stlty,             " BOM category
    stlnr TYPE stko-stlnr,             " Bill of material
    stlal TYPE stko-stlal,             " Alternative BOM
    datuv TYPE stko-datuv,             " Valid-From Date
    bmeng TYPE stko-bmeng,             " Base quantity
    stktx TYPE stko-stktx,             " Alternative BOM Text
    stlst TYPE stko-stlst,             " BOM status
  END OF type_stko.

TYPES:
*BOM item
  BEGIN OF type_stpo,
    stlty TYPE stpo-stlty,             " BOM category
    stlnr TYPE stpo-stlnr,             " Bill of material
    idnrk TYPE stpo-idnrk,             " BOM component
    postp TYPE stpo-postp,             " Item Category
    posnr TYPE stpo-posnr,             " BOM Item Number
    menge TYPE stpo-menge,             " Component quantity
    potx1 TYPE stpo-potx1,             " BOM  Text
  END OF type_stpo.


DATA:
  r_container TYPE REF TO cl_gui_custom_container,
                                       " Object for the container
  r_alv_grid  TYPE REF TO cl_gui_alv_grid,
                                       " Object for the grid
  ok_code TYPE sy-ucomm.               " Hold Fcode.



*----------------------------------------------------------------------*
*                   I N T E R N A L   T A B L E S                      *
*----------------------------------------------------------------------*
DATA:
*Material to BOM Link
i_mast  TYPE TABLE OF type_mast,
wa_mast TYPE type_mast,

*General Material Data
wa_mara TYPE  mara,

*Material Descriptions
i_makt  TYPE TABLE OF type_makt,
wa_makt TYPE type_makt,

*BOM Header
i_stko  TYPE TABLE OF type_stko,
wa_stko TYPE type_stko,

*BOM item
i_stpo  TYPE TABLE OF type_stpo,
wa_stpo TYPE type_stpo,

* Field catalog for mast
i_fcat_mast  TYPE lvc_t_fcat,
wa_fcat_mast LIKE LINE OF  i_fcat_mast,

* Field catalog for makt
i_fcat_makt  TYPE lvc_t_fcat,
wa_fcat_makt LIKE LINE OF  i_fcat_makt,

* Field catalog for stko
i_fcat_stko  TYPE lvc_t_fcat,
wa_fcat_stko LIKE LINE OF  i_fcat_stko,

* Field catalog for stpo
i_fcat_stpo  TYPE lvc_t_fcat,
wa_fcat_stpo LIKE LINE OF  i_fcat_stpo.

*----------------------------------------------------------------------*
*                 S E L E C T I O N     S C R E E N                    *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
  s_matnr  FOR wa_mara-matnr,          " Material Number
  s_werks  FOR wa_mast-werks OBLIGATORY,
                                       " Plant
  s_stlan  FOR wa_mast-stlan,          " BOM Usage
  s_stlst  FOR wa_stko-stlst,          " BOM status
  s_stlty  FOR wa_stko-stlty.          " BOM category
SELECTION-SCREEN END OF BLOCK b1.


*----------------------------------------------------------------------*
*               A T   S E L E C T I O N   S C R E E N                  *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  PERFORM f010_validate_material_number.
  PERFORM f020_validate_plant.
  PERFORM f030_validate_bom_usage.
  PERFORM f040_validate_bom_status.
  PERFORM f050_validate_bom_category.

*----------------------------------------------------------------------*
*                S T A R T   O F   S E L E C T I O N                   *
*----------------------------------------------------------------------*
START-OF-SELECTION .
  PERFORM f060_get_data_mast.
  PERFORM f070_get_data_makt.
  PERFORM f080_get_data_stko.
  PERFORM f090_get_data_stpo.

  PERFORM f100_field_catalog_mast.
  PERFORM f110_field_catalog_makt.
  PERFORM f120_field_catalog_stko.
  PERFORM f130_field_catalog_stpo.
  CALL SCREEN 100.
*  PERFORM f110_display_all_data.



*&--------------------------------------------------------------------*
*&      Form  f010_validate_material_number
*&--------------------------------------------------------------------*
*       --Validate Material                                           *
*---------------------------------------------------------------------*
FORM f010_validate_material_number .
  IF s_matnr IS NOT INITIAL.
* Validate Customer
    SELECT matnr                       " Material Number
      FROM mast
      INTO wa_mast
      UP TO 1 ROWS
      WHERE matnr IN s_matnr.
    ENDSELECT.


    CHECK sy-subrc NE 0.

    SET CURSOR FIELD 'p_matnr'.
    MESSAGE e001(zmbomdata).             " Invalid Customer
  ENDIF.
ENDFORM.                               " f010_validate_material_number

*&--------------------------------------------------------------------*
*&      Form  f020_validate_plant
*&--------------------------------------------------------------------*
*       - Validate Plant                                              *
*---------------------------------------------------------------------*
FORM f020_validate_plant .
* Validate plant
  SELECT  werks                        " Plant
    INTO wa_mast
    FROM mast
    UP TO 1 ROWS
    WHERE werks IN s_werks.
  ENDSELECT.


  CHECK sy-subrc NE 0.

  SET CURSOR FIELD 'p_werks'.
  MESSAGE e002(zmbomdata).             " Invalid Plant
ENDFORM.                               " f020_validate_plant
*&--------------------------------------------------------------------*
*&      Form  f030_validate_bom_usage
*&--------------------------------------------------------------------*
*       -Validate BOM Usage                                           *
*---------------------------------------------------------------------*
FORM f030_validate_bom_usage .
  IF s_stlan IS NOT INITIAL.
* Validate bom usage
    SELECT stlan                       " BOM Usage
       INTO wa_mast
       FROM mast
       UP TO 1 ROWS
       WHERE stlan IN s_stlan.
    ENDSELECT.


    CHECK sy-subrc NE 0.

    SET CURSOR FIELD 'p_stlan'.
    MESSAGE e003(zmbomdata).             " Invalid bom usage
  ENDIF.
ENDFORM.                               " f030_validate_bom_usage
*&--------------------------------------------------------------------*
*&      Form  f040_validate_bom_status
*&--------------------------------------------------------------------*
*       - Validate BOM Status
*---------------------------------------------------------------------*
FORM f040_validate_bom_status .
  IF s_stlty IS NOT INITIAL.
* Validate bom category
    SELECT stlty                       " BOM category
       INTO wa_stko
       FROM stko
       UP TO 1 ROWS
       WHERE stlty IN s_stlty.
    ENDSELECT.


    CHECK sy-subrc NE 0.

    SET CURSOR FIELD 'p_stlst'.
    MESSAGE e004(zmbomdata).           " Invalid bom status
  ENDIF.                               " IF s_stlty
ENDFORM.                               " f040_validate_bom_status
*&--------------------------------------------------------------------*
*&      Form  f050_validate_bom_category
*&--------------------------------------------------------------------*
*       -Validate BOM Category
*---------------------------------------------------------------------*
FORM f050_validate_bom_category .
  IF s_stlst IS NOT INITIAL.
* Validate bom status
    SELECT  stlst                      " BOM status
       INTO wa_stko
       FROM stko
       UP TO 1 ROWS
       WHERE stlst IN s_stlst.
    ENDSELECT.


    CHECK sy-subrc NE 0.

    SET CURSOR FIELD 'p_stlty'.
    MESSAGE e005(zmbomdata).           " Invalid bom category
  ENDIF.                               " IF s_stlst
ENDFORM.                               " f050_validate_bom_category
*&--------------------------------------------------------------------*
*&      Form  f060_get_data_mast
*&--------------------------------------------------------------------*
*       - Fetch Material BOM Link data                                *
*---------------------------------------------------------------------*
FORM f060_get_data_mast .

  SELECT  matnr                        " Material Number
          werks                        " Plant
          stlan                        " BOM Usage
          stlnr                        " Bill of material
       FROM mast
       INTO TABLE i_mast
       WHERE matnr IN s_matnr
       AND   werks IN s_werks.

  IF sy-subrc <> 0 .
    MESSAGE s006(zmbomdata).
  ENDIF.


ENDFORM.                               " f060_get_data_mast
*&--------------------------------------------------------------------*
*&      Form  f070_get_data_makt
*&--------------------------------------------------------------------*
*       - Fetch Material description data                             *
*---------------------------------------------------------------------*
FORM f070_get_data_makt .
  SELECT matnr                         " Material Number
         maktx                         " Material Descriptions
       FROM makt
       INTO TABLE i_makt
       FOR ALL ENTRIES IN i_mast
       WHERE matnr = i_mast-matnr.

  IF sy-subrc <> 0 .
    MESSAGE s006(zmbomdata).
  ENDIF.

ENDFORM.                               " f070_get_data_makt
*&--------------------------------------------------------------------*
*&      Form  f080_get_data_stko
*&--------------------------------------------------------------------*
*       - Fetch BOM Header data                                       *
*---------------------------------------------------------------------*
FORM f080_get_data_stko .
  SELECT  stlty                        " BOM category
          stlnr                        " Bill of material
          stlal                        " Alternative BOM
          datuv                        " Valid-From Date
          bmeng                        " Base quantity
          stktx                        " Alternative BOM Text
          stlst                        " BOM status
       FROM stko
       INTO TABLE i_stko
       FOR ALL ENTRIES IN i_mast
       WHERE stlnr = i_mast-stlnr
       AND   stlst IN s_stlst
       AND   stlty IN s_stlty.

  IF sy-subrc <> 0 .
    MESSAGE s006(zmbomdata).
  ENDIF.



ENDFORM.                               " f080_get_data_stko
*&--------------------------------------------------------------------*
*&      Form  f090_get_data_stpo
*&--------------------------------------------------------------------*
*       - Fetch BOM Item data                                         *
*---------------------------------------------------------------------*
FORM f090_get_data_stpo .
  SELECT  stlty                        " BOM category
          stlnr                        " Bill of material
          idnrk                        " BOM component
          postp                        " Item Category
          posnr                        " BOM Item Number
          menge                        " Component quantity
          potx1                        " BOM  Text
       FROM stpo
       INTO TABLE i_stpo
     FOR ALL ENTRIES IN i_stko
     WHERE stlnr = i_stko-stlnr
     AND   stlty = i_stko-stlty.

  IF sy-subrc <> 0 .
    MESSAGE s006(zmbomdata).
  ENDIF.

ENDFORM.                             " f090_get_data_stpo
*&--------------------------------------------------------------------*
*&      Form  f100_field_catalog_mast
*&--------------------------------------------------------------------*
*       - Populate field catalog table for mast                       *
*---------------------------------------------------------------------*
FORM f100_field_catalog_mast .

  wa_fcat_mast-fieldname  = 'MATNR'.
  wa_fcat_mast-ref_field  = 'MATNR'.
  wa_fcat_mast-col_pos    = 1.
  wa_fcat_mast-ref_table  = 'MAST'.
  wa_fcat_mast-coltext = 'Material Number'.
  wa_fcat_mast-outputlen = 11.
  APPEND wa_fcat_mast TO i_fcat_mast.

  wa_fcat_mast-fieldname  = 'WERKS'.
  wa_fcat_mast-ref_field  = 'WERKS'.
  wa_fcat_mast-col_pos    = 2.
  wa_fcat_mast-ref_table  = 'MAST'.
  wa_fcat_mast-coltext = 'Plant'.
  wa_fcat_mast-outputlen = 11.
  APPEND wa_fcat_mast TO i_fcat_mast.

  wa_fcat_mast-fieldname  = 'STLAN'.
  wa_fcat_mast-ref_field  = 'STLAN'.
  wa_fcat_mast-col_pos    = 3.
  wa_fcat_mast-ref_table  = 'MAST'.
  wa_fcat_mast-coltext = 'BOM Usage'.
  wa_fcat_mast-outputlen = 11.
  APPEND wa_fcat_mast TO i_fcat_mast.

  wa_fcat_mast-fieldname  = 'STLNR'.
  wa_fcat_mast-ref_field  = 'STLNR'.
  wa_fcat_mast-col_pos    = 4.
  wa_fcat_mast-ref_table  = 'MAST'.
*  wa_fcat_mast-coltext = 'Bill of material'.
*  wa_fcat_mast-outputlen = 11.
  APPEND wa_fcat_mast TO i_fcat_mast.
ENDFORM.                               " f100_field_catalog_mast

*&--------------------------------------------------------------------*
*&      Form  f110_field_catalog_maKt
*&--------------------------------------------------------------------*
*       - Populate field catalog table for makt                       *
*---------------------------------------------------------------------*
FORM f110_field_catalog_makt .
  wa_fcat_makt-fieldname  = 'MAKTX'.
  wa_fcat_makt-ref_field  = 'MAKTX'.
  wa_fcat_makt-col_pos    = 1.
  wa_fcat_makt-ref_table  = 'MAKT'.
  wa_fcat_makt-coltext = 'Material Description'.
  wa_fcat_makt-outputlen = 11.
  APPEND wa_fcat_makt TO i_fcat_makt.
ENDFORM.                    " f110_field_catalog_maKt
*&--------------------------------------------------------------------*
*&      Form  f120_field_catalog_stko
*&--------------------------------------------------------------------*
*       - Populate field catalog table for stko                       *
*---------------------------------------------------------------------*
FORM f120_field_catalog_stko .
  wa_fcat_stko-fieldname  = 'STLAL'.
  wa_fcat_stko-ref_field  = 'STLAL'.
  wa_fcat_stko-col_pos    = 1.
  wa_fcat_stko-ref_table  = 'STKO'.
  wa_fcat_stko-coltext = 'Alternative BOM'.
  wa_fcat_stko-outputlen = 11.
  APPEND wa_fcat_stko TO i_fcat_stko.

  wa_fcat_stko-fieldname  = 'STKTX'.
  wa_fcat_stko-ref_field  = 'STKTX'.
  wa_fcat_stko-col_pos    = 2.
  wa_fcat_stko-ref_table  = 'STKO'.
  wa_fcat_stko-coltext = 'Alternative BOM Text'.
  wa_fcat_stko-outputlen = 11.
  APPEND wa_fcat_stko TO i_fcat_stko.

  wa_fcat_stko-fieldname  = 'DATUV'.
  wa_fcat_stko-ref_field  = 'DATUV'.
  wa_fcat_stko-col_pos    = 3.
  wa_fcat_stko-ref_table  = 'STKO'.
  wa_fcat_stko-coltext = 'Valid-from Date'.
  wa_fcat_stko-outputlen = 11.
  APPEND wa_fcat_stko TO i_fcat_stko.

  wa_fcat_stko-fieldname  = 'BMENG'.
  wa_fcat_stko-ref_field  = 'BMENG'.
  wa_fcat_stko-col_pos    = 4.
  wa_fcat_stko-ref_table  = 'STKO'.
  wa_fcat_stko-coltext = 'Base Quantity'.
  wa_fcat_stko-outputlen = 11.
  APPEND wa_fcat_stko TO i_fcat_stko.

  wa_fcat_stko-fieldname  = 'STLST'.
  wa_fcat_stko-ref_field  = 'STLST'.
  wa_fcat_stko-col_pos    = 5.
  wa_fcat_stko-ref_table  = 'STKO'.
  wa_fcat_stko-coltext = 'BOM Status'.
  wa_fcat_stko-outputlen = 11.
  APPEND wa_fcat_stko TO i_fcat_stko.
ENDFORM.                               " f120_field_catalog_stko
*&--------------------------------------------------------------------*
*&      Form  f130_field_catalog_stpo
*&--------------------------------------------------------------------*
*       - Populate field catalog table for stpo                       *
*---------------------------------------------------------------------*
FORM f130_field_catalog_stpo .
  wa_fcat_stpo-fieldname  = 'IDNRK'.
  wa_fcat_stpo-ref_field  = 'IDNRK'.
  wa_fcat_stpo-col_pos    = 1.
  wa_fcat_stpo-ref_table  = 'STPO'.
  wa_fcat_stpo-coltext = 'BOM Component'.
  wa_fcat_stpo-outputlen = 11.
  APPEND wa_fcat_stpo TO i_fcat_stpo.

  wa_fcat_stpo-fieldname  = 'POSTP'.
  wa_fcat_stpo-ref_field  = 'POSTP'.
  wa_fcat_stpo-col_pos    = 2.
  wa_fcat_stpo-ref_table  = 'STPO'.
  wa_fcat_stpo-coltext = 'BOM Iten Category'.
  wa_fcat_stpo-outputlen = 11.
  APPEND wa_fcat_stpo TO i_fcat_stpo.

  wa_fcat_stpo-fieldname  = 'POSNR'.
  wa_fcat_stpo-ref_field  = 'POSNR'.
  wa_fcat_stpo-col_pos    = 3.
  wa_fcat_stpo-ref_table  = 'STPO'.
  wa_fcat_stpo-coltext = 'BOM Item Number'.
  wa_fcat_stpo-outputlen = 11.
  APPEND wa_fcat_stpo TO i_fcat_stpo.

  wa_fcat_stpo-fieldname  = 'MENGE'.
  wa_fcat_stpo-ref_field  = 'MENGE'.
  wa_fcat_stpo-col_pos    = 4.
  wa_fcat_stpo-ref_table  = 'STPO'.
  wa_fcat_stpo-coltext = 'Component Quantity'.
  wa_fcat_stpo-outputlen = 11.
  APPEND wa_fcat_stpo TO i_fcat_stpo.

  wa_fcat_stpo-fieldname  = 'POTX1'.
  wa_fcat_stpo-ref_field  = 'POTX1'.
  wa_fcat_stpo-col_pos    = 5.
  wa_fcat_stpo-ref_table  = 'STPO'.
  wa_fcat_stpo-coltext = 'BOM Text'.
  wa_fcat_stpo-outputlen = 11.
  APPEND wa_fcat_stpo TO i_fcat_stpo.
ENDFORM.                               " f130_field_catalog_stpo

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       Output Screen
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'ZBOM'.
*  SET TITLEBAR 'xxx'.
  PERFORM display USING  i_mast i_fcat_mast 'MAST_CONTAINER'.
  PERFORM display USING  i_makt i_fcat_makt 'MAKT_CONTAINER'.
  PERFORM display USING  i_stko i_fcat_stko 'STKO_CONTAINER'.
  PERFORM display USING  i_stpo i_fcat_stpo 'STPO_CONTAINER'.

ENDMODULE.                             " STATUS_0100  OUTPUT




*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  ok_code = sy-ucomm.
  CASE ok_code.

    WHEN 'BACK'.
      LEAVE TO  SCREEN 0.
    WHEN 'EXIT' OR 'CANCEL'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display USING  p2_table TYPE ANY TABLE
                    p3_fcat  TYPE ANY TABLE
                    p1_container.


*  IF NOT r_container IS BOUND.
  CREATE  OBJECT   r_container
            EXPORTING
              container_name = p1_container.
*  ENDIF.                               " IF NOT r_container

*  IF NOT r_alv_grid IS BOUND.

  CREATE OBJECT r_alv_grid
            EXPORTING
              i_parent      = r_container.
*  ENDIF.                               " If not r_alv_grid

  CALL METHOD r_alv_grid->set_table_for_first_display
*    EXPORTING
*      i_structure_name = 'WA_STPO'
    CHANGING
      it_outtab        = p2_table
      it_fieldcatalog  = p3_fcat.

ENDFORM.                    " display

Reward points if helpful.

Regards

Brijesh.

Read only

Former Member
0 Likes
368

Hi Bijesh thanks for responce..

the program which you sent had Field catlog logic...

could you please send any program logic using Object and Method's

that would be helpfull to me..

thanks in advance

srinivas...