‎2008 Mar 19 4:38 AM
Hi All,
I m getting a short dump while trying to execute an ALV.
The dump exception is of type
CX_SY_DYN_CALL_ILLEGAL_TYPE class.
The message displayed is : " Call to form 'GI_FIELDCAT' is incorrect .The actual parameter in PERFORM is different data type than requested for form GI_FIELDCAT " .
The part of programe included is as follows:
FORM build_fieldcat .
PERFORM gi_fieldcat USING 'MBLNR' text-014 '1' '20'.
PERFORM gi_fieldcat USING 'ZEILE' text-005 '2' '4'.
PERFORM gi_fieldcat USING 'MATNR' text-006 '3' '18'.
PERFORM gi_fieldcat USING 'MAKTX' text-028 '4' '40'.
PERFORM gi_fieldcat USING 'MATKL' text-029 '5' '40'.
PERFORM gi_fieldcat USING 'BUDAT' text-027 '6' '10'.
PERFORM gi_fieldcat USING 'MENGE' text-026 '7' '9'.
PERFORM gi_fieldcat USING 'DMBTR' text-025 '8' '13'.
PERFORM gi_fieldcat USING 'WAERS' text-011 '9' '5'.
PERFORM gi_fieldcat USING 'RSNUM' text-012 '10' '10'.
PERFORM gi_fieldcat USING 'PSPHI' text-013 '11' '10'.
ENDFORM. " build_fieldcat
FORM gi_fieldcat USING fieldname TYPE slis_fieldcat_alv-fieldname
colmname TYPE slis_fieldcat_alv-seltext_m
colmpos TYPE slis_fieldcat_alv-col_pos
outputlen TYPE slis_fieldcat_alv-outputlen.
wa_fieldcat-fieldname = fieldname.
wa_fieldcat-seltext_m = colmname.
wa_fieldcat-col_pos = colmpos.
wa_fieldcat-outputlen = outputlen.
wa_fieldcat-
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " gi_fieldcat
Can ayone gimmi a solution for the same.
‎2008 Mar 19 4:41 AM
Hi,
u need to have another parameter tablename.
FORM gi_fieldcat USING fieldname TYPE slis_fieldcat_alv-fieldname
tabname type slis_tabname
colmname TYPE slis_fieldcat_alv-seltext_m
colmpos TYPE slis_fieldcat_alv-col_pos
outputlen TYPE slis_fieldcat_alv-outputlen.
wa_fieldcat-fieldname = fieldname.
wa_fieldcat-fieldname = tabname.
wa_fieldcat-seltext_m = colmname.
wa_fieldcat-col_pos = colmpos.
wa_fieldcat-outputlen = outputlen.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " gi_fieldcat
rgds,
bharat.
‎2008 Mar 19 4:42 AM
Hi,
You can use type any.
FORM gi_fieldcat USING fieldname TYPE any.
colmname TYPE slis_fieldcat_alv-seltext_m
colmpos TYPE slis_fieldcat_alv-col_pos
outputlen TYPE slis_fieldcat_alv-outputlen.
Hope this will solve the problem.
Regards'
Shibin
‎2008 Mar 19 4:42 AM
Hi,
Try to change ur code like the below.
Attached: sample code
Building field catalog
PERFORM modify_catlog USING:
'GT_OUTPUT' 'AUART' text-t02 '1',
'GT_OUTPUT' 'KUNNR' text-t03 '2',
'GT_OUTPUT' 'NAME' text-t04 '3',
'GT_OUTPUT' 'KWMENG' text-t05 '4',
'GT_OUTPUT' 'VRKME' text-t06 '5',
'GT_OUTPUT' 'LFIMG' text-t07 '6',
'GT_OUTPUT' 'GEWEI' text-t08 '7',
'GT_OUTPUT' 'VOLUM' text-t09 '8',
'GT_OUTPUT' 'VOLEH' text-t10 '9',
'GT_OUTPUT' 'BRGEW' text-t11 '10',
'GT_OUTPUT' 'UOMGW' text-t12 '11',
'GT_OUTPUT' 'VARCE' text-t13 '12',
'GT_OUTPUT' 'UOMVR' text-t14 '13'.
FORM modify_catlog USING pa_tabname TYPE string
pa_field TYPE string
pa_text TYPE string
pa_pos TYPE string.
CLEAR gs_fieldcatalog.
*Modifying field catalog
gs_fieldcatalog-col_pos = pa_pos.
gs_fieldcatalog-fieldname = pa_field.
gs_fieldcatalog-tabname = pa_tabname.
gs_fieldcatalog-seltext_m = pa_text.
APPEND gs_fieldcatalog TO gt_fieldcatalog.
CLEAR gs_fieldcatalog.
l_repid = sy-repid.
To call function to display ALV output
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
it_fieldcat = gt_fieldcatalog
TABLES
t_outtab = gt_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e000 WITH text-t16.
ENDIF.
Reward if helpful.
Regards,
Ramya
‎2008 Mar 19 4:45 AM
Hi,
Try not giving any type definition in the form gi_fieldcat.
‎2008 Mar 19 4:45 AM
Hi,
There is data type conflict in PERFORM and FORM statement.
Declare This field as
DATA : fieldname(20),
colmname(20) ,
colmpos TYPE I,
outputlen TYPE I.
FORM gi_fieldcat USING fieldname
colmname
colmpos
outputlen.
ENDFORM.