2016-08-02 23 views
0

我對ABAP相當陌生,並且寫了一條SQL語句將一個項目列表返回給ALV。但是,當我執行該程序時,它什麼也不返回。以下是我寫的代碼。我創建了一個表格類型,僅顯示結果中需要的列。SQL語句將結果返回到ALV表中

REPORT Z_DISPLAY_RESULTS. 

TYPES: BEGIN OF t_Display, 
foodItem TYPE foodList-foodItem, 
foodDescription TYPE foodList-foodDescription, 
END OF t_Display. 
DATA: it_Display TYPE STANDARD TABLE OF t_Display INITIAL SIZE 0,  
    wa_Display TYPE t_Display,     
    wa_Display1 LIKE LINE OF it_Display. 

START-OF-SELECTION. 

SELECT foodItem foodDescription 
FROM foodList INTO TABLE it_Display 
WHERE foodID = '00001'. 

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' 
EXPORTING 
* I_INTERFACE_CHECK    = ' ' 
* I_BYPASSING_BUFFER    = 
* I_BUFFER_ACTIVE    = ' ' 
* I_CALLBACK_PROGRAM    = ' ' 
* I_CALLBACK_PF_STATUS_SET  = ' ' 
* I_CALLBACK_USER_COMMAND  = ' ' 
I_STRUCTURE_NAME    = 'foodList' 
* IS_LAYOUT      = 
* IT_FIELDCAT     = 
* IT_EXCLUDING     = 
* IT_SPECIAL_GROUPS    = 
* IT_SORT      = 
* IT_FILTER      = 
* IS_SEL_HIDE     = 
* I_DEFAULT      = 'X' 
* I_SAVE       = ' ' 
* IS_VARIANT      = 
* IT_EVENTS      = 
* IT_EVENT_EXIT     = 
* IS_PRINT      = 
* IS_REPREP_ID     = 
* I_SCREEN_START_COLUMN   = 0 
* I_SCREEN_START_LINE   = 0 
* I_SCREEN_END_COLUMN   = 0 
* I_SCREEN_END_LINE    = 0 
* IR_SALV_LIST_ADAPTER   = 
* IT_EXCEPT_QINFO    = 
* I_SUPPRESS_EMPTY_DATA   = ABAP_FALSE 
* IMPORTING 
* E_EXIT_CAUSED_BY_CALLER  = 
* ES_EXIT_CAUSED_BY_USER   = 
TABLES 
T_OUTTAB      = it_Display 
* EXCEPTIONS 
* PROGRAM_ERROR     = 1 
* OTHERS       = 2 
     . 
IF SY-SUBRC <> 0. 

ENDIF. 
+1

嘗試在[Documentation](http://stackoverflow.com/documentation/abap/4660/abap-list-viewer-alv#t=201608021407363155311)中使用基於類的方法的語法。你也可以考慮在你調用'REUSE_ALV_LIST_DISPLAY'的地方添加一個斷點,看看'it_display'實際上是否有任何值。 – gkubed

回答

1
  1. 千萬別學過時的東西 - 用new class-based API
  2. 再次檢查表是否使用調試器實際填充了表。
  3. I_STRUCTURE_NAME是指全局DDIC類型。如果您使用的是本地類型,則可能需要自己提供字段目錄 - 使用此過時的功能模塊。使用新的基於類的API,這不是(不再需要)。