2008 Aug 14 5:09 AM
encounter a runtime error.What is the problem.
REPORT YTEST27.
type-pools:slis.
data wa_alv_field type slis_fieldcat_alv.
data wa_alv_fieldcat type slis_t_fieldcat_alv.
data wa_spfli like table of spfli with header line.
select * into table wa_spfli from spfli.
wa_alv_field-col_pos = 1.
wa_alv_field-fieldname = 'CARRDI'.
wa_alv_field-seltext_m = '航线承运人'.
append wa_alv_field to wa_alv_fieldcat.
wa_alv_field-col_pos = 2.
wa_alv_field-fieldname = 'CONNID'.
wa_alv_field-seltext_m = '航班连接'.
append wa_alv_field to wa_alv_fieldcat.
wa_alv_field-col_pos = 3.
wa_alv_field-fieldname = 'CITYFROM'.
wa_alv_field-seltext_m = '起飞城市'.
append wa_alv_field to wa_alv_fieldcat.
wa_alv_field-col_pos = 4.
wa_alv_field-fieldname = 'CITYTO'.
wa_alv_field-seltext_m = '起飞城市'.
append wa_alv_field to wa_alv_fieldcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = wa_alv_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = wa_spfli
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.
2008 Aug 14 6:24 AM
Hello Alex
There is hardly any good reason why you should create the fieldcatalog manually. One obvious mistake is the misspelled fieldname for CARRID (CARRDI).
Instead, use the fm REUSE_ALV_FIELDCATALOG_MERGE to create the fieldcatalog automatically.
Final remark: If you do not have good reason to still use this stone-age ALV programming (SLIS based) then move at least to fm's REUSE_ALV_GRID_DISPLAY_LVC and LVC_FIELDCATALOG_MERGE.
Regards
Uwe
Hello Alex
There is hardly any good reason why you should create the fieldcatalog manually. One obvious mistake is the misspelled fieldname for CARRID (CARRDI).
Instead, use the fm REUSE_ALV_FIELDCATALOG_MERGE to create the fieldcatalog automatically.
Final remark: If you do not have good reason to still use this stone-age ALV programming (SLIS based) then move at least to fm's REUSE_ALV_GRID_DISPLAY_LVC and LVC_FIELDCATALOG_MERGE.
Regards
Uwe
2008 Aug 14 5:13 AM
2008 Aug 14 5:17 AM
2008 Aug 14 5:15 AM
>
> encounter a runtime error.What is the problem.
>
> REPORT YTEST27.
>
> type-pools:slis.
>
> data wa_alv_field type slis_fieldcat_alv.
>
> data wa_alv_fieldcat type slis_t_fieldcat_alv.
>
> data wa_spfli like table of spfli with header line.
>
> select * into table wa_spfli from spfli.
>
> wa_alv_field-col_pos = 1.
> wa_alv_field-fieldname = 'CARRDI'.
> wa_alv_field-seltext_m = '航线承运人'.
> append wa_alv_field to wa_alv_fieldcat.
>
> wa_alv_field-col_pos = 2.
> wa_alv_field-fieldname = 'CONNID'.
> wa_alv_field-seltext_m = '航班连接'.
> append wa_alv_field to wa_alv_fieldcat.
>
> wa_alv_field-col_pos = 3.
> wa_alv_field-fieldname = 'CITYFROM'.
> wa_alv_field-seltext_m = '起飞城市'.
> append wa_alv_field to wa_alv_fieldcat.
>
> wa_alv_field-col_pos = 4.
> wa_alv_field-fieldname = 'CITYTO'.
> wa_alv_field-seltext_m = '起飞城市'.
> append wa_alv_field to wa_alv_fieldcat.
>
> CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
> EXPORTING
> * I_INTERFACE_CHECK = ' '
> * I_BYPASSING_BUFFER =
> * I_BUFFER_ACTIVE = ' '
> * I_CALLBACK_PROGRAM = ' '
> * I_CALLBACK_PF_STATUS_SET = ' '
> * I_CALLBACK_USER_COMMAND = ' '
> * I_STRUCTURE_NAME =
> * IS_LAYOUT =
> IT_FIELDCAT = wa_alv_fieldcat
> * IT_EXCLUDING =
> * IT_SPECIAL_GROUPS =
> * IT_SORT =
> * IT_FILTER =
> * IS_SEL_HIDE =
> * I_DEFAULT = 'X'
> * I_SAVE = ' '
> * IS_VARIANT =
> * IT_EVENTS =
> * IT_EVENT_EXIT =
> * IS_PRINT =
> * IS_REPREP_ID =
> * I_SCREEN_START_COLUMN = 0
> * I_SCREEN_START_LINE = 0
> * I_SCREEN_END_COLUMN = 0
> * I_SCREEN_END_LINE = 0
> * IR_SALV_LIST_ADAPTER =
> * IT_EXCEPT_QINFO =
> * I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
> * IMPORTING
> * E_EXIT_CAUSED_BY_CALLER =
> * ES_EXIT_CAUSED_BY_USER =
> TABLES
> T_OUTTAB = wa_spfli
> * 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.
Hi
*"Table declarations...................................................
TABLES:
sflight.
*"Type pools declarations..............................................
TYPE-POOLS:
slis.
*"Data declarations...................................................
DATA:
BEGIN OF fs_sflight,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
END OF fs_sflight.
*"Data declarations...................................................
DATA:
t_fieldcat TYPE slis_t_fieldcat_alv,
l_fieldcat LIKE LINE OF t_fieldcat.
"----
Internal table to hold flight schedule information *
"----
DATA:
t_sflight LIKE
STANDARD TABLE OF fs_sflight.
PERFORM t_fieldcat.
PERFORM get_sflight_details.
&----
*& Form get_sflight_details
----
This subroutine retrieves necessary data from sflight and to display
flight details *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM get_sflight_details.
SELECT carrid
connid
fldate
seatsmax
seatsocc
FROM sflight
INTO TABLE t_sflight.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = t_fieldcat
TABLES
t_outtab = t_sflight
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. " get-sflight_details.
&----
*& Form t_fieldcat
----
This subroutine fill necessary data into t_fieldcat *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM t_fieldcat .
CLEAR t_fieldcat.
PERFORM fill_field USING 'CARRID' 'carrid'.
PERFORM fill_field USING 'CONNID' 'connid'.
PERFORM fill_field USING 'FLDATE' 'fldate'.
PERFORM fill_field USING 'SEATSMAX' 'seatsmax'.
PERFORM fill_field USING 'SEATSOCC' 'seatsocc'.
ENDFORM. " t_fieldcat
&----
*& Form fill_field
----
This subroutine fill necessary data into l_fieldcat *
----
-->P_fieldname
-->P_seltext
----
FORM fill_field USING p_fieldname
p_seltext.
l_fieldcat-fieldname = p_fieldname.
l_fieldcat-tabname = 'T_SPFLI'.
l_fieldcat-seltext_m = p_seltext.
APPEND l_fieldcat TO t_fieldcat.
CLEAR l_fieldcat.
ENDFORM. " fill_field
Regards,
Sravanthi
2008 Aug 14 5:19 AM
hello
pass internal table to FM
wa_spfli[]and also check your fieldcatalog must be same as structure of the internal table wa_spfli .
define internal table like this as per yuor fieldcatalog
data: begin of wa_spfli occurs 0,
carrid like spfli-carrid,
connid like spfli-connid,
cityfrom like spfli-cityfrom,
cityto like spfli-cityto,
end of wa_spfli.
Thanks
Anirudh
Edited by: ANIRUDH SAINI on Aug 14, 2008 6:25 AM
2008 Aug 14 5:38 AM
i feel there are two changes one
wa_alv_field-col_pos = 4.
wa_alv_field-fieldname = 'CITYTO'.
wa_alv_field-tabname = 'WA_SPFLI' "<-----Inetrnal Tablename
wa_alv_field-seltext_m = 'u8D77u98DEu57CEu5E02'.
append wa_alv_field to wa_alv_fieldcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid "<---------Use this
IT_FIELDCAT = wa_alv_fieldcat
TABLES
T_OUTTAB = wa_spfli
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
2008 Aug 14 6:24 AM
Hello Alex
There is hardly any good reason why you should create the fieldcatalog manually. One obvious mistake is the misspelled fieldname for CARRID (CARRDI).
Instead, use the fm REUSE_ALV_FIELDCATALOG_MERGE to create the fieldcatalog automatically.
Final remark: If you do not have good reason to still use this stone-age ALV programming (SLIS based) then move at least to fm's REUSE_ALV_GRID_DISPLAY_LVC and LVC_FIELDCATALOG_MERGE.
Regards
Uwe
2008 Aug 14 6:41 AM
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |