SAP abap 內表增加字段方法,結構復用


1、include

databegin of gth_qamr.
        include structure qamr.
data: kurztext like qamv-kurztext,
      ztext like qamv-kurztext,
      verwmerkm like qamv-verwmerkm,
      steuerkz  like qamv-steuerkz.
dataend of gth_qamr.
data: gtd_qamr like table of gth_qamr.

 

2、append

 

結構復用:引用自江正軍老師-博客園 博客鏈接:www.cnblogs.com/jiangzhengjun

TYPES BEGIN OF struc_type
   TYPES comp ..
   TYPES comp TYPE struc_type BOXED"參照另一結構類型
   INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } "將另一結構包括進來
        [AS name [RENAMING WITH SUFFIX suffix]]
TYPES END OF struc_type.

 

INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } 
        [AS name [RENAMING WITH SUFFIX suffix]].

該語句只能用在定義結構的BEGIN OF與 END OF之間。作用是將結構類型struc_type結構變量struc的所有組件字段拷貝到當前結構定義的指定位置,INCLUDE就是將可以重復使用的東西先做好,再包含進來。

AS name:給包含進來的結構類型(或結構變量)取一個別名,這樣就可以通過結構組件符(-)來選取這個結構類型(或結構變量)

RENAMING WITH SUFFIX suffix:如果include進來的結構類型(或結構變量)的組件字段與現有的重復,則可以使用此選項重命名include進來的結構類型(或結構變量)的各組件字段名,具體做法只是在原來組件名后加上了指定的后綴suffix

 

TYPESBEGIN OF t_day,
         work TYPE c LENGTH 8,
         free TYPE c LENGTH 16,
       END OF t_day.
DATA BEGIN OF week.
        INCLUDE TYPE t_day AS monday    RENAMING WITH SUFFIX _mon.
        INCLUDE TYPE t_day AS tuesday   RENAMING WITH SUFFIX _tue.
        INCLUDE TYPE t_day AS wednesday RENAMING WITH SUFFIX _wed.

...

DATA END OF week.

可以通下面的方式來訪問week結構變量:

直接看作是week結構變量組件:week-work_mon, week-free_mon, week-work_tue

由於使用as別名,所以還可以這樣訪問:week-monday-work, week-monday-free, week-tuesday-work

 

當程序中多個結構使用共同的字段時,將公用的部分提取出來,使用INCLUDE將它們組裝起來,編程結構更清晰。下面是結構對象的復用:

 

DATABEGIN OF comm1 OCCURS 0,
      bukrs TYPE bseg-bukrs,
END OF comm1.
TYPES:BEGIN OF comm2,
      blart TYPE bkpf-blart,
END OF comm2.
DATABEGIN OF gt_result OCCURS 0,
        c1 TYPE c."直接定義組件字段,但前面語句后面使用逗號
        INCLUDE STRUCTURE comm1."直接將結構對象包括進來
        INCLUDE TYPE comm2."直接將結構類型包括進來
        DATA:comm LIKE comm1,"直接參照
        c2 TYPE c"直接定義組件字段,但前面語句后面使用逗號
DATAEND OF gt_result.
gt_result-bukrs '111'.
gt_result-blart '222'.
gt_result-comm-bukrs '333'.

下面是類型的復用:

 

TYPESBEGIN OF street_type,
         name TYPE c LENGTH 40,
         no   TYPE c LENGTH 4,
       END OF street_type.
DATABEGIN OF comm1 OCCURS 0,
      bukrs TYPE bseg-bukrs,
END OF comm1.
TYPESBEGIN OF address_type,
        name1 TYPE c LENGTH 30."直接定義類型,但前面語句需使用逗號
        TYPES:street TYPE street_type,"參照另一結構類型
        TYPE c."直接定義類型,但前面語句需使用逗號
        INCLUDE STRUCTURE comm1.
        INCLUDE TYPE  street_type.
TYPESEND OF address_type.

*或者是這樣

TYPESBEGIN OF address_type,
        name1 TYPE c LENGTH 30,
        street TYPE street_type,
        TYPE c.
        INCLUDE STRUCTURE comm1.
        INCLUDE TYPE  street_type.
TYPESEND OF address_type.
DATA: name TYPE address_type-street-name.
DATA: name2 TYPE address_type-name.
DATA: bukrs TYPE address_type-bukrs.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM