2007 Apr 02 8:04 AM
HI,
PLZ help me .
By using this code I select data from TXT file and insert data in CS13 transaction then I want to show each material which present in TXT file as ALV BLOCK DISPLAY.
Suppose txt file contain four material so report will show 4 list block .means data of every material showing in different blocks in the report.
Code which I am using showing data for last item from txt file in one block and other items showing when I click back button .
i am using below codes..........
&----
*& Report ZCS13 *
*& *
&----
*& *
*& *
&----
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
&----
Declaration of parameters
&----
*SELECTION-SCREEN BEGIN OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b2.
*
*DATA :anr_datuv LIKE aenr-datuv.
*SELECTION-SCREEN BEGIN OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s03 .
*SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN END OF BLOCK b3.
*
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS pm_aennr LIKE aenr-aennr.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_assd AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
perform fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
&----
*& Form EXPLODE_ASSEMBLY
&----
text
----
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
&----
*& Form display_grid
&----
text
----
--> p1 text
<-- p2 text
----
form display_grid .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZCS13'
i_callback_top_of_page = 'TOP_OF_PAGE_GRID'
is_layout = gs_layout
it_fieldcat = fieldcat
IT_SORT = GT_SORT[]
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = it_stb
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.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZALVTOTAL'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001)
IT_EXCLUDING =
.
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = i_fieldcat
i_tabname = 'IT_TAB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_tab[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
endform. " display_grid
&----
*& Form fldcat
&----
text
----
--> p1 text
<-- p2 text
----
form fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = 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. " fldcat
2007 Apr 02 11:51 AM
Hi Rakesh,
A very small mistake dude.
This problem is b'cos you have used all three FMs REUSE_ALV_BLOCK_LIST_INIT, REUSE_ALV_BLOCK_LIST_APPEND and REUSE_ALV_BLOCK_LIST_DISPLAY in the loop itself.
Try doing this -
1. Use <b>REUSE_ALV_BLOCK_LIST_INIT before</b> the loop
2. Use <b>REUSE_ALV_BLOCK_LIST_APPEND in</b> the loop
3. Use <b>REUSE_ALV_BLOCK_LIST_DISPLAY after</b> the loop
Regards,
Manish Joshi
Don't tell me, you don't know how to award points !!!
HI,
PLZ help me .
By using this code I select data from TXT file and insert data in CS13 transaction then I want to show each material which present in TXT file as ALV BLOCK DISPLAY.
Suppose txt file contain four material so report will show 4 list block .means data of every material showing in different blocks in the report.
Code which I am using showing data for last item from txt file in one block and other items showing when I click back button .
i am using below codes..........
&----
*& Report ZCS13 *
*& *
&----
*& *
*& *
&----
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
&----
Declaration of parameters
&----
*SELECTION-SCREEN BEGIN OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b2.
*
*DATA :anr_datuv LIKE aenr-datuv.
*SELECTION-SCREEN BEGIN OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s03 .
*SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN END OF BLOCK b3.
*
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS pm_aennr LIKE aenr-aennr.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_assd AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
perform fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
&----
*& Form EXPLODE_ASSEMBLY
&----
text
----
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
&----
*& Form display_grid
&----
text
----
--> p1 text
<-- p2 text
----
form display_grid .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZCS13'
i_callback_top_of_page = 'TOP_OF_PAGE_GRID'
is_layout = gs_layout
it_fieldcat = fieldcat
IT_SORT = GT_SORT[]
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = it_stb
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.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZALVTOTAL'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001)
IT_EXCLUDING =
.
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = i_fieldcat
i_tabname = 'IT_TAB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_tab[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
endform. " display_grid
&----
*& Form fldcat
&----
text
----
--> p1 text
<-- p2 text
----
form fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = 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. " fldcat
2007 Apr 02 11:51 AM
Hi Rakesh,
A very small mistake dude.
This problem is b'cos you have used all three FMs REUSE_ALV_BLOCK_LIST_INIT, REUSE_ALV_BLOCK_LIST_APPEND and REUSE_ALV_BLOCK_LIST_DISPLAY in the loop itself.
Try doing this -
1. Use <b>REUSE_ALV_BLOCK_LIST_INIT before</b> the loop
2. Use <b>REUSE_ALV_BLOCK_LIST_APPEND in</b> the loop
3. Use <b>REUSE_ALV_BLOCK_LIST_DISPLAY after</b> the loop
Regards,
Manish Joshi
Don't tell me, you don't know how to award points !!!
2007 Apr 02 12:30 PM
Hi Manish,
Thanks for your replying .I make changes according to you .now its giving 4 blocks for 4 materials but data related to that material is not showing.
Plz give needful suggestions
Regards,
Rakesh
2007 Apr 02 12:39 PM
Hi,
fill the internal tables itab and stab before calling the FM REUSE_ALV_BLOCK_LIST_APPEND.
regards,
bharat.
2007 Apr 02 12:54 PM
Hi ,
plz check the below codeand suggest me why it not showing data.....
i make changes according to you ...
waiting for your reply
&----
*& Report ZCS13 *
*& *
&----
*& *
*& *
&----
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
&----
Declaration of parameters
&----
*SELECTION-SCREEN BEGIN OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b2.
*
*DATA :anr_datuv LIKE aenr-datuv.
*SELECTION-SCREEN BEGIN OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s03 .
*SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN END OF BLOCK b3.
*
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS pm_aennr LIKE aenr-aennr.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_assd AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
.
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZCS13'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001).
IT_EXCLUDING =.
DATA :int1(10) .
PERFORM fldcat.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
PERFORM fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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 EXPLODE_ASSEMBLY
&----
text
----
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
&----
*& Form display_grid
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_grid .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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. " display_grid
&----
*& Form fldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = 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. " fldcat
2007 Apr 02 1:05 PM
Hi Rakesh,
Check if data is available in the internal table
Check if REUSE_ALV_FIELDCATALOG_MERGE gives you fieldcat entries properly
And, finally dont comment parameter I_tabname in REUSE_ALV_BLOCK_LIST_APPEND you don't need it.
Regards,
Manish Joshi
2007 Apr 03 9:55 AM
Hi Manish,
I make changes according to your guidance but report showing data only for last material which present in the table it_matmaster in every block.
Please guide me what is the problem.
I am pasting changed code for you......
&----
*& Report ZCS13 *
*& *
&----
*& *
*& *
&----
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv ,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
.
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZCS13'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = ''
IT_EXCLUDING =
.
PERFORM fldcat.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM fldcat.
PERFORM append_blocklist.
PERFORM alv_display_grid.
ENDLOOP.
PERFORM alv_display_grid.
&----
*& Form EXPLODE_ASSEMBLY
&----
text
----
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
&----
*& Form fldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fldcat .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
i_internal_tabname = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = 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. " fldcat
&----
*& Form alv_display_grid
&----
text
----
--> p1 text
<-- p2 text
----
FORM alv_display_grid .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
ENDFORM. " alv_display_grid
&----
*& Form append_blocklist
&----
text
----
--> p1 text
<-- p2 text
----
FORM append_blocklist .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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. " append_blocklist
2007 Apr 03 10:26 AM
Hi Rakesh,
This is because you are sharing same output table for all Blocks (i.e. Materials).
Whereas you need to have separate tables for all blocks.
Try creating a internal table of table like this:-
types: begin of ty_materialinfo,
matnr.... and so on
end of ty_materialinfo.
types ty_t_materialinfo type table of ty_materialinfo.
types: ty_t_output type table of ty_t_materialinfo.
data: lt_output_tables type ty_t_output,
ls_output_tables like line of lt_output_tables,
lr_data type ref to data.
field-symbols: <lt_materialinfo> type ty_t_materialinfo.
<< init block list>>
LOOP AT materials.
create data lr_data type ty_t_materialinfo.
assign lr_data->* to <lt_materialinfo>.
<<fetch material data into <lt_materialinfo> >>
<<append alv block for table <lt_materialinfo> >>
ls_output_table = <lt_materialinfo>.
append ls_output_table to lt_output_table.
ENDLOOP.
<<display block list>>
I hope you get what I meant.
Regards,
Manish Joshi
2007 Apr 03 10:52 AM
Hi Manish,
Thanks for your response.
I am not getting you .please tell at the time of loop in table it_matmaster
How I can create different internal table for each material no.
This is my code in loop.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZCS13'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = ''
IT_EXCLUDING =
.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM fldcat.
PERFORM append_blocklist.
PERFORM alv_display_grid.
ENDLOOP.
PERFORM alv_display_grid.
By using PERFORM explode_assembly I fetch data using 'CS_BOM_EXPL_MAT_V2'
Function module.
Then by using PERFORM fldcat. I append values in fieldcat using REUSE_ALV_FIELDCATALOG_MERGE function module.
Then by using PERFORM append_blocklist.i append values in block list using REUSE_ALV_BLOCK_LIST_APPEND function module.
<b>
In which module or where I have to make changes</b>
2007 Apr 03 11:02 AM
Hi Rakesh,
types: ty_zstpox type table of zstpox.
data: lr_data type ref to data.
field-symbols:
<lt_zstpox> type table of zstpox.
LOOP AT it_matmaster.
create data lr_data type ty_zstpox.
assign lr_data->* to <lt_zstpox>.
<<<< Use <lt_zstpox> wherever you are using lt_stb >>>>
PERFORM explode_assembly.
PERFORM fldcat.
PERFORM append_blocklist.
PERFORM alv_display_grid.
ENDLOOP.
Regards,
Manish Joshi
2007 Apr 03 12:20 PM
Hi Manish,
This is not working when i replacing table it_sbt by <lt_zstpox>
it gives this error: "<LT_ZSTPOX>" is not an internal table - the "OCCURS n" specification is missing.
2007 Apr 04 12:31 PM
Hi Manish ,
Still I am facing the same error .can you please help me how to resolve it.
Regards
Rakesh
2007 Apr 05 5:22 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |