Abap 短转储:尚未分配字段符号
当我运行此程序时,我得到一个短转储(字段符号尚未分配)。 我知道如果我没有正确填写Abap 短转储:尚未分配字段符号,abap,Abap,当我运行此程序时,我得到一个短转储(字段符号尚未分配)。 我知道如果我没有正确填写t\u 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_field
t\u 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.
报告Y_ALV1。
键入池SLI。
桌子:斯卡尔。
数据:
t_SCAR的SCAR类型表,
t_fieldcat型SLI_t_fieldcat_alv。
数据:
wa_fieldcat类型slis_fieldcat_alv。
选择选项:
s_carrid代表Scar carrid。
开始选择。
从s_carrid中carrid所在的scarr中选择*进入表t_scarr。
如果sy subrc ne为0。
休假名单处理。
恩迪夫。
定义填充字段目录。
wa_fieldcat-col_pos=&1。
wa_fieldcat-fieldname=&2。
wa_fieldcat-tabname=&3。
wa_fieldcat-outputlen=&4。
将wa_fieldcat追加到t_fieldcat。
定义结束。
填充字段目录1“carrid”t\u scarr“10。
填写字段目录2“carrname”t\u scarr“10”。
调用函数“重用\u ALV\u列表\u显示”
出口
IT_FIELDCAT=t_FIELDCAT
桌子
T_OUTTAB=T_scar
例外情况
程序错误=1
其他=2
.
如果SY-SUBRC为0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
使用SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
恩迪夫。
不幸的是,这个案例在这里确实很重要。更改以下行:
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.
我想知道,将表名也大写可能是一种好的做法。@tomdemyt谢谢您的建议。
wa_fieldcat-fieldname = &2.
TRANSLATE wa_fieldcat-fieldname TO UPPER CASE.
wa_fieldcat-tabname = &3.
TRANSLATE wa_fieldcat-tabname TO UPPER CASE.