‎2008 Apr 18 6:37 AM
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...
‎2008 Apr 18 7:31 PM
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. " displayReward points if helpful.
Regards
Brijesh.
‎2008 Apr 18 7:59 PM
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...