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 Grid Layout Settings

Former Member
0 Likes
1,647

Experts,

I am using an ALV grid to display my output which consists of material number, bill of material, BOM component and Quantity.

There can be numerous BOM Components and quantity for a single material number and Bill of material Number.

What i need to do is to get all the same material numbers into a same block or remove the multiple entries for MATNR and STLNR. Block would be preferable.

Please suggest how do i go about doing this?

Regards,

Prashant Kamat

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,562

here's my code..

Please suggest

&----


*& Report Z_BOMEXPLOSION *

*& *

&----


*& *

*& *

&----


REPORT z_bomexplosion.

TABLES: pbim,

mast,

stpo.

TYPE-POOLS slis.

DATA:fieldcat TYPE slis_t_fieldcat_alv.

DATA:i_layout TYPE slis_layout_alv.

DATA:wa_fieldcat TYPE slis_fieldcat_alv.

    • Internal Table for PBIM**

DATA: BEGIN OF itab_pbim OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

END OF itab_pbim.

    • Workarea for MAST Table **

DATA: BEGIN OF itab_mast OCCURS 0,

stlnr TYPE mast-stlnr,

END OF itab_mast.

    • Internal Table for STPO**

DATA: BEGIN OF itab_stpo OCCURS 0,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_stpo.

Internal table for ALV Grid Display*

DATA: BEGIN OF itab_final OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final.

DATA: BEGIN OF itab_final1 OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final1.

SELECTION-SCREEN: BEGIN OF BLOCK bom-explosion WITH FRAME TITLE text-001.

PARAMETERS: p_werks LIKE pbim-werks OBLIGATORY,

p_pbdnr LIKE pbim-pbdnr OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK bom-explosion.

START-OF-SELECTION.

SELECT matnr werks pbdnr

FROM pbim INTO CORRESPONDING FIELDS OF TABLE itab_pbim

WHERE werks EQ p_werks

AND pbdnr EQ p_pbdnr.

DATA int TYPE n VALUE 0.

DESCRIBE TABLE itab_pbim LINES int.

LOOP AT itab_pbim.

  • MOVE: itab_pbim-matnr TO itab_final1-matnr.

  • itab_pbim-werks TO itab_final-werks,

  • itab_pbim-pbdnr TO itab_final-pbdnr.

  • APPEND itab_final1.

  • ENDLOOP.

  • loop at itab_final.

SELECT SINGLE stlnr

FROM mast INTO itab_mast

  • FOR ALL ENTRIES IN itab_pbim

WHERE matnr EQ itab_pbim-matnr

AND werks EQ itab_pbim-werks.

  • MOVE: itab_mast-stlnr TO itab_final-stlnr.

  • APPEND: itab_final.

  • modify itab_final.

  • CLEAR: itab_mast-stlnr.

  • CLEAR: itab_final.

  • LOOP AT itab_final.

SELECT idnrk menge meins

FROM stpo INTO TABLE itab_stpo

WHERE stlnr EQ itab_mast-stlnr.

IF itab_stpo[] IS NOT INITIAL.

LOOP AT itab_stpo.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr,

itab_stpo-idnrk TO itab_final1-idnrk,

itab_stpo-menge TO itab_final1-menge,

itab_stpo-meins TO itab_final1-meins.

APPEND itab_final1.

CLEAR: itab_stpo.

CLEAR: itab_final1.

ENDLOOP.

CLEAR: itab_mast-stlnr.

ELSE.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr.

APPEND itab_final1.

ENDIF.

ENDLOOP.

LOOP AT itab_final1.

MOVE itab_final1 TO itab_final.

APPEND itab_final.

CLEAR itab_final1.

ENDLOOP.

SORT itab_final BY matnr.

*delete itab_final where idnrk EQ ' '.

END-OF-SELECTION.

**************************************************************************************

    • Fieldcat build ***

**************************************************************************************

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = '1'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'STLNR'.

wa_fieldcat-seltext_m = 'Bill of material'.

wa_fieldcat-col_pos = '2'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'IDNRK'.

wa_fieldcat-seltext_m = 'BOM component'.

wa_fieldcat-col_pos = '3'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-seltext_m = 'Quantity'.

wa_fieldcat-col_pos = '4'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-seltext_m = 'Units'.

wa_fieldcat-col_pos = '5'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

**************************************************************************************

    • End of Fieldcat build ***

**************************************************************************************

**************************************************************************************

    • ALV Grid Display ***

**************************************************************************************

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = 'Z_BOMEXPLOSION'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

**************************************************************************************

    • End of ALV Grid Display ***

ok just try this piece of code it may help you if it does not let us know..

regards

shiba dutta

9 REPLIES 9
Read only

Former Member
0 Likes
1,562

for this you have to use sort fnlity and pass the sort tab to alv grid display

data : isort type slis_t_sortinfo_alv,

wsort type slis_sortinfo_alv.

wsort-fieldname = 'MATNR'

wsort-up = 'X'.

wsort-group = 'UL'.

wsort-spos = 1.

append wsort to isort

wsort-fieldname = 'STLNR'

wsort-up = 'X'.

wsort-group = 'UL'.

wsort-spos = 2.

append wsort to isort

now pass in the param IT_SORT = isort[]

regards

shiba dutta

Read only

Former Member
0 Likes
1,562

Use the Sort internal table

data: it_sortcat type slis_sortinfo_alv occurs 1,

wa_sort like line of it_sortcat.

wa_sort-spos = 1.

wa_sort-fieldname = 'MATNR'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sortcat.

wa_sort-spos = 2.

wa_sort-fieldname = 'STLNR'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sortcat.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

i_callback_top_of_page = 'TOP-OF-PAGE'

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

<b> it_sort = it_sortcat</b>

i_save = 'X'

tables

t_outtab = it_ekko

exceptions

program_error = 1

others = 2.

Message was edited by:

Chandrasekhar Jagarlamudi

Read only

Former Member
0 Likes
1,562

Experts,

Thanks for your response..

I am sending the sorted internal table to ALV... I want the records that have a particular matnr to be shown in some different color or in a block kind of thing.

Prash

Read only

0 Likes
1,562

ok just try this piece of code it may help you if it does not let us know..

regards

shiba dutta

Read only

0 Likes
1,562
Read only

Former Member
0 Likes
1,563

here's my code..

Please suggest

&----


*& Report Z_BOMEXPLOSION *

*& *

&----


*& *

*& *

&----


REPORT z_bomexplosion.

TABLES: pbim,

mast,

stpo.

TYPE-POOLS slis.

DATA:fieldcat TYPE slis_t_fieldcat_alv.

DATA:i_layout TYPE slis_layout_alv.

DATA:wa_fieldcat TYPE slis_fieldcat_alv.

    • Internal Table for PBIM**

DATA: BEGIN OF itab_pbim OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

END OF itab_pbim.

    • Workarea for MAST Table **

DATA: BEGIN OF itab_mast OCCURS 0,

stlnr TYPE mast-stlnr,

END OF itab_mast.

    • Internal Table for STPO**

DATA: BEGIN OF itab_stpo OCCURS 0,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_stpo.

Internal table for ALV Grid Display*

DATA: BEGIN OF itab_final OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final.

DATA: BEGIN OF itab_final1 OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final1.

SELECTION-SCREEN: BEGIN OF BLOCK bom-explosion WITH FRAME TITLE text-001.

PARAMETERS: p_werks LIKE pbim-werks OBLIGATORY,

p_pbdnr LIKE pbim-pbdnr OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK bom-explosion.

START-OF-SELECTION.

SELECT matnr werks pbdnr

FROM pbim INTO CORRESPONDING FIELDS OF TABLE itab_pbim

WHERE werks EQ p_werks

AND pbdnr EQ p_pbdnr.

DATA int TYPE n VALUE 0.

DESCRIBE TABLE itab_pbim LINES int.

LOOP AT itab_pbim.

  • MOVE: itab_pbim-matnr TO itab_final1-matnr.

  • itab_pbim-werks TO itab_final-werks,

  • itab_pbim-pbdnr TO itab_final-pbdnr.

  • APPEND itab_final1.

  • ENDLOOP.

  • loop at itab_final.

SELECT SINGLE stlnr

FROM mast INTO itab_mast

  • FOR ALL ENTRIES IN itab_pbim

WHERE matnr EQ itab_pbim-matnr

AND werks EQ itab_pbim-werks.

  • MOVE: itab_mast-stlnr TO itab_final-stlnr.

  • APPEND: itab_final.

  • modify itab_final.

  • CLEAR: itab_mast-stlnr.

  • CLEAR: itab_final.

  • LOOP AT itab_final.

SELECT idnrk menge meins

FROM stpo INTO TABLE itab_stpo

WHERE stlnr EQ itab_mast-stlnr.

IF itab_stpo[] IS NOT INITIAL.

LOOP AT itab_stpo.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr,

itab_stpo-idnrk TO itab_final1-idnrk,

itab_stpo-menge TO itab_final1-menge,

itab_stpo-meins TO itab_final1-meins.

APPEND itab_final1.

CLEAR: itab_stpo.

CLEAR: itab_final1.

ENDLOOP.

CLEAR: itab_mast-stlnr.

ELSE.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr.

APPEND itab_final1.

ENDIF.

ENDLOOP.

LOOP AT itab_final1.

MOVE itab_final1 TO itab_final.

APPEND itab_final.

CLEAR itab_final1.

ENDLOOP.

SORT itab_final BY matnr.

*delete itab_final where idnrk EQ ' '.

END-OF-SELECTION.

**************************************************************************************

    • Fieldcat build ***

**************************************************************************************

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = '1'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'STLNR'.

wa_fieldcat-seltext_m = 'Bill of material'.

wa_fieldcat-col_pos = '2'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'IDNRK'.

wa_fieldcat-seltext_m = 'BOM component'.

wa_fieldcat-col_pos = '3'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-seltext_m = 'Quantity'.

wa_fieldcat-col_pos = '4'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-seltext_m = 'Units'.

wa_fieldcat-col_pos = '5'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

**************************************************************************************

    • End of Fieldcat build ***

**************************************************************************************

**************************************************************************************

    • ALV Grid Display ***

**************************************************************************************

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = 'Z_BOMEXPLOSION'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

**************************************************************************************

    • End of ALV Grid Display ***

Read only

0 Likes
1,562

See the below code.

DATA: it_sort TYPE slis_t_sortinfo_alv.

DATA :wa_sort TYPE slis_sortinfo_alv.

REFRESH: it_sort.

CLEAR: it_sort.

CLEAR wa_sort.

wa_sort-spos = '01'.

wa_sort-up = 'X'.

wa_sort-fieldname = 'MATNR'.

WA_sort2-group = '*'.

APPEND wa_sort TO it_sort.

CLEAR wa_sort.

wa_sort-spos = '02'.

wa_sort-up = 'X'.

wa_sort-fieldname = 'STLNR'.

  • WA_SORT2-SUBTOT = 'X'.

WA_sort2-group = '*'.

APPEND wa_sort TO it_sort.

CLEAR wa_sort.

Pass this it_sort to fm.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = 'Z_BOMEXPLOSION'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = it_sort

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Read only

0 Likes
1,562

&----


*& Report Z_BOMEXPLOSION *

*& *

&----


*& *

*& *

&----


REPORT z_bomexplosion.

TABLES: pbim,

mast,

stpo.

TYPE-POOLS slis.

DATA:fieldcat TYPE slis_t_fieldcat_alv.

DATA:i_layout TYPE slis_layout_alv.

DATA:wa_fieldcat TYPE slis_fieldcat_alv.

<b>data : isort type slis_t_sortinfo_alv,

wsort type slis_sortinfo_alv.</b>

    • Internal Table for PBIM**

DATA: BEGIN OF itab_pbim OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

END OF itab_pbim.

    • Workarea for MAST Table **

DATA: BEGIN OF itab_mast OCCURS 0,

stlnr TYPE mast-stlnr,

END OF itab_mast.

    • Internal Table for STPO**

DATA: BEGIN OF itab_stpo OCCURS 0,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_stpo.

Internal table for ALV Grid Display*

DATA: BEGIN OF itab_final OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final.

DATA: BEGIN OF itab_final1 OCCURS 0,

matnr TYPE pbim-matnr,

werks TYPE pbim-werks,

pbdnr TYPE pbim-pbdnr,

stlnr TYPE mast-stlnr,

idnrk TYPE stpo-idnrk,

menge TYPE stpo-menge,

meins TYPE stpo-meins,

END OF itab_final1.

SELECTION-SCREEN: BEGIN OF BLOCK bom-explosion WITH FRAME TITLE text-001.

PARAMETERS: p_werks LIKE pbim-werks OBLIGATORY,

p_pbdnr LIKE pbim-pbdnr OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK bom-explosion.

START-OF-SELECTION.

SELECT matnr werks pbdnr

FROM pbim INTO CORRESPONDING FIELDS OF TABLE itab_pbim

WHERE werks EQ p_werks

AND pbdnr EQ p_pbdnr.

DATA int TYPE n VALUE 0.

DESCRIBE TABLE itab_pbim LINES int.

LOOP AT itab_pbim.

  • MOVE: itab_pbim-matnr TO itab_final1-matnr.

  • itab_pbim-werks TO itab_final-werks,

  • itab_pbim-pbdnr TO itab_final-pbdnr.

  • APPEND itab_final1.

  • ENDLOOP.

  • loop at itab_final.

SELECT SINGLE stlnr

FROM mast INTO itab_mast

  • FOR ALL ENTRIES IN itab_pbim

WHERE matnr EQ itab_pbim-matnr

AND werks EQ itab_pbim-werks.

  • MOVE: itab_mast-stlnr TO itab_final-stlnr.

  • APPEND: itab_final.

  • modify itab_final.

  • CLEAR: itab_mast-stlnr.

  • CLEAR: itab_final.

  • LOOP AT itab_final.

SELECT idnrk menge meins

FROM stpo INTO TABLE itab_stpo

WHERE stlnr EQ itab_mast-stlnr.

IF itab_stpo[] IS NOT INITIAL.

LOOP AT itab_stpo.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr,

itab_stpo-idnrk TO itab_final1-idnrk,

itab_stpo-menge TO itab_final1-menge,

itab_stpo-meins TO itab_final1-meins.

APPEND itab_final1.

CLEAR: itab_stpo.

CLEAR: itab_final1.

ENDLOOP.

CLEAR: itab_mast-stlnr.

ELSE.

MOVE: itab_pbim-matnr TO itab_final1-matnr,

itab_mast-stlnr TO itab_final1-stlnr.

APPEND itab_final1.

ENDIF.

ENDLOOP.

LOOP AT itab_final1.

MOVE itab_final1 TO itab_final.

APPEND itab_final.

CLEAR itab_final1.

ENDLOOP.

SORT itab_final BY matnr.

*delete itab_final where idnrk EQ ' '.

END-OF-SELECTION.

**************************************************************************************

    • Fieldcat build ***

**************************************************************************************

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = '1'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'STLNR'.

wa_fieldcat-seltext_m = 'Bill of material'.

wa_fieldcat-col_pos = '2'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'IDNRK'.

wa_fieldcat-seltext_m = 'BOM component'.

wa_fieldcat-col_pos = '3'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-seltext_m = 'Quantity'.

wa_fieldcat-col_pos = '4'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-tabname = 'ITAB_FINAL'.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-seltext_m = 'Units'.

wa_fieldcat-col_pos = '5'.

APPEND wa_fieldcat TO fieldcat.

CLEAR wa_fieldcat.

**************************************************************************************

    • End of Fieldcat build ***

**************************************************************************************

<b>wsort-fieldname = 'MATNR'

wsort-up = 'X'.

wsort-group = 'UL'.

wsort-spos = 1.

append wsort to isort

wsort-fieldname = 'STLNR'

wsort-up = 'X'.

wsort-group = 'UL'.

wsort-spos = 2.

append wsort to isort</b>

**************************************************************************************

    • ALV Grid Display ***

**************************************************************************************

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = 'Z_BOMEXPLOSION'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

<b>IT_SORT = isort[]</b>

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

**************************************************************************************

    • End of ALV Grid Display ***

sorry i dint check your full coding..

regards

shiba dutta

Read only

Former Member
0 Likes
1,562

Thankx Shibu,

You just solved it for me...

PRaSH