ABAP选择屏幕的例子
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                ABAP选择屏幕的例子
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                
                            
                            
                            下面是一個(gè)典型的選擇屏幕的典型例子. 
1.設(shè)置選擇屏幕參數(shù).
***begin(end) of block使用屏幕元素邏輯塊.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TITLE1.
***定義選擇標(biāo)準(zhǔn),比如那些屏幕子段使用范圍,設(shè)置為必選或使用內(nèi)存ID等.
SELECT-OPTIONS <seltab> FOR <f> DEFAULT│NO INTERVALS│OBLIGATORY│NO-DISPLAY│MEMORY
ID...
***要在選擇屏幕上書(shū)寫(xiě)文本使用屏幕注釋并在屏幕初始化時(shí)賦值.
?SELECTION-SCREEN COMMENT ...
***在屏幕上畫(huà)線(xiàn).
?SELECTION-SCREEN ULINE ...
***Begind(end)of line包含的屏幕參數(shù)將在同一條直線(xiàn)上.
?SELECTION-SCREEN BEGIN OF LINE...
?SELECTION-SCREEN END OF LINE...
***設(shè)置屏幕位置.
?SELECTION-SCREEN POSITION...
***在應(yīng)用工具條上創(chuàng)建按鈕響應(yīng)事件
?SELECTION-SCREEN FUNCTION KEY...
***在屏幕上創(chuàng)建按鈕.
?SELECTION SCREEN PUSHBUTTON ...
SELECTION-SCREEN END ? OF BLOCK BK1.
 
INITIALIZATION.
***初始化屏幕參數(shù),類(lèi)似VB的Form_load事件***
 
AT SELECTION-SCREEN <on help(value)-request for field│>.
***系統(tǒng)選擇屏幕時(shí)的過(guò)程處理,比如需要判斷一些屏幕字段的條件限制如為某些值則***顯示
error message,程序沒(méi)有必要浪費(fèi)時(shí)間繼續(xù)執(zhí)行下去.
***on help-request 可為屏幕字段顯示自定義幫助
***on value-request可顯示建議列表值
***可這樣理解AT selection-screen相當(dāng)于 PBO.
***PERFORM sub_validate_FieldXXX .
***選屏后按Enter或F8運(yùn)行時(shí)都會(huì)執(zhí)行.
START-OF-SELECTION .
***設(shè)置內(nèi)表值,處理沒(méi)有附加關(guān)鍵字的所有語(yǔ)句.
***通常包含在此的Form是在按F8后才開(kāi)始執(zhí)行.
END-OF_SELECTION .
 
AT USER-COMMAND.
***處理用戶(hù)請(qǐng)求事件,如報(bào)表使用ALV格式,通常在call function exporting
*** I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
***再建立一個(gè)子程序form USER_COMMAND USING UCOMM LIKE SY-UCOMM
 
AT LINE-SELECTION.
***通常此事件在報(bào)表顯示后用戶(hù)在列表中在選擇行時(shí)觸發(fā).如報(bào)表使用的是write
***就可使用此事件.
*** SET PARAMETER ID 'XXX' FIELD XXX.
*** call transACtion 'XXX' AND SKIP FIRST SCREEN.
 
TOP-OF-PAGE.
*** 顯示數(shù)據(jù),使用TOP-OF-PAGE是在分頁(yè)時(shí)可將定義的頁(yè)頭頁(yè)尾在每頁(yè)顯示.
*** PERFORM write_page_header(page header在每頁(yè)都顯示).
*** PERFORM DISPLAY_ALV_DATA.
END-OF-PAGE.
下面一個(gè)簡(jiǎn)單的會(huì)計(jì)憑證顯示的實(shí)例說(shuō)明選擇屏幕的使用.
***這程序只是做演示用,但是包含了常用的選擇屏幕技術(shù).
將下面的程序copy就可跑.
 
 
 
REPORT ?ZSELECTION ?NO STANDARD PAGE HEADING
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MESSAGE-ID zFIMSG "MEssage Class
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LINE-SIZE 255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LINE-COUNT 32(3).
 
tables :BKPF,BSEG,S070.
DATA:ZBKPF like bkpf occurs 0 ,
? ? zwa_bkpf like bkpf.
CONSTANTS:P_variant(2) ? ? ?TYPE c ? ? VALUE 'WL'.
***下面這些屏幕參數(shù)和事件沒(méi)有關(guān)系,只是參數(shù)集而已.
SELECTION-SCREEN BEGIN OF BLOCK ?bk1 WITH FRAME TITLE Cond1.
SELECT-OPTIONS S_bukrs FOR bkpf-bukrs MEMORY ID BUK.
SELECT-OPTIONS S_blart FOR bkpf-blart NO INTERVALS .
SELECT-OPTIONS S_belnr FOR bkpf-belnr .
SELECT-OPTIONS S_budat FOR bkpf-budat DEFAULT sy-datum.
SELECT-OPTIONS S_bldat FOR bkpf-bldat NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS S_gjahr FOR bkpf-gjahr MEMORY ID GJR DEFAULT sy-datum(4).
SELECT-OPTIONS weekran for s070-SPBUP NO-EXTENSION .
SELECTION-SCREEN END OF BLOCK bk1.
 
SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE Cond2.
SELECTION-SCREEN COMMENT /1(30) COMM1 . ? ? ? "使用屏幕注釋
SELECTION-SCREEN BEGIN OF LINE ."兩單選框?qū)⒃谕粭l線(xiàn)上.
PARAMETERS pnor ?RADIOBUTTON GROUP grp1 DEFAULT 'X'."Print normal doc
PARAMETERS ppark ? RADIOBUTTON GROUP grp1. ? ? ? ? ?"Print parked doc
SELECTION-SCREEN END OF LINE .
SELECTION-SCREEN END OF BLOCK bk2.
 
***1 初始化參數(shù).
INITIALIZATION.
?Cond1 ?= '【Condition】'.
?Cond2 = '【Normal Doc│Parked Doc】'.
?COMM1 = 'Choose Doc. Type:'. "注釋賦初值.
***初始公司值,這在有些需要后臺(tái)跑的程序非常有用,除了使用variant外,在此也可賦初
***下面的例子在初始化后公司代碼選擇了1000和3000排除了2000
?S_bukrs-low = '1000'.
?S_bukrs-sign = 'I'. "I->包含,E->排除
?S_bukrs-option = 'EQ'. "NE
?APPEND S_bukrs.
?S_bukrs-low = '2000'.
?S_bukrs-sign = 'E'.
?S_bukrs-option = 'EQ'.
?APPEND S_bukrs.
?S_bukrs-low = '3000'.
?S_bukrs-sign = 'E'.
?S_bukrs-option = 'EQ'.
?APPEND S_bukrs.
***初始化doc range 從0100000000到1000000000
?s_belnr-low = '0100000000'.
?s_belnr-high = '1000000000'.
?s_belnr-sign = 'I' .
?s_belnr-option = 'BT'.
?append s_belnr.
 
***2 使用sug_get_week后得到所選日期的當(dāng)前周數(shù),在選擇weekrag字段時(shí)才觸發(fā).
***當(dāng)你選擇weekran字段時(shí).
AT SELECTION-SCREEN ON VALUE-REQUEST FOR weekran-low.
?PERFORM sub_get_week CHANGING weekran-low.
 
 
AT SELECTION-SCREEN.
***判斷所選擇的公司代碼是否有效,通常并不是必須的.
***當(dāng)然你也可將此步省略,直接在START-OF-SELECTION判斷.
***根據(jù)需要可做很多vaid字段的判斷.
?PERFORM SUB_VALIDATE_COMP.
 
***3開(kāi)始選屏
START-OF-SELECTION.
?Perform SUB_GET_DOC.
?PERFORM SUB_WRT_DOC.
END-OF-SELECTION.
 
***4.分頁(yè)時(shí)顯示page header或page footer.
TOP-OF-PAGE.
?perform sub_WRT_HEADER.
end-of-page.
 
***5.當(dāng)點(diǎn)擊行并且是點(diǎn)到Document NO.CAll FB03.
AT line-selection.
?Perform sub_line_response.
form sub_line_response.
?Data: ZFLDNAME ?like DD01L-DOMNAME,
? ? ? ?ZFLDVALUE like TTREET-TEXT,
? ? ? ?zwa_bkpf like bkpf.
?GET CURSOR FIELD ZFLDNAME VALUE ZFLDVALUE .
?if ZFLDNAME = 'ZWA_BKPF-BELNR' .
* ?READ TABLE Zbkpf into zwa_bkpf WITH KEY BELNR = ZFLDVALUE.
* ? SET PARAMETER ID 'BUK' FIELD zwa_bkpf-BUKRS.
* ? SET PARAMETER ID 'GJR' FIELD zwa_bkpf-GJAHR.
* ? SET PARAMETER ID 'BLN' FIELD zwa_bkpf-BELNR.
? SET PARAMETER ID 'BLN' FIELD ZFLDVALUE .
? CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
?endif.
endform .
 
 
 
FORM SUB_GET_DOC.
? refresh zbkpf .
? SELECT * FROM bkpf into table Zbkpf
? ? WHERE bukrs IN s_bukrs
? ? ? AND belnr IN s_belnr
? ? ? AND gjahr IN s_gjahr
? ? ? AND budat IN s_budat.
endform.
 
form sub_wrt_header.
?FORMAT INTENSIFIED COLOR = 6.
?WRITE AT: /01 ? ?'Finaincial Document List:'(h07).
?FORMAT COLOR COL_NORMAL ON.
?FORMAT COLOR COL_HEADING ON.
?WRITE AT:/01(48) ?sy-uline.
?FORMAT COLOR COL_HEADING OFF.
?FORMAT COLOR OFF.
endform.
 
form sub_wrt_doc.
?uline /1(41).
?loop at zbkpf into zwa_bkpf.
? ? write:/ '│',zwa_bkpf-bukrs,'│',zwa_bkpf-belnr,'│',zwa_bkpf-gjahr,'│',zwa_bkpf-
budat,'│'.
? ? uline /1(41).
?endloop.
endform.
 
FORM SUB_VALIDATE_COMP.
?data itab_bukrs like bkpf-bukrs occurs 0 .
?select ?bukrs into table itab_bukrs
? ?from T001
? ?where BUKRS in S_bukrs .
?if itab_bukrs IS INITIAL.
? ? Message e002(00) .
?endif.
endform.
 
 
 
FORM sub_get_week CHANGING wkran LIKE s070-SPBUP.
?DATA: l_date ? ? ?LIKE workflds-gkday,
? ? ? ?l_period ? ?LIKE t009b-poper,
? ? ? ?l_year ? ? ?LIKE t009b-bdatj.
***根據(jù)選擇日期得到當(dāng)前周數(shù)
?CALL FUNCTION 'F4_DATE'
? ?EXPORTING
? ? ?date_for_first_month ? ? ? ? = sy-datum
? ? ?display ? ? ? ? ? ? ? ? ? ? ?= ''
? ?IMPORTING
? ? ?select_date ? ? ? ? ? ? ? ? ?= l_date
? ?EXCEPTIONS
? ? ?calendar_buffer_not_loadable = 1
? ? ?date_after_range ? ? ? ? ? ? = 2
? ? ?date_before_range ? ? ? ? ? ?= 3
? ? ?date_invalid ? ? ? ? ? ? ? ? = 4
? ? ?factory_calendar_not_found ? = 5
? ? ?holiday_calendar_not_found ? = 6
? ? ?parameter_conflict ? ? ? ? ? = 7
? ? ?OTHERS ? ? ? ? ? ? ? ? ? ? ? = 8.
?CALL FUNCTION 'G_PERIOD_GET'
? ?EXPORTING
? ? ?date ? ? ? ? ? ? ? ? ? ? ? ? ? = l_date
***使用WL variant得到的period是周/年,空則是期間/年.
***在CO-PA或做計(jì)劃時(shí),通常是以周做period的.
? ? ?variant ? ? ? ? ? ? ? ? ? ? ? ?= P_variant ?"'WL'
? ?IMPORTING
? ? ?period ? ? ? ? ? ? ? ? ? ? ? ? = l_period
? ? ?year ? ? ? ? ? ? ? ? ? ? ? ? ? = l_year
? ?EXCEPTIONS
? ? ?ledger_not_assigned_to_company = 1
? ? ?period_not_defined ? ? ? ? ? ? = 2
? ? ?variant_not_defined ? ? ? ? ? ?= 3
? ? ?OTHERS ? ? ? ? ? ? ? ? ? ? ? ? = 4.
?weekran-sign ? = 'I'.
?weekran-option = 'EQ'.
?CONCATENATE l_year l_period+1(2) INTO wkran.
endform.
                            
                        
                        
                        1.設(shè)置選擇屏幕參數(shù).
***begin(end) of block使用屏幕元素邏輯塊.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TITLE1.
***定義選擇標(biāo)準(zhǔn),比如那些屏幕子段使用范圍,設(shè)置為必選或使用內(nèi)存ID等.
SELECT-OPTIONS <seltab> FOR <f> DEFAULT│NO INTERVALS│OBLIGATORY│NO-DISPLAY│MEMORY
ID...
***要在選擇屏幕上書(shū)寫(xiě)文本使用屏幕注釋并在屏幕初始化時(shí)賦值.
?SELECTION-SCREEN COMMENT ...
***在屏幕上畫(huà)線(xiàn).
?SELECTION-SCREEN ULINE ...
***Begind(end)of line包含的屏幕參數(shù)將在同一條直線(xiàn)上.
?SELECTION-SCREEN BEGIN OF LINE...
?SELECTION-SCREEN END OF LINE...
***設(shè)置屏幕位置.
?SELECTION-SCREEN POSITION...
***在應(yīng)用工具條上創(chuàng)建按鈕響應(yīng)事件
?SELECTION-SCREEN FUNCTION KEY...
***在屏幕上創(chuàng)建按鈕.
?SELECTION SCREEN PUSHBUTTON ...
SELECTION-SCREEN END ? OF BLOCK BK1.
INITIALIZATION.
***初始化屏幕參數(shù),類(lèi)似VB的Form_load事件***
AT SELECTION-SCREEN <on help(value)-request for field│>.
***系統(tǒng)選擇屏幕時(shí)的過(guò)程處理,比如需要判斷一些屏幕字段的條件限制如為某些值則***顯示
error message,程序沒(méi)有必要浪費(fèi)時(shí)間繼續(xù)執(zhí)行下去.
***on help-request 可為屏幕字段顯示自定義幫助
***on value-request可顯示建議列表值
***可這樣理解AT selection-screen相當(dāng)于 PBO.
***PERFORM sub_validate_FieldXXX .
***選屏后按Enter或F8運(yùn)行時(shí)都會(huì)執(zhí)行.
START-OF-SELECTION .
***設(shè)置內(nèi)表值,處理沒(méi)有附加關(guān)鍵字的所有語(yǔ)句.
***通常包含在此的Form是在按F8后才開(kāi)始執(zhí)行.
END-OF_SELECTION .
AT USER-COMMAND.
***處理用戶(hù)請(qǐng)求事件,如報(bào)表使用ALV格式,通常在call function exporting
*** I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
***再建立一個(gè)子程序form USER_COMMAND USING UCOMM LIKE SY-UCOMM
AT LINE-SELECTION.
***通常此事件在報(bào)表顯示后用戶(hù)在列表中在選擇行時(shí)觸發(fā).如報(bào)表使用的是write
***就可使用此事件.
*** SET PARAMETER ID 'XXX' FIELD XXX.
*** call transACtion 'XXX' AND SKIP FIRST SCREEN.
TOP-OF-PAGE.
*** 顯示數(shù)據(jù),使用TOP-OF-PAGE是在分頁(yè)時(shí)可將定義的頁(yè)頭頁(yè)尾在每頁(yè)顯示.
*** PERFORM write_page_header(page header在每頁(yè)都顯示).
*** PERFORM DISPLAY_ALV_DATA.
END-OF-PAGE.
下面一個(gè)簡(jiǎn)單的會(huì)計(jì)憑證顯示的實(shí)例說(shuō)明選擇屏幕的使用.
***這程序只是做演示用,但是包含了常用的選擇屏幕技術(shù).
將下面的程序copy就可跑.
REPORT ?ZSELECTION ?NO STANDARD PAGE HEADING
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MESSAGE-ID zFIMSG "MEssage Class
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LINE-SIZE 255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LINE-COUNT 32(3).
tables :BKPF,BSEG,S070.
DATA:ZBKPF like bkpf occurs 0 ,
? ? zwa_bkpf like bkpf.
CONSTANTS:P_variant(2) ? ? ?TYPE c ? ? VALUE 'WL'.
***下面這些屏幕參數(shù)和事件沒(méi)有關(guān)系,只是參數(shù)集而已.
SELECTION-SCREEN BEGIN OF BLOCK ?bk1 WITH FRAME TITLE Cond1.
SELECT-OPTIONS S_bukrs FOR bkpf-bukrs MEMORY ID BUK.
SELECT-OPTIONS S_blart FOR bkpf-blart NO INTERVALS .
SELECT-OPTIONS S_belnr FOR bkpf-belnr .
SELECT-OPTIONS S_budat FOR bkpf-budat DEFAULT sy-datum.
SELECT-OPTIONS S_bldat FOR bkpf-bldat NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS S_gjahr FOR bkpf-gjahr MEMORY ID GJR DEFAULT sy-datum(4).
SELECT-OPTIONS weekran for s070-SPBUP NO-EXTENSION .
SELECTION-SCREEN END OF BLOCK bk1.
SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE Cond2.
SELECTION-SCREEN COMMENT /1(30) COMM1 . ? ? ? "使用屏幕注釋
SELECTION-SCREEN BEGIN OF LINE ."兩單選框?qū)⒃谕粭l線(xiàn)上.
PARAMETERS pnor ?RADIOBUTTON GROUP grp1 DEFAULT 'X'."Print normal doc
PARAMETERS ppark ? RADIOBUTTON GROUP grp1. ? ? ? ? ?"Print parked doc
SELECTION-SCREEN END OF LINE .
SELECTION-SCREEN END OF BLOCK bk2.
***1 初始化參數(shù).
INITIALIZATION.
?Cond1 ?= '【Condition】'.
?Cond2 = '【Normal Doc│Parked Doc】'.
?COMM1 = 'Choose Doc. Type:'. "注釋賦初值.
***初始公司值,這在有些需要后臺(tái)跑的程序非常有用,除了使用variant外,在此也可賦初
***下面的例子在初始化后公司代碼選擇了1000和3000排除了2000
?S_bukrs-low = '1000'.
?S_bukrs-sign = 'I'. "I->包含,E->排除
?S_bukrs-option = 'EQ'. "NE
?APPEND S_bukrs.
?S_bukrs-low = '2000'.
?S_bukrs-sign = 'E'.
?S_bukrs-option = 'EQ'.
?APPEND S_bukrs.
?S_bukrs-low = '3000'.
?S_bukrs-sign = 'E'.
?S_bukrs-option = 'EQ'.
?APPEND S_bukrs.
***初始化doc range 從0100000000到1000000000
?s_belnr-low = '0100000000'.
?s_belnr-high = '1000000000'.
?s_belnr-sign = 'I' .
?s_belnr-option = 'BT'.
?append s_belnr.
***2 使用sug_get_week后得到所選日期的當(dāng)前周數(shù),在選擇weekrag字段時(shí)才觸發(fā).
***當(dāng)你選擇weekran字段時(shí).
AT SELECTION-SCREEN ON VALUE-REQUEST FOR weekran-low.
?PERFORM sub_get_week CHANGING weekran-low.
AT SELECTION-SCREEN.
***判斷所選擇的公司代碼是否有效,通常并不是必須的.
***當(dāng)然你也可將此步省略,直接在START-OF-SELECTION判斷.
***根據(jù)需要可做很多vaid字段的判斷.
?PERFORM SUB_VALIDATE_COMP.
***3開(kāi)始選屏
START-OF-SELECTION.
?Perform SUB_GET_DOC.
?PERFORM SUB_WRT_DOC.
END-OF-SELECTION.
***4.分頁(yè)時(shí)顯示page header或page footer.
TOP-OF-PAGE.
?perform sub_WRT_HEADER.
end-of-page.
***5.當(dāng)點(diǎn)擊行并且是點(diǎn)到Document NO.CAll FB03.
AT line-selection.
?Perform sub_line_response.
form sub_line_response.
?Data: ZFLDNAME ?like DD01L-DOMNAME,
? ? ? ?ZFLDVALUE like TTREET-TEXT,
? ? ? ?zwa_bkpf like bkpf.
?GET CURSOR FIELD ZFLDNAME VALUE ZFLDVALUE .
?if ZFLDNAME = 'ZWA_BKPF-BELNR' .
* ?READ TABLE Zbkpf into zwa_bkpf WITH KEY BELNR = ZFLDVALUE.
* ? SET PARAMETER ID 'BUK' FIELD zwa_bkpf-BUKRS.
* ? SET PARAMETER ID 'GJR' FIELD zwa_bkpf-GJAHR.
* ? SET PARAMETER ID 'BLN' FIELD zwa_bkpf-BELNR.
? SET PARAMETER ID 'BLN' FIELD ZFLDVALUE .
? CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
?endif.
endform .
FORM SUB_GET_DOC.
? refresh zbkpf .
? SELECT * FROM bkpf into table Zbkpf
? ? WHERE bukrs IN s_bukrs
? ? ? AND belnr IN s_belnr
? ? ? AND gjahr IN s_gjahr
? ? ? AND budat IN s_budat.
endform.
form sub_wrt_header.
?FORMAT INTENSIFIED COLOR = 6.
?WRITE AT: /01 ? ?'Finaincial Document List:'(h07).
?FORMAT COLOR COL_NORMAL ON.
?FORMAT COLOR COL_HEADING ON.
?WRITE AT:/01(48) ?sy-uline.
?FORMAT COLOR COL_HEADING OFF.
?FORMAT COLOR OFF.
endform.
form sub_wrt_doc.
?uline /1(41).
?loop at zbkpf into zwa_bkpf.
? ? write:/ '│',zwa_bkpf-bukrs,'│',zwa_bkpf-belnr,'│',zwa_bkpf-gjahr,'│',zwa_bkpf-
budat,'│'.
? ? uline /1(41).
?endloop.
endform.
FORM SUB_VALIDATE_COMP.
?data itab_bukrs like bkpf-bukrs occurs 0 .
?select ?bukrs into table itab_bukrs
? ?from T001
? ?where BUKRS in S_bukrs .
?if itab_bukrs IS INITIAL.
? ? Message e002(00) .
?endif.
endform.
FORM sub_get_week CHANGING wkran LIKE s070-SPBUP.
?DATA: l_date ? ? ?LIKE workflds-gkday,
? ? ? ?l_period ? ?LIKE t009b-poper,
? ? ? ?l_year ? ? ?LIKE t009b-bdatj.
***根據(jù)選擇日期得到當(dāng)前周數(shù)
?CALL FUNCTION 'F4_DATE'
? ?EXPORTING
? ? ?date_for_first_month ? ? ? ? = sy-datum
? ? ?display ? ? ? ? ? ? ? ? ? ? ?= ''
? ?IMPORTING
? ? ?select_date ? ? ? ? ? ? ? ? ?= l_date
? ?EXCEPTIONS
? ? ?calendar_buffer_not_loadable = 1
? ? ?date_after_range ? ? ? ? ? ? = 2
? ? ?date_before_range ? ? ? ? ? ?= 3
? ? ?date_invalid ? ? ? ? ? ? ? ? = 4
? ? ?factory_calendar_not_found ? = 5
? ? ?holiday_calendar_not_found ? = 6
? ? ?parameter_conflict ? ? ? ? ? = 7
? ? ?OTHERS ? ? ? ? ? ? ? ? ? ? ? = 8.
?CALL FUNCTION 'G_PERIOD_GET'
? ?EXPORTING
? ? ?date ? ? ? ? ? ? ? ? ? ? ? ? ? = l_date
***使用WL variant得到的period是周/年,空則是期間/年.
***在CO-PA或做計(jì)劃時(shí),通常是以周做period的.
? ? ?variant ? ? ? ? ? ? ? ? ? ? ? ?= P_variant ?"'WL'
? ?IMPORTING
? ? ?period ? ? ? ? ? ? ? ? ? ? ? ? = l_period
? ? ?year ? ? ? ? ? ? ? ? ? ? ? ? ? = l_year
? ?EXCEPTIONS
? ? ?ledger_not_assigned_to_company = 1
? ? ?period_not_defined ? ? ? ? ? ? = 2
? ? ?variant_not_defined ? ? ? ? ? ?= 3
? ? ?OTHERS ? ? ? ? ? ? ? ? ? ? ? ? = 4.
?weekran-sign ? = 'I'.
?weekran-option = 'EQ'.
?CONCATENATE l_year l_period+1(2) INTO wkran.
endform.
總結(jié)
以上是生活随笔為你收集整理的ABAP选择屏幕的例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: ABAP 删除内表重复数据
- 下一篇: ABAP 用户选择屏幕 搜索帮助 实现代
