2012-02-08 2 views
2

Я получаю короткий дамп (символ поля еще не назначен), когда я запускаю эту программу. Я знаю, что я могу получить эту ошибку, если я не заполняю t_fieldcat правильно. Насколько я знаю, я правильно заполнил каталог полей.short Дамп: символ поля еще не присвоен

Я не могу понять, где проблема. Пожалуйста, помогите.

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. 

ответ

4

К сожалению, этот вопрос имеет значение. Измените следующие строки:

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

Удивительно, но, вероятно, хорошая практика также в верхнем регистре имя таблицы. – tomdemuyt

+0

@jagger Спасибо, сработало. :) –

+0

@tomdemuyt Спасибо за предложение. –

1

Другой вариант должен был бы сделать перевод в верхний регистр в макрос. Таким образом, вы никогда не можете ошибиться при вызове.

wa_fieldcat-fieldname = &2. 
TRANSLATE wa_fieldcat-fieldname TO UPPER CASE. 
wa_fieldcat-tabname = &3. 
TRANSLATE wa_fieldcat-tabname TO UPPER CASE. 

 Смежные вопросы

  • Нет связанных вопросов^_^