ABAP建立動態內錶

2021-10-10 20:08:41 字數 2227 閱讀 8623

說明:最近業務顧問有很多的需求,其實都是一樣的邏輯,就是處理的表不一樣,就要寫好多次程式,整理一下他的一系列需求之後,準備寫乙個動態的程式,這樣會方便很多,動態的其實核心是動態的內錶,所以簡單的說一下動態內錶的定義方式。

1、根據資料庫表定義動態內錶

這種定義比較直接,直接把資料庫表的所有欄位都放在動態內錶中了,可能會有冗餘,但是用起來比較好寫。

data: dy_table    type ref to data,

dy_line type ref to data.

data :lv_tabname type char15.

field-symbols:

type standard table.

lv_tabname =

'mara'

. create data dy_table type table of (lv_tabname)

.「 assign dy_table-

>

* to

. create data dy_line like line of

. assign dy_line-

>

* to

.

2、根據自己的選擇定義動態內錶

這種定義更diy一點,用什麼定義什麼就好了,就是依據lvc_t_fcat來定義,這裡我簡單的展示一下,把我從【z_bc_get_table】獲取到的欄位名稱以及描述放在內錶中,然後去寫給lvc_t_fcat

data: dy_table      type ref to data,

dy_line type ref to data.

field-symbols:

type standard table,

. data : lt_table type table of zstable.

data : lt_ftab type lvc_t_fcat.

data : lw_ftab like line of lt_ftab.

"獲取表中的字段以及描述

call function 'z_bc_get_table'

exporting

tablename = p_table

importing

ev_mess = lv_message1

tables

it_tab = lt_table.

"刪除集團字段

delete lt_table where fieldname =

'madnt'

. "如果獲取的內容有誤,則報錯

if lv_message1 is not initial.

message lv_message1 type 'e'

. endif.

"將表內容寫給lt_ftab,依據lt_ftab建立動態的內錶

loop at lt_table into data

(lw_table)

. move-corresponding lw_table to lw_ftab.

"模板都使用char 型別.

lw_ftab-datatype =

'char'

. lw_ftab-inttype =

'c'.

"小於30位的字段設為30位.

if lw_ftab-intlen <=

'000030'

. lw_ftab-intlen =

'000030'

. endif.

endloop.

"建立表的動態內錶.

call method cl_alv_table_create=

>create_dynamic_table

exporting

it_fieldcatalog = lt_ftab[

] importing

ep_table = dy_table.

assign dy_table-

>

* to

. create data dy_line like line of

. assign dy_line-

>

* to

.

ABAP動態內錶

定義的動態內錶,對應內錶一行的工作區 field symbols type standard table type any.form create dynamic table data lt fcat type slis t fieldcat alv,ls fcat like line of lt ...

ABAP 動態內錶排序

動態內錶要排序時,因為不知道內錶中的欄位名字,所以不能直接用sort table by field1 field2.可以使用下面的方法來實現 sort table by sorttable 表型別 abap sortorder tab 結構型別 abap sortorder 示例 data w it...

ABAP 內錶的建立

一.types,data,like區別 1.types與data區別 types是用來定義某種類 型 的,需 用data語句 例項化以後才可以使用,而data是用來定義資料物件 例項變 量 的,對於用data直接定義的結構體物件 不參照其它結構型別 其同時也是乙個結構型別.2.type與like區別...