2008 Jul 09 10:11 AM
Hi Experts,
In My alv Grid. I am getting the out put but when am going back its going to DUMP saying that "no field catalog raised" so what might be the problem and how to solve it.
Correct answers will be appreiciated.
Regards,
Sunita.
2008 Jul 09 10:15 AM
Hi,
Can u provide me the field catalog Code.
More over Check that ur passing the CALL_BACK _PROGRAM name in the Function module.
Revert Back,
Regards,
Naveen
Hi,
Can u provide me the field catalog Code.
More over Check that ur passing the CALL_BACK _PROGRAM name in the Function module.
Revert Back,
Regards,
Naveen
2008 Jul 09 10:15 AM
Hi,
Can u provide me the field catalog Code.
More over Check that ur passing the CALL_BACK _PROGRAM name in the Function module.
Revert Back,
Regards,
Naveen
2008 Jul 09 10:25 AM
Hi ,
Yeah see my code and let me know wat mistake am doing.
FORM fill_fieldcat_sum.
TYPES: BEGIN OF i_output ,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
dmbtr TYPE bsik-dmbtr,
current TYPE bsik-dmbtr,
d30 TYPE bsik-dmbtr,
d60 TYPE bsik-dmbtr,
d90 TYPE bsik-dmbtr,
d120 TYPE bsik-dmbtr,
d180 TYPE bsik-dmbtr,
d240 TYPE bsik-dmbtr,
d360 TYPE bsik-dmbtr,
da365 TYPE bsik-dmbtr,
END OF i_output.
DATA: tg_data TYPE STANDARD TABLE OF i_output,
wa_data TYPE i_output.
DATA: tp_dmbtr LIKE bsid-dmbtr.
data:gv_repid like sy-repid.
LOOP AT gt_final INTO wa_final.
* tp_dmbtr = tp_dmbtr + wa_final-dmbtr.
MOVE-CORRESPONDING wa_final TO wa_data.
COLLECT wa_data INTO tg_data.
AT END OF lifnr.
SKIP.
ENDAT.
* APPEND pt_data.
ENDLOOP.
LOOP AT tg_data INTO wa_data.
wa_fieldcat1-row_pos = '1'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Number'.
wa_fieldcat1-fieldname = 'LIFNR'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '2'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Name'.
wa_fieldcat1-fieldname = 'NAME1'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '3'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Total In Reporting Currency'.
wa_fieldcat1-fieldname = 'DMBTR'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '4'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'CURRENT'.
wa_fieldcat1-fieldname = 'CURRENT'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '5'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '1-30 Days'.
wa_fieldcat1-fieldname = 'D30'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '6'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '31-60 Days'.
wa_fieldcat1-fieldname = 'D60'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '7'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '61-90 Days'.
wa_fieldcat1-fieldname = 'D90'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '8'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '91-120 Days'.
wa_fieldcat1-fieldname = 'D120'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '9'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '121-180 Days'.
wa_fieldcat1-fieldname = 'D180'.
* wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '10'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '181-240 Days'.
wa_fieldcat1-fieldname = 'D240'.
* wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '11'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '241-360 Days'.
wa_fieldcat1-fieldname = 'D360'.
* wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '12'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Over 360 Days'.
wa_fieldcat1-fieldname = 'DA365'.
* wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gv_repid
is_layout = i_layout1
it_fieldcat = i_fieldcat1[]
it_sort = i_sort1
* i_default = 'X'
* i_save = 'A'
* is_variant = i_variant
* it_events = i_events[]
* is_print = i_print
TABLES
t_outtab = tg_data[].correct answers will be appriciated.
regards,
Sunita.
2008 Jul 09 10:29 AM
Hi,
Delete the LOOP..Endloop in which field catalog is defined.
LOOP AT tg_data INTO wa_data. <----
Delete this
wa_fieldcat1-row_pos = '1'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Number'.
wa_fieldcat1-fieldname = 'LIFNR'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '2'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Name'.
wa_fieldcat1-fieldname = 'NAME1'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '3'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Total In Reporting Currency'.
wa_fieldcat1-fieldname = 'DMBTR'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '4'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'CURRENT'.
wa_fieldcat1-fieldname = 'CURRENT'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '5'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '1-30 Days'.
wa_fieldcat1-fieldname = 'D30'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '6'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '31-60 Days'.
wa_fieldcat1-fieldname = 'D60'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '7'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '61-90 Days'.
wa_fieldcat1-fieldname = 'D90'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '8'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '91-120 Days'.
wa_fieldcat1-fieldname = 'D120'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '9'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '121-180 Days'.
wa_fieldcat1-fieldname = 'D180'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '10'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '181-240 Days'.
wa_fieldcat1-fieldname = 'D240'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-row_pos = '11'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = '241-360 Days'.
wa_fieldcat1-fieldname = 'D360'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat1-row_pos = '12'.
wa_fieldcat1-tabname = 'I_OUTPUT'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Over 360 Days'.
wa_fieldcat1-fieldname = 'DA365'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
ENDLOOP. <----
Delete this
Revert back if still any issues,
Regards,
Naveen
2008 Jul 09 10:41 AM
Hi Naveen,
Thanks for your answer. but its coming back to square 1. still its going to DUMP. Saying no fieldcatalog raised....
Best Regards,
Sunita.
2008 Jul 09 10:49 AM
Hey,
Apart from loop,
U did a mistahe at the ROW_POS.
Mention COL_POS instaed of ROW_POS in field cataolg
Revrt back ,
regards,
Naveen
2008 Jul 09 10:16 AM
hi check this..
case sy-ucomm.
when 'DATA'.
when 'BACK'.
leave to screen 0 .
endcase.
2008 Jul 09 10:16 AM
There is some problem with your fieldcatalog. Some where you are clearing the fieldcatalog.
check for clear fieldcatalog. or refresh fieldcatalog.
show me your coding..
2008 Jul 09 10:17 AM
Hi,
Please check whether you have used I_callback_program.
gv_repid = sy-repid.
" ALV export parameters
i_callback_program = gv_repid
Thanks,
Sriram Ponna.
2008 Jul 09 11:08 AM
Hi Sunita,
*Do not put Field catalog code in the loop. *
Field catalog is used to assign the fields (i.e. column names -> fieldcatalog-fieldname, length of the column name -> fieldcatlog-seltext_m, reference internal table from which you are displaying that particular column name ->fieldcatlog-tabname in order to display the columns at the output.
1. First remove the
LOOP AT tg_data INTO wa_data.
ENDLOOP.
*This fieldcatalog code should not be in any loop. *
WHatever you want to display, the internal table data, that internal table should be given to FM 'REUSE_ALV_GRID_DISPLAY'.
2. Remove wa_fieldcat1-row_pos for each field.
Instead of ROW_POS use COL_POS.
3. For each field reference table name should be TG_DATA.
for e.g.
Make the note of changes in BOLD.
wa_fieldcat1-col_pos = '12'.*
wa_fieldcat1-tabname = 'TG_DATA'.* "t_output_provgr
wa_fieldcat1-seltext_m = 'Over 360 Days'.
wa_fieldcat1-fieldname = 'DA365'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
Make the respective changes for each and every field in Fieldcatalog.
2008 Jul 09 11:29 AM
Hi Kuldeep / naveen,
Yeah the problem solved but now after the output... when i go back its showing blankl screen.this is the new problem now.
regards,
Sunita
2008 Jul 09 12:29 PM
2008 Jul 09 12:30 PM
Hi Sunita,
Please check...
TOP-OF-PAGE event might get executed twice...the same thing happened with me
That's why blank screen appears once you press BACK button.
2008 Jul 09 12:32 PM
wht is the code u have in BACK...
FORM user_command USING r_ucomm TYPE sy-ucomm "#EC CALLED
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
ENDFORM. "user_command
and check
DATA l_repid TYPE sy-repid.
l_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = l_repid i_callback_pf_status_set = 'STATUS_P'
i_callback_user_command = 'USER_COMMAND'
is_layout = t_layout
it_fieldcat = t_fieldcat[]
it_events = t_events[]
TABLES
t_outtab = t_alv1[].
Edited by: Sumi Vasu on Jul 9, 2008 1:32 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |