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.

Former Member
0 Likes
1,319

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,299

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

13 REPLIES 13
Read only

Former Member
0 Likes
1,300

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

Read only

0 Likes
1,299

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.

Read only

0 Likes
1,299

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

Read only

0 Likes
1,299

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.

Read only

0 Likes
1,299

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

Read only

Former Member
0 Likes
1,299

hi check this..

case sy-ucomm.

when 'DATA'.

when 'BACK'.

leave to screen 0 .

endcase.

Read only

Former Member
0 Likes
1,299

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

Read only

Former Member
0 Likes
1,299

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.

Read only

Former Member
0 Likes
1,299

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.

Read only

0 Likes
1,299

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

Read only

Former Member
0 Likes
1,299

Hi,

Please check your i_sort1 table.

Read only

Former Member
0 Likes
1,299

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.

Read only

Former Member
0 Likes
1,299

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