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

Hi help me

Former Member
0 Likes
898

hi all

I have the following scenario,

Actually i have used the FM CS_BOM_EXPL_MAT_V2 to collect all the bom

components against a material.It displays components in a unordered manner.

But now i want to display all the component in item wise or hierarchical view.

Iam using the alv grid also.

It displays as follows.

Item component

10 Aaaaa

20 b222

30 Ccccc

20 Bbbbb

10 a111

30 c111

10 a222

20 b111

30 c222

But i want to display as follows

Item Component

10 Aaaaa

10 a111

10 a222

20 Bbbbb

20 b111

20 b222

30 Ccccc

30 c111

30 c222

can you solve out this, Thanks in advance.

Regards

Rajaram

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
871

Hi,

plz use.REUSE_ALV_HIERSEQ_LIST_DISPLAY. for this kind of dispaly.

following is sample code.

REPORT ZHIERARCHYLIST .

TABLES: VBAK, VBAP.

TYPE-POOLS: SLIS.

DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

GS_KEYINFO TYPE SLIS_KEYINFO_ALV.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

END OF ITAB1.

PERFORM SUB.

GS_KEYINFO-HEADER01 = 'VBELN'.

GS_KEYINFO-ITEM01 = 'VBELN'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

IT_FIELDCAT = GT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header = 'ITAB'

i_tabname_item = 'ITAB1'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = GS_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header = ITAB

t_outtab_item = ITAB1

  • 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.

FORM SUB.

SELECT VBELN ERDAT FROM VBAK INTO TABLE ITAB UP TO 10 ROWS.

SELECT VBELN POSNR FROM VBAP INTO TABLE ITAB1 UP TO 10 ROWS.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME = 'ITAB'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = GT_FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB1'

  • I_STRUCTURE_NAME = 'ITAB1'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = GT_FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

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

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

ENDIF.

ENDFORM.

regards,

Ruchika

Reward if useful..........

8 REPLIES 8
Read only

former_member404244
Active Contributor
0 Likes
871

Hi,

sort the internal table by itam.

SORT ITAB BY ITEM.

Regards,

nagaraj

Read only

Former Member
0 Likes
872

Hi,

plz use.REUSE_ALV_HIERSEQ_LIST_DISPLAY. for this kind of dispaly.

following is sample code.

REPORT ZHIERARCHYLIST .

TABLES: VBAK, VBAP.

TYPE-POOLS: SLIS.

DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

GS_KEYINFO TYPE SLIS_KEYINFO_ALV.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

END OF ITAB1.

PERFORM SUB.

GS_KEYINFO-HEADER01 = 'VBELN'.

GS_KEYINFO-ITEM01 = 'VBELN'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

IT_FIELDCAT = GT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header = 'ITAB'

i_tabname_item = 'ITAB1'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = GS_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header = ITAB

t_outtab_item = ITAB1

  • 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.

FORM SUB.

SELECT VBELN ERDAT FROM VBAK INTO TABLE ITAB UP TO 10 ROWS.

SELECT VBELN POSNR FROM VBAP INTO TABLE ITAB1 UP TO 10 ROWS.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME = 'ITAB'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = GT_FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB1'

  • I_STRUCTURE_NAME = 'ITAB1'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = GT_FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

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

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

ENDIF.

ENDFORM.

regards,

Ruchika

Reward if useful..........

Read only

0 Likes
871

sorry yar

this is not suitable to my case, i want to display bom child components in a

hierarchical display.CS_BOM_EXPL_MAT_V2'.

It displays the component in un ordered manner.

I want to display Parent 1

child1

parent2

child2

parent3

child 3.1

child 3.2

like this

now it displays

parent1

parent2

child1

child3

child2

parent3

parent1, how can i correct this.

Regards

Rajaram

Read only

0 Likes
871

Hi,

Set this field MEHRS = 'X' in your exporting parameter. Check your itab in that sequence.

Thanks,

Senthil

Read only

0 Likes
871

HI FIRST

1) SORT UR ITAB WITH FIELD -> PARENT

SORT ITAB (DESCENDING / ASCENDING ) BY PARENT.

2) THEN USE AT NEW STATEMENT

LOOP AT ITAB.

AT NEW PARENT .

WRITE:/ITAB-PARENT.

WRITE:ITAB-CHILD.

ENDAT.

ENDLOOP.

OR USE ONCHANGE OF PARENT

STAT1

STAT2

ENDON.

ISTEAD OF AT NEW PARENT.

HOPE IT WILL WORK U WILL GET WHAT U WANT .

TRY THIS ALL THE BEST

Read only

0 Likes
871

mehrs also already set, but no use yar.

regards

Rajaram

Read only

0 Likes
871

still am not get convinced, can anybody help me,

Regards

Rajaram

Read only

0 Likes
871

hi all

I am attaching my code also. can you help me.

&----


*& Report ZSAB_BOM

*&

&----


*&

*&

&----


REPORT ZSAB_BOM.

TABLES : vbep,VBAP,stpo,mara,stpox,STKO.

TYPE-POOLS : slis.

DATA : fcat TYPE slis_t_fieldcat_alv,

it_sort TYPE SLIS_T_SORTINFO_ALV ,

wa_sort type slis_sortinfo_alv,

ls_fcat LIKE LINE OF fcat,

fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0.

DATA :i_repid LIKE sy-repid,

gs_layout TYPE slis_layout_alv,

week type n.

*Internal Table

DATA : BEGIN OF it_final OCCURS 0,

VBELN like vbap-VBELN, "SALE ORDER

posnr LIKE vbap-POSNR, "LINE ITEM

STLNR1 like vbap-STLNR,"BOM

STLNR like STPO-STLNR, "BOM no

MATNR LIKE VBAP-MATNR, "MATERIAL

ARKTX LIKE VBAP-ARKTX, "DESC

MEINS LIKE VBAP-MEINS, "BUn

IDNRK LIKE STPO-IDNRK, "COMPONENT

werks like vbap-werks, "PLANT

MAKTX LIKE MAKT-MAKTX, "DESC

MNGKO LIKE STPO-MENGE, "CONSUMPTION

ROANZ LIKE STPO-ROANZ, "BASE QTY

MEINS1 LIKE STPO-MEINS, " Un

KWMENG LIKE VBAP-KWMENG, "ORDER QTY

END OF it_final.

data : ibom1 like stpox occurs 0 with header line,

ibom2 like stpox occurs 0 with header line.

SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: zso FOR vbep-vbeln OBLIGATORY.

SELECT-OPTIONS: zli FOR vbep-posnr.

SELECT-OPTIONS: ZPL FOR VBAP-WERKS.

PARAMETERS ZQTY TYPE STKO-BMENG.

SELECTION-SCREEN END OF BLOCK bk1.

gs_layout-colwidth_optimize = 'X'.

select vbeln

posnr

MATNR

ARKTX

STLNR

WERKS

KWMENG

MEINS

from vbap

into corresponding fields of table itab

where Vbeln in zso and

posnr in zli and

werks in zpl.

i_repid = sy-repid.

PERFORM fieldcat.

loop at itab.

if zqty is initial.

itab-meng = itab-KWMENG.

modify itab.

else.

MOVE ZQTY TO ITAB-meng.

modify itab.

endif.

endloop.

loop at itab.

clear : ibom1[].

if zqty is not initial.

itab-kwmeng = ITAB-MENG.

modify itab.

ENDIF.

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

capid = 'PP01'

datuv = sy-datum

emeng = itab-meng

mehrs = 'X'

mtnrv = itAB-matnr

stlal = '01'

werks = itAB-werks

TABLES

stb = ibom1

EXCEPTIONS

alt_not_found = 1

call_invalid = 2

material_not_found = 3

missing_authorization = 4

no_bom_found = 5

no_plant_data = 6

no_suitable_bom_found = 7

conversion_error = 8

OTHERS = 9.

IF sy-subrc <> 0.

ENDIF.

LOOP AT IBOM1.

MOVE-CORRESPONDING ITAB TO IT_FINAL.

MOVE IBOM1-IDNRK TO IT_FINAL-IDNRK.

MOVE IBOM1-OJTXP TO IT_FINAL-MAKTX.

IF IT_FINAL-KWMENG LE 0.

MOVE 0 TO IT_FINAL-MNGKO.

ELSE.

MOVE IBOM1-MNGKO TO IT_FINAL-MNGKO.

ENDIF.

MOVE IBOM1-MEINS TO IT_FINAL-MEINS1.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

wa_sort-fieldname = 'VBELN'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'POSNR'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'MATNR'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'ARKTX'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'KWMENG'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

*SORT IT_FINAL ASCENDING BY VBELN POSNR MATNR.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

is_layout = gs_layout

it_fieldcat = fcat

IT_SORT = it_sort

i_save = 'A'

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

FORM fieldcat .

MOVE sy-repid TO i_repid.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'VBELN'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sales order'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'POSNR'.

ls_fcat-outputlen = 2.

ls_fcat-seltext_m = 'Item'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MATNR'.

ls_fcat-outputlen = 20.

ls_fcat-seltext_m = 'Material'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'ARKTX'.

ls_fcat-outputlen = 30.

ls_fcat-seltext_m = 'Description'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MEINS'.

ls_fcat-outputlen = 30.

ls_fcat-seltext_m = 'BUn'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-outputlen = 5.

ls_fcat-fieldname = 'KWMENG'.

ls_fcat-seltext_m = 'Order Qty'.

endif.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'IDNRK'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_m = 'Component'.

APPEND ls_fcat TO fcat.

endform.

how can we correct this issue.

Regards

Rajram