Abap 的主要工作。
*& Report YLWY001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*WRITE 'MY 003 PROGAM'.
*data wa like spfli.
* uline.
* Select * into wa from spfli.
* WA-Connid under 'CONNECT',
* WA-Countryfr under 'COUNTRY CODE',
* WA-cityfrom UNDER 'START CITY',
* WA-airpfrom UNDER 'START PORT'.
* endselect.
* data mytb_spfli type table of spfli with header line.
* select * into table mytb_spfli from spfli package size 5.
* *loop at mytb_spfli.
* *write: / mytb_spfli-carrid, mytb_spfli-cityfrom,mytb_spfli-airpfrom.
* *endloop.
* *uline.
* *endselect.
* *data:begin of arcd,
* * carrid type spfli-carrid,
* * connid type spfli-connid,
* * end of arcd.
* * data arcd1 like arcd.
* * select spfli~carrid spfli~connid into arcd1 from spfli
* * inner join sflight on spfli~carrid = sflight~carrid up to 10 rows.
* * write : / arcd1-carrid,arcd1-connid.
* * endselect.
Tables spfli.
skip .
uline at /(106).
format color col_heading.
write : / sy-vline,(15) 'man',sy-vline,(15) 'connect',sy-vline, (15) 'code',sy-vline, (15) 'start',
sy-vline,(30) 'start port',sy-vline.
uline at /(106).
format color off.
select * from spfli.
write: / sy-vline,(15) spfli-carrid,sy-vline,(15) spfli-connid,sy-vline,(15) spfli-countryfr,
sy-vline,(15) spfli-cityfrom,sy-vline,(30) spfli-airpfrom,sy-vline.
uline at /(106).
endselect.
write /.
start-of-selection.
write 'please click'.
format hotspot on color 6 inverse on.
write 'hot'.
format hotspot off color off.
at line-selection.
write ' welcome'.
ABAP 報表求和統計功能實現方法
LAST 內 表的最後一 行
NEW <f> 行組 的開頭,與 字段 <f> 和 <f> 剩餘字段中 的內容相同
END Of <f> 行組 的結尾,與 字段 <f> 和 <f> 剩餘字段中 的內容相同
在 AT - ENDAT 語句塊中, 工作區域沒 有用當前表 格行進行填 充。初始化 所有不是標 準關鍵字部 件的字段( 參見
標識表格行 )。對於行 條件 FIRST 和 LAST, 系統用星號 (*) 改寫所有標 準關鍵字段 。對於行條 件 NEW <f> 和 END OF <f>,系 統用星號 (*) 改寫所有出 現在工作區 域中指定字 段 <f> 右邊的標準 關鍵字段。 用戶可根據 自己的需求 在 AT - ENDAT 語句塊中填 充工作區域 。
COL1 TYPE C,
COL2 TYPE I,
COL3 TYPE I,
END OF LINE.
DATA ITAB LIKE LINE OCCURS 10.
LINE-COL1 = 'A'.
DO 3 TIMES.
LINE-COL2 = SY-INDEX.
LINE-COL3 = SY-INDEX ** 2.
APPEND LINE TO ITAB.
ENDDO.
LINE-COL1 = 'B'.
DO 3 TIMES.
LINE-COL2 = 2 * SY-INDEX.
LINE-COL3 = ( 2 * SY-INDEX ) ** 2.
APPEND LINE TO ITAB.
ENDDO.
LOOP AT ITAB INTO LINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
AT END OF COL1.
SUM."按Col1 求和.
ULINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
SKIP.
ENDAT.
SUM."總求和.
ULINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
ENDAT.
ENDLOOP.
其輸出爲:
A 1 1
A 2 4
A 3 9
________________________________
A 6 14
B 4 16
B 6 36
________________________________
B 12 56
* 18 70
*&--------------------------------------------------------------*
*& Report Z_X_XXXXX
*& Module : Module / SubModule
*&--------------------------------------------------------------*
*& Created : author (2003.10.09)
*& Modified : author (someday)
* Intention : 程序的詳細說明
* 請用戶在ABAP/4 REPORT編程時,參考本程序提供的編程框架
*
* 在編碼規範有出入時,以本程序爲準
* 以下各事件可根據實際編程需要使用,對於需要處理的事件,可將該事
* 件後面的語句註釋去掉,再編寫相應的子程序代碼。
*&--------------------------------------------------------------*
*INCLUDE Z_X_XXXXXO01 . " PBO 子程序
*INCLUDE Z_X_XXXXXI01 . " PAI 子程序
*INCLUDE Z_X_XXXXXF01 . " form 子程序
* PERform INI_SELECTION_SCREEN. " 初始化選擇屏上的變量
* PERform INI_DATA. " 初始化全局變量
* PERform PRECESS_DATA. " 主要數據處理邏輯
* PERform PRECESS_LINE_SELECTED. " 行選擇時的處理
* PERform PRECESS_USER_COMMAND. * 用自定義命令按鈕時的處理
* PERform PAGE_HEADER. " 頁眉
* PERform PAGE_FOOT. " 頁腳
*&--------------------------------------------------------------*
*& form PRECESS_DATA
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
*如果邏輯簡單, 則合併若干form爲一個
PERform SEL_DBTAB_XXXXX. " 從透明表中取數據賦給內表
PERform CMP_ITAB_XXXXX. " 內表中數據計算處理
PERform WRT_ITAB_RESULT. " 輸出內表數據
ENDform. " PRECESS_DATA
*& form SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
from bsid
where bukrs = s_bukrs.
id 'ACTVT' field '03'
id 'BUKRS' field itab_sales-bukrs
id 'GSBER' field itab_sales-gsber. "權限檢查
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform. " SEL_DBTAB_XXXXX
*& form CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
*& form WRT_ITAB_RESULT
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
* PERform WRT_ITAB_SUB.
ENDform. " WRT_ITAB_RESULT
*& form PAGE_HEADER
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form PAGE_HEADER.
*& form INI_DATA
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form INI_DATA.
*& form INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.
*& Include Z_X_XXXXXTOP
*&--------------------------------------------------------------*
REPORT Z_X_XXXXX .
*-------------------聲明系統字典對象----------------------------*
TABLES: t001.
SELECTION-SCREEN BEGIN OF BLOCK B1
WITH FRAME
TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS MEMORY ID BUK.
PARAMETERS: P_DATE LIKE SY-DATUM DEFAULT SY-DATUM.
*聲明內表時,表名爲 ITAB_XXXX,後綴儘可能爲關聯DBTab或內表用途
DATA: bldat like bsid-bldat.
RANGES: R_FIELD FOR DBTAB-FIELD.
*& Report Z_X_XXXXX
*& Module : Module / SubModule
*&--------------------------------------------------------------*
*& Created : author (2003.10.09)
*& Modified : author (someday)
* Intention : 程序的詳細說明
* 請用戶在ABAP/4 REPORT編程時,參考本程序提供的編程框架
*
* 在編碼規範有出入時,以本程序爲準
* 以下各事件可根據實際編程需要使用,對於需要處理的事件,可將該事
* 件後面的語句註釋去掉,再編寫相應的子程序代碼。
*&--------------------------------------------------------------*
*INCLUDE Z_X_XXXXXO01 . " PBO 子程序
*INCLUDE Z_X_XXXXXI01 . " PAI 子程序
*INCLUDE Z_X_XXXXXF01 . " form 子程序
* PERform INI_SELECTION_SCREEN. " 初始化選擇屏上的變量
* PERform INI_DATA. " 初始化全局變量
* PERform PRECESS_DATA. " 主要數據處理邏輯
* PERform PRECESS_LINE_SELECTED. " 行選擇時的處理
* PERform PRECESS_USER_COMMAND. * 用自定義命令按鈕時的處理
* PERform PAGE_HEADER. " 頁眉
* PERform PAGE_FOOT. " 頁腳
*&--------------------------------------------------------------*
*& form PRECESS_DATA
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
*如果邏輯簡單, 則合併若干form爲一個
PERform SEL_DBTAB_XXXXX. " 從透明表中取數據賦給內表
PERform CMP_ITAB_XXXXX. " 內表中數據計算處理
PERform WRT_ITAB_RESULT. " 輸出內表數據
ENDform. " PRECESS_DATA
*& form SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
from bsid
where bukrs = s_bukrs.
id 'ACTVT' field '03'
id 'BUKRS' field itab_sales-bukrs
id 'GSBER' field itab_sales-gsber. "權限檢查
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform. " SEL_DBTAB_XXXXX
*& form CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
*& form WRT_ITAB_RESULT
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
* PERform WRT_ITAB_SUB.
ENDform. " WRT_ITAB_RESULT
*& form PAGE_HEADER
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form PAGE_HEADER.
*& form INI_DATA
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form INI_DATA.
*& form INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
* text
*---------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.
*& Include Z_X_XXXXXTOP
*&--------------------------------------------------------------*
REPORT Z_X_XXXXX .
*-------------------聲明系統字典對象----------------------------*
TABLES: t001.
SELECTION-SCREEN BEGIN OF BLOCK B1
WITH FRAME
TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS MEMORY ID BUK.
PARAMETERS: P_DATE LIKE SY-DATUM DEFAULT SY-DATUM.
*聲明內表時,表名爲 ITAB_XXXX,後綴儘可能爲關聯DBTab或內表用途
DATA: bldat like bsid-bldat.
RANGES: R_FIELD FOR DBTAB-FIELD.
7,在一個Program中,處於Form和Endform之間的是Subroutines. 該程序由Program引導,不能直接運行,需被調用,不能包含自定義的用戶屏幕.
data data(len) Type type [decimal dec] [value var]
Decimal 附加項只適用於指定P類型的小數位.
Move-corresponding, eg: move-corresponding source-data to destination-data.