[英]short Dump: Field symbol has not yet been assigned
運行此程序時,我得到一個簡短的轉儲(尚未分配字段符號)。 我知道當我沒有正確填寫t_fieldcat
時,我可能會收到此錯誤。 據我所知,我正確地填寫了目錄。
我不知道問題出在哪里..請幫助。
REPORT Y_ALV1.
type-pools slis.
tables: scarr.
data:
t_scarr type table of scarr,
t_fieldcat type slis_t_fieldcat_alv.
data:
wa_fieldcat type slis_fieldcat_alv.
select-options:
s_carrid for scarr-carrid.
start-of-selection.
select * into table t_scarr from scarr where carrid in s_carrid.
if sy-subrc ne 0.
leave list-processing.
endif.
define fill_fieldcatalog.
wa_fieldcat-col_pos = &1.
wa_fieldcat-fieldname = &2.
wa_fieldcat-tabname = &3.
wa_fieldcat-outputlen = &4.
append wa_fieldcat to t_fieldcat.
end-of-definition.
fill_fieldcatalog 1 'carrid' 't_scarr' 10.
fill_fieldcatalog 2 'carrname' 't_scarr' 10.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
IT_FIELDCAT = t_fieldcat
TABLES
T_OUTTAB = t_scarr
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.
不幸的是,這里的情況確實很重要。 更改以下行:
fill_fieldcatalog 1 'carrid' 't_scarr' 10.
fill_fieldcatalog 2 'carrname' 't_scarr' 10.
至
fill_fieldcatalog 1 'CARRID' 't_scarr' 10.
fill_fieldcatalog 2 'CARRNAME' 't_scarr' 10.
另一種選擇是將宏轉換為大寫。 這樣,您永遠不會在調用時犯錯。
wa_fieldcat-fieldname = &2.
TRANSLATE wa_fieldcat-fieldname TO UPPER CASE.
wa_fieldcat-tabname = &3.
TRANSLATE wa_fieldcat-tabname TO UPPER CASE.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.