美好的一天每個人獲取的值,顯示在Excel文件到ALV
有這事我一直試圖在ABAP行使,這是在ALV列數據更顯示從Excel文件檢索到的值一張內部桌子。我一直在試圖調試我的程序很長一段時間,我似乎無法解決這個錯誤,指出哪個是「字段符號尚未分配」,請指導我。我已經對如何解決這個短暫的轉儲錯誤做了一些研究,但是大多數在網上發佈的其他問題都是從列表字段中選擇的。我只是想知道,也許我的情況與其他人有點不同。
從excel中檢索值的函數正常工作,我在顯示它們時沒有問題。下面是我構造的代碼。
TYPE-POOLS: truxs,
slis.
TYPES: BEGIN OF t_itab,
col1 TYPE char20,
col2 TYPE char20,
col3 TYPE char20,
col4 TYPE char20,
col5 TYPE char20,
END OF t_itab,
t_it_itab type STANDARD TABLE OF t_itab.
Data: gt_tab TYPE t_it_itab,
wa_tab TYPE t_itab,
g_numrows TYPE i.
PARAMETERS: p_fname TYPE c LENGTH 50.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN on VALUE-REQUEST FOR p_fname.
DATA: l_filename LIKE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = '1000'
IMPORTING
FILE_NAME = l_filename
.
p_fname = l_filename.
START-OF-SELECTION.
DATA: lc_fname TYPE RLGRAP-FILENAME,
lt_tab TYPE TRUXS_T_TEXT_DATA.
lc_fname = p_fname.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_TAB_RAW_DATA = lt_tab
I_FILENAME = lc_fname
TABLES
I_TAB_CONVERTED_DATA = gt_tab
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
WRITE 'Error'.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
" Delete First Row/HEADER
DELETE gt_tab INDEX 1.
IF gt_tab[] is INITIAL.
MESSAGE 'No Record(s) found' TYPE 'I'.
EXIT.
ELSE.
PERFORM DisplayALv.
ENDIF.
FORM DISPLAYALV.
DATA: l_it_fcat type SLIS_T_FIELDCAT_ALV,
l_wa_fcat TYPE SLIS_FIELDCAT_ALV.
l_wa_fcat-fieldname = 'col1'.
l_wa_fcat-ref_tabname = 'gt_tab'.
l_wa_fcat-reptext_ddic = 'Column 1'.
l_wa_fcat-outputlen = '30'.
APPEND l_wa_fcat TO l_it_fcat.
CLEAR l_wa_fcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT = l_it_fcat
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = gt_tab[].
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC .
ENDIF.
ENDFORM.
在我的程序中的任何提示,技巧和建議將被高度追捧。由於提前
您好,先生謝謝您的回覆,並認真對待這一切。但你是否介意解釋我,你怎麼知道「l_wa_fcat-fieldname」是什麼?是否總是需要用大寫字母?最後的「l_wa_fcat-seltext_s」是什麼意思?謝謝你,上帝保佑 – Kid
fieldname包含本地數據類型t_itab中的字段名稱。在運行時,無論您如何在代碼中聲明它們,這些字段名都是大寫字母。 Seltext用於字段標籤。 –
恩,謝謝先生,對我的啓發..但是有一個最後一個問題,我想提出,這是..「l_wa_fcat-inttype」的使用,我只能用這個時,我應該是字段名不是類型從一張桌子? – Kid