2012-02-08 370 views
2

このプログラムを実行すると、短いダンプ(フィールドシンボルはまだ割り当てられていません)が表示されます。 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. 

答えて

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

@ジャガーありがとうございました。 :) –

+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. 
関連する問題