2007 Apr 04 9:19 AM
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
2007 Apr 04 9:47 AM
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 ***
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
2007 Apr 04 9:24 AM
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
2007 Apr 04 9:28 AM
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
2007 Apr 04 9:34 AM
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
2007 Apr 04 9:37 AM
ok just try this piece of code it may help you if it does not let us know..
regards
shiba dutta
2007 Apr 04 9:37 AM
2007 Apr 04 9:47 AM
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 ***
2007 Apr 04 9:53 AM
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.
2007 Apr 04 9:54 AM
&----
*& 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
2007 Apr 04 10:06 AM
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |