SAP動態內表與動態SQL技術_第1頁
SAP動態內表與動態SQL技術_第2頁
SAP動態內表與動態SQL技術_第3頁
SAP動態內表與動態SQL技術_第4頁
SAP動態內表與動態SQL技術_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1SAP動態內表與動態SQL技術動態內表的創建2當程序運行時才能確定內表的結構,我們就需要用到動態內表。動態內表的創建一般有兩種方法:1. 使用類CL_ALV_TABLE_CREATE的方法CREATE_DYNAMIC_TABLE;2. 使用RTTI(Run Time Type Services):CL_ABAP_TABLEDESCRCL_ALV_TABLE_CREATE3使用CL_ALV_TABLE_CREATE創建動態內表:1. 定義動態內表的數據類型type-pools: slis. field-symbols: type standard table, ” 內表指針 , ” 工作區 .

2、 ” 字段data: dy_table type ref to data, dy_line type ref to data, ” 行 wa_fcat type lvc_s_fcat, ” 列結構 it_fcat type lvc_t_fcat. CL_ALV_TABLE_CREATE42. 定義列結構動態內表表結構的定義必須使用表結構與tabletype:lvc_t_fcat一樣的內表.clear wa_fcat. wa_fcat-fieldname = MATNR. wa_fcat-datatype =CHAR. wa_fcat-intlen = 18. append wa_fcat to

3、 it_fcat. clear wa_fcat. wa_fcat-fieldname = MAKTX. wa_fcat-datatype = CHAR. wa_fcat-intlen = 40. append wa_fcat to it_fcat. CL_ALV_TABLE_CREATE53. 創建內表call method cl_alv_table_create=create_dynamic_table exporting it_fieldcatalog = it_fcat importing ep_table = dy_table. assign dy_table-* to . creat

4、e data dy_line like line of . assign dy_line-* to .動態內表的操作6獲取內表的行指針;獲取指定的字段;讀/寫指定字段的值;read table assigning index 1.if sy-subrc = 0. assign component MATNR of structure to . if sy-subrc = 0. write:/ . endif.endif.RTTI7定義數據類型DATA: CL_STRUTYPE REF TO CL_ABAP_STRUCTDESCR, CL_TABL TYPE REF TO CL_ABAP_TAB

5、LEDESCR, CL_HANDLE TYPE REF TO DATA, WA_COMPONENTS TYPE ABAP_COMPONENTDESCR, IT_COMPONENTS TYPE ABAP_COMPONENT_TAB.DATA: IT_CELLSTABTYPE LVC_T_STYL, WA_CELLSTABTYPE LVC_S_STYL.FIELD-SYMBOLS: TYPE STANDARD TABLE , TYPE ANY, TYPE LVC_T_STYL.使用cl_alv_table_create=create_dynamic_table動態創建內表的時候,如果是Deep S

6、tructure的結構的內表,程序Dump。這時就需要使用RTTI來創建。RTTI82. 定義列結構CLEAR: COMPDESC.WA_COMPONENTS-TYPE ?= CL_ABAP_DATADESCR=DESCRIBE_BY_NAME( EKPO-MATNR ).WA_COMPONENTS-NAME = MATNR.APPEND WA_COMPONENTS TO IT_COMPONENTS.WA_COMPONENTS-TYPE ?= CL_ABAP_DATADESCR=DESCRIBE_BY_NAME( EKPO-MENGE ).WA_COMPONENTS-NAME = MENGE.

7、APPEND WA_COMPONENTS TO IT_COMPONENTS.WA_COMPONENTS-TYPE ?= CL_ABAP_TYPEDESCR=DESCRIBE_BY_DATA( CELLSTAB ).WA_COMPONENTS-NAME = CELLSTAB.APPEND WA_COMPONENTS TO IT_COMPONENTS.RTTI93. 創建內表CL_STRU = CL_ABAP_STRUCTDESCR=CREATE( COMPONENTS ).CL_TABL= CL_ABAP_TABLEDESCR=CREATE( CL_STRU ).CREATE DATA CL_H

8、ANDLE TYPE HANDLE CL_TABL.ASSIGN CL_HANDLE-* TO .4. 操作SELECT * FROM ekpo INTO CORRESPONDING FIELDS OF TABLE UP TO 10 ROWS.WA_CELLSTAB-FIELDNAME = MENGE.WA_CELLSTAB-STYLE = CL_GUI_ALV_GRID=MC_STYLE_ENABLED.INSERT WA_CELLSTAB INTO TABLE IT_CELLSTAB.LOOP AT ASSIGNING .ASSIGN COMPONENT CELLSTAB OF STRUCTURE TO . = IT_CELLSTAB.ENDLOOP.動態SQL10SELECT (column_s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論