Beruflich Dokumente
Kultur Dokumente
*****************************************************************
***2nd internal table operation using APPEND KEYWORD
***sample application
***declaration of TYPES structure
TYPES : BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
vbtyp TYPE vbak-vbtyp,
auart TYPE vbak-auart,
kunnr TYPE vbak-kunnr,
vkorg TYPE vbak-vkorg,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
netwr TYPE vbak-netwr,
END OF ty_vbak.
ENDLOOP.
ULINE.
SKIP 2.
WRITE :/ 'Total no. of records in 2nd internal table:', lv_rec.
*******************************************************************
*****1st internal table operation MANUAL TRANSFER
*****sample application
*****declaration of TYPES structure
**TYPES : BEGIN OF ty_vbak,
** vbeln TYPE vbak-vbeln,
** ernam TYPE vbak-ernam,
** erdat TYPE vbak-erdat,
** vbtyp TYPE vbak-vbtyp,
** auart TYPE vbak-auart,
** kunnr TYPE vbak-kunnr,
** vkorg TYPE vbak-vkorg,
** vtweg TYPE vbak-vtweg,
** spart TYPE vbak-spart,
** netwr TYPE vbak-netwr,
** END OF ty_vbak.
**
*****declaration of work area & internal table
**DATA : ls_vbak TYPE ty_vbak,
** lt_vbak1 TYPE TABLE OF ty_vbak,
** ls_vbak2 TYPE ty_vbak,
** lt_vbak2 TYPE TABLE OF ty_vbak.
**
*****selection screen design
**SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
**SELECTION-SCREEN SKIP.
**SELECT-OPTIONS : s_vbeln FOR ls_vbak-vbeln,
** s_erdat FOR ls_vbak-erdat NO-EXTENSION,
** s_vbtyp FOR ls_vbak-vbtyp NO INTERVALS NO-EXTENSION.
**SELECTION-SCREEN SKIP.
**SELECTION-SCREEN END OF BLOCK b1.
**
*****extract data from DB table to 1st internal table
**SELECT vbeln
** ernam
** erdat
** vbtyp
** auart
** kunnr
** vkorg
** vtweg
** spart
** netwr FROM vbak
** INTO TABLE lt_vbak1
** WHERE vbeln IN s_vbeln
** AND erdat IN s_erdat
** AND vbtyp IN s_vbtyp.
**
*****Manually fill 1st internal table from work area
**ls_vbak-vbeln = '4990'.
**ls_vbak-ernam = sy-uname.
**ls_vbak-erdat = sy-datum.
**ls_vbak-vbtyp = 'C'.
**ls_vbak-auart = 'OR'.
**ls_vbak-kunnr = '1000'.
**ls_vbak-vkorg = 'IN01'.
**ls_vbak-vtweg = '10'.
**ls_vbak-spart = '00'.
**ls_vbak-netwr = '10000'.
**APPEND ls_vbak TO lt_vbak1.
**CLEAR ls_vbak.
**
*****transfer complete 1st internal table data to 2nd internal table
**lt_vbak2[] = lt_vbak1[].
**
******display 1st internal table data
***WRITE :/ 'First internal table data by extracting from DB table' COLOR 6.
***SKIP 2.
***ULINE.
***LOOP AT lt_vbak1 INTO ls_vbak.
*** WRITE :/ ls_vbak-vbeln,
*** ls_vbak-ernam,
*** ls_vbak-erdat,
*** ls_vbak-vbtyp,
*** ls_vbak-auart,
*** ls_vbak-kunnr,
*** ls_vbak-vkorg,
*** ls_vbak-vtweg,
*** ls_vbak-spart,
*** ls_vbak-netwr.
*** CLEAR ls_vbak.
***ENDLOOP.
**
**
***SKIP 3.
***ULINE.
***SKIP 2.
*****display 2nd internal table data
**WRITE :/ 'Second internal table data by extracting from DB table' COLOR 6.
**SKIP 2.
**ULINE.
**LOOP AT lt_vbak2 INTO ls_vbak2.
** WRITE :/ ls_vbak2-vbeln,
** ls_vbak2-ernam,
** ls_vbak2-erdat,
** ls_vbak2-vbtyp,
** ls_vbak2-auart,
** ls_vbak2-kunnr,
** ls_vbak2-vkorg,
** ls_vbak2-vtweg,
** ls_vbak2-spart,
** ls_vbak2-netwr.
** CLEAR ls_vbak2.
**ENDLOOP.