ABAP動態內錶

2021-06-12 17:14:13 字數 2021 閱讀 4914

「定義的動態內錶,對應內錶一行的工作區

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_fcat,

lt_fieldcat type lvc_t_fcat,

ls_fieldcat like 

line 

of lt_fieldcat,

dy_table    type 

ref 

to data

.call 

function 

'reuse_alv_fieldcatalog_merge'

exporting

i_structure_name = 

'rfpos'

changing

ct_fieldcat      = lt_fcat.

call 

function 

'reuse_alv_fieldcatalog_merge'

exporting

i_structure_name = 

'bseg'

changing

ct_fieldcat      = lt_fcat.

clear ls_fcat.

ls_fcat-col_pos =  

lines

( lt_fcat ) + 1

.ls_fcat-no_out = 

'x'.

ls_fcat-fieldname = 

'lokkt_txt30'

.ls_fcat-ref_fieldname = 

'txt20'

.ls_fcat-ref_tabname  = 

'skat'

.ls_fcat-reptext_ddic = ls_fcat-seltext_s =

ls_fcat-seltext_m = ls_fcat-seltext_l = 

text

-133

.loop 

at lt_fcat into ls_fcat. 

"where not reptext_ddic is initial.

move-corresponding ls_fcat to ls_fieldcat.

ls_fieldcat-fieldname = ls_fcat-fieldname.

ls_fieldcat-ref_field = ls_fcat-ref_fieldname.

ls_fieldcat-ref_table = ls_fcat-ref_tabname.

endloop

.call 

method cl_alv_table_create=>create_dynamic_table

exporting

it_fieldcatalog = lt_fieldcat

importing

ep_table        = dy_table.

assign dy_table->* to 

.endform

.   

「 g_items  和  bseg 已經有資料的工作區

data

:wa_new_line type 

ref 

to data.

create 

data wa_new_line like 

line 

of .

assign wa_new_line->* to 

.move-corresponding g_items to 

.move-corresponding bseg   to 

.to 

.

ABAP 動態內錶排序

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

ABAP建立動態內錶

說明 最近業務顧問有很多的需求,其實都是一樣的邏輯,就是處理的表不一樣,就要寫好多次程式,整理一下他的一系列需求之後,準備寫乙個動態的程式,這樣會方便很多,動態的其實核心是動態的內錶,所以簡單的說一下動態內錶的定義方式。1 根據資料庫表定義動態內錶 這種定義比較直接,直接把資料庫表的所有欄位都放在動...

關於ABAP內錶

1.內錶的型別及定義 1 any table 即任意表型別,此種定義方式只能在傳遞引數的時候定義。例如 form using changing type any table 2 any table包括了兩種型別 index table和hashed table 1 index table 包括了st...