版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 SAPSAP基本知識(shí)培訓(xùn)基本知識(shí)培訓(xùn)-ABAP-ABAP培訓(xùn)內(nèi)容培訓(xùn)內(nèi)容ABAP簡(jiǎn)介1ABAP基礎(chǔ)2ALV報(bào)表 3Function4Smartforms5Enhancement6BDC7ABAPABAP簡(jiǎn)介簡(jiǎn)介ABAPABAP簡(jiǎn)介簡(jiǎn)介ABAPABAP簡(jiǎn)介簡(jiǎn)介ABAPABAP簡(jiǎn)介簡(jiǎn)介謝謝!謝謝!ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)客戶端客戶端物料物料工廠工廠調(diào)度員調(diào)度員操作人操作人日期日期MANDTMATNRWERKSFEVOR自定義BLDATABAP基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)謝謝!謝謝!ABAPABAP基礎(chǔ)基礎(chǔ)16進(jìn)位數(shù)X001-65535Byte1X時(shí)
2、間數(shù)據(jù), 格式為HHMMSS0000006Byte6TPacked 數(shù), 用在小數(shù)點(diǎn)數(shù)01-16Byte8P數(shù)值0001-65535Byte1N整數(shù)0-231至231-14I浮點(diǎn)數(shù)08Byte8F日期數(shù)據(jù), 格式為YYYYMMDD000000008Byte8D字符串?dāng)?shù)據(jù), 如ProgramSpace1-65535Byte1CDescriptionInitial ValueRangeLengthTypeABAPABAP基礎(chǔ)基礎(chǔ)名稱作用SPACE空白字符串SY-SUBRC系統(tǒng)執(zhí)行返回值,0表示執(zhí)行成功SY-UNAME登陸帳號(hào)名稱SY-DATUM系統(tǒng)日期SY-UZEIT系統(tǒng)時(shí)間SY-TCODE目前的
3、事務(wù)代碼ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)謝謝!謝謝!ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)符號(hào)功能* 乘冪* 乘/ 除+ 加- 減DIV 整數(shù)除法MOD余數(shù)除法ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)批量重復(fù)操作的時(shí)候,可以定義sap宏來(lái)進(jìn)行操作語(yǔ)法:DEFINE . . &1 . &9 . END-OF-DEFINITION.DATA: x TYPE i
4、, y TYPE i, l TYPE i. DEFINE write_frame. x = sy-colno. y = sy-linno. WRITE: | NO-GAP, &1 NO-GAP, | NO-GAP. l = sy-colno - x. y = y - 1. SKIP TO LINE y. POSITION x. ULINE AT x(l). y = y + 2. SKIP TO LINE y. POSITION x. ULINE AT x(l). y = y - 1. x = sy-colno. SKIP TO LINE y. POSITION x. END-OF-DE
5、FINITION. SKIP. write_frame In a frame!. 謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)實(shí)例:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI WHERE CONNID IN AIRLINE.WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO. ENDSELECT.實(shí)例:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI.CH
6、ECK AIRLINE.WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.ENDSELECT.實(shí)例:SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.SELECT * FROM SPFLI.IF SPFLI-CONNID IN AIRLINE.WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.ENDIF.ENDSELECT. ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)語(yǔ)法語(yǔ)法: WRITE : WRITE 資料項(xiàng)
7、資料項(xiàng) 顯示格式參數(shù)顯示格式參數(shù): : LEFT-JUSTIFIED LEFT-JUSTIFIED 資料靠左顯示資料靠左顯示 CENTERED CENTERED 資料靠中間顯示資料靠中間顯示 RIGHT-JUSTIFIED RIGHT-JUSTIFIED 資料靠右顯示資料靠右顯示 UNDER UNDER 在資料項(xiàng)在資料項(xiàng)的的X X軸開始坐標(biāo)顯示軸開始坐標(biāo)顯示 NO-GAP NO-GAP 緊接著顯示緊接著顯示, , 不留空格不留空格 USING EDIT MASK USING EDIT MASK 使用內(nèi)嵌字符顯示使用內(nèi)嵌字符顯示, , 如如 11:20:3011:20:30 USING NO E
8、DIT MASK USING NO EDIT MASK 不使用內(nèi)嵌字符不使用內(nèi)嵌字符 NO-ZERO NO-ZERO 數(shù)字前面數(shù)字前面0 0 的部分不顯示的部分不顯示 NO-SIGN NO-SIGN 不顯示正負(fù)號(hào)不顯示正負(fù)號(hào) DECIMALS DECIMALS 顯示顯示 d d 位小數(shù)字?jǐn)?shù)位小數(shù)字?jǐn)?shù) EXPONENT F(EXPONENT F(浮點(diǎn)數(shù)浮點(diǎn)數(shù)) )的科學(xué)計(jì)數(shù)法表示的科學(xué)計(jì)數(shù)法表示 ROUND ROUND 四舍五入至小數(shù)位數(shù)下四舍五入至小數(shù)位數(shù)下 r r 位位 CURRENCY CURRENCY 幣別顯示幣別顯示 DD/MM/YY DD/MM/YY 日期顯示格式日期顯示格式ABAP
9、ABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)ABAPABAP基礎(chǔ)基礎(chǔ)謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)ABAPABAP基礎(chǔ)基礎(chǔ)n內(nèi)表 定義內(nèi)表ABAPABAP基礎(chǔ)基礎(chǔ)n內(nèi)表 APPEND指令A(yù)BAPABAP基礎(chǔ)基礎(chǔ)n內(nèi)表 COLLECT指令A(yù)BAPABAP基礎(chǔ)基礎(chǔ) Insert Line在指定的內(nèi)表位置之前插入新數(shù)據(jù)語(yǔ)法: INSERT INTO INITIAL LINE INTO INDEX 插入另一Internal Table元素語(yǔ)法: INSERT LINES OF FROM TO INTO INDEX 將中自至的范圍的數(shù)據(jù)插入至中, 位置在 之前。n內(nèi)表 INSERT指令A(yù)BAPABAP基礎(chǔ)基礎(chǔ)循環(huán)讀取
10、Internal Table元素?cái)?shù)據(jù)語(yǔ)法: LOOP AT INTO FROM TO WHERE ENDLOOP.根據(jù)設(shè)定的范圍選取數(shù)據(jù), 讀完后自動(dòng)移往下一筆。讀取Internal Table指定位置的元素語(yǔ)法: READ TABLE INTO INDEX 自指定位置 讀取元素?cái)?shù)據(jù)。根據(jù)字段內(nèi)容尋找語(yǔ)法: READ TABLE INTO COMPARING .n內(nèi)表 讀取內(nèi)表數(shù)據(jù)ABAPABAP基礎(chǔ)基礎(chǔ) 更新數(shù)據(jù)內(nèi)容語(yǔ)法: MODIFY FROM INDEX TRANSPORTING WHERE TRANSPORTING . : 指定更新的字段名稱。 Delete Lines刪除Intern
11、al Table 的數(shù)據(jù)語(yǔ)法: DELETE INDEX 加上刪除條件:DELETE FROM TO WHERE n內(nèi)表 修改內(nèi)表數(shù)據(jù)ABAPABAP基礎(chǔ)基礎(chǔ)內(nèi)表數(shù)據(jù)排序語(yǔ)法: SORT BY . : 可分成遞減(DESCENDING)和遞增(ASCENDING)。 : 為指定的字段 。計(jì)算數(shù)值字段總和語(yǔ)法: SUMSUM只能在 LOOP 中使用,計(jì)算所得總和存在工作區(qū)中。REFRESH 使用在有 HEADER LINE 的 Internal Table中, 清除所有元素CLEAR 使用在沒有 HEADER LINE 的 Internal Table中, 清除所有元素FREE 釋放(Relea
12、se) Internal Table所占的內(nèi)存空間, 用在 REFRESH 和 CLEAR指令之后n內(nèi)表 內(nèi)表操作謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)ABAPABAP基礎(chǔ)基礎(chǔ)自數(shù)據(jù)庫(kù)讀取記錄語(yǔ)法: SELECT DISTINCT FROM INTO WHERE GROUP BY ORDER BY 加上DISTINCT會(huì)自動(dòng)去除重復(fù)的記錄。以循環(huán)方式讀取所有記錄(這種方法效率不高,不建議使用) 語(yǔ)法: SELECT * ENDSELECT.讀取單筆記錄語(yǔ)法:SELECT SINGLE * FROM WHERE.將讀取的記錄存放至指定的工作區(qū)語(yǔ)法: SELECT INTO WHERE 將讀取的數(shù)據(jù)寫入內(nèi)表中 m語(yǔ)
13、法: SELECT INTO TABLE WHERE 語(yǔ)法: SELECT INTO TABLE PACKAGE SIZE SELECT UP TO ROWS INTO TABLE 一次讀取 筆記錄至 中n數(shù)據(jù)庫(kù)指令SELECT 指令 ABAPABAP基礎(chǔ)基礎(chǔ)條件敘述語(yǔ)法: WHERE (1).BETWEEN AND 在 至 之間的條件范圍 (2).LIKE 表示條件包含的字符串 _ : 表示一個(gè)字符 % : 表示一個(gè)字符串 (3).IN (.) 包含在 的條件ORDER BY 敘述根據(jù)關(guān)鍵字排序 (1). .ORDER BY PRIMARY KEY.根據(jù)指定的字段順序排序 (2)ORDER
14、BY DESCENDING DESCENDING/不建議用ORDER語(yǔ)句句關(guān)聯(lián)多個(gè)表查詢數(shù)據(jù)語(yǔ)法: SELECT AAF1 AAF2 BBF1 BBF2 CCF1 CCF2 INTO CORRESPONDING FIELDS OF TABLE ITAB_NAME(INTO CORRESPONDING FIELDS OF TABLE ITAB_NAME(INTO CORRESPONDING FIELDS OF TABLE ITAB_NAME表示按匹配數(shù)據(jù)字段保存進(jìn)去表示按匹配數(shù)據(jù)字段保存進(jìn)去) ) FROM TABLE1 AS A INNER JOIN TABLE2 AS B ON AAF1 =
15、 BBF1 AND AAF2 = BBF2 INNER JOIN TABLE3n數(shù)據(jù)庫(kù)指令SELECT 指令 ABAPABAP基礎(chǔ)基礎(chǔ) 自工作區(qū)加入一筆記錄至數(shù)據(jù)庫(kù)語(yǔ)法: INSERT INTO VALUES 自內(nèi)表加入一筆記錄至數(shù)據(jù)庫(kù)語(yǔ)法: INSERT FROM TABLE ACCEPTING DUPLICATE KEY將 中非 NULL的數(shù)據(jù)加入 中。 ACCEPTING DUPLICATE KEY檢查是否有關(guān)鍵字重復(fù)的記錄, 若有則此關(guān)鍵字重復(fù)的記錄不插入。n數(shù)據(jù)庫(kù)指令I(lǐng)NSERT 指令 ABAPABAP基礎(chǔ)基礎(chǔ) 使用Primary Key更新已存在的記錄內(nèi)容語(yǔ)法: UPDATE FR
16、OM 使用條件式更新已存在的記錄內(nèi)容語(yǔ)法: UPDATE SET = WHERE 根據(jù)條件式更新符合條件式的記錄n數(shù)據(jù)庫(kù)指令UPDATE 指令 ABAPABAP基礎(chǔ)基礎(chǔ)根據(jù) Primary Key 尋找數(shù)據(jù)文件中符合的記錄, 若找到則更新, 若找不到則新增記錄語(yǔ)法: MODIFY FROM Example: WA-NO = 34051920. WA-COMPANY = DELTA. MODIFY SPFLI FROM WA.n數(shù)據(jù)庫(kù)指令MODIFY 指令 ABAPABAP基礎(chǔ)基礎(chǔ) 刪除數(shù)據(jù)文件的記錄使用 Primary Key語(yǔ)法: DELETE FROM 使用條件式語(yǔ)法: DELETE FR
17、OM WHERE 根據(jù)條件式刪除符合條件式的記錄n數(shù)據(jù)庫(kù)指令DELETE 指令 ABAPABAP基礎(chǔ)基礎(chǔ)要確定數(shù)據(jù)成功寫入數(shù)據(jù)庫(kù), 可使用COMMIT WORK 指令, 如: COMMIT WORK.相反的, 如果反悔要復(fù)原, 可使用 ROLLBACK WORK, 可復(fù)原在上個(gè)COMMIT WORK 指令之后更新的數(shù)據(jù), 如: ROLLBACK WORK.n數(shù)據(jù)庫(kù)指令COMMIT WORK 與 ROLLBACK WORK謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)ABAPABAP基礎(chǔ)基礎(chǔ)= 或 EQ 等于 或 或 NE 不等于 或 LT 小于 或 GT 大于= 或 GE 大于等于AND 且OR 或NOT 非n邏輯控制
18、指令比較符號(hào)ABAPABAP基礎(chǔ)基礎(chǔ)IF 敘述語(yǔ)法: IF . ELSEIF . ELSEIF . . ELSE. ENDIF. (1).在每個(gè)判斷敘述之后要加上 .。 (2).在巢狀循環(huán)之中無(wú)法使用 ELSE 敘述, ELSE 敘述屬 IF 敘述CASE 敘述語(yǔ)法: CASE . WHEN . WHEN . . WHEN OTHERS. ENDCASE.n邏輯控制指令條件敘述ABAPABAP基礎(chǔ)基礎(chǔ) 計(jì)次循環(huán)語(yǔ)法: DO . VARYING dobj FROM dobj1 NEXT dobj2 RANGE range. statement_block ENDDO. 條件循環(huán)語(yǔ)法: WHILE
19、 . ENDWHILEn邏輯控制指令循環(huán)敘述ABAPABAP基礎(chǔ)基礎(chǔ) CONTINUE:跳至循環(huán)的下一次 CHECK CHECK 之后條件成立才繼續(xù)往下執(zhí)行循環(huán),否則調(diào)到下一次循環(huán)中。 EXIT:結(jié)束循環(huán)敘述 無(wú)窮循環(huán)。DO . ENDDO.無(wú)窮循環(huán)必須配合 EXIT 敘述來(lái)執(zhí)行。n邏輯控制指令循環(huán)控制敘述ABAPABAP基礎(chǔ)基礎(chǔ) 在ABAP/4中可以使用 Include 加載另一個(gè)程序, 通常用于共享數(shù)據(jù)項(xiàng)的定義,與C 中Include header file 的做法很類似。語(yǔ)法: INCLUDE Global 變量定義應(yīng)用。語(yǔ)法: DATA: BEGIN OF COMMON PART ,
20、END OF COMMON PART .此常使用在 Include 的檔案中 n程序模塊簡(jiǎn)介Include ProgramABAPABAP基礎(chǔ)基礎(chǔ) 在ABAP/4中子程序的調(diào)用可分成內(nèi)部調(diào)用和外部調(diào)用, 前者編寫在程序中, 后者存在另一程序中, 通常為專存放子程序的公用程序集,可提供結(jié)不同的子程序調(diào)用。 Subroutine 的定義 FORM . ENDFORM.n程序模塊簡(jiǎn)介Subroutine ProcedureABAPABAP基礎(chǔ)基礎(chǔ)Call By Reference:(引用調(diào)用傳參數(shù)時(shí)將數(shù)據(jù)的存放地址傳至參數(shù)中, 也就是子程序中的參數(shù)變量與外部實(shí)際變量共享地址內(nèi)的值, 又稱為Call
21、By Address, 若在子程序中地址中的值改變了, 外部實(shí)際變量的值也會(huì)跟著改變。語(yǔ)法: FORM USING CHANGING PERFORM USING CHANGING Using 之后接在子程序中不會(huì)改變的變量, CHANGING接會(huì)改變值的變量但實(shí)際上USING之后的參數(shù)在子程序中也可將值改變。Call By Value(值調(diào)用傳參數(shù)時(shí)將數(shù)據(jù)的值復(fù)制一份至另一地址中, 所以在子程序中參數(shù)變量值改變, 并不會(huì)影響外部實(shí)際變數(shù)的值.語(yǔ)法: FORM USING VALUE() CHANGING 使用 VALUE()表示只使用的值但不改變的值PERFORM USING Call By
22、Value and Return Result傳入?yún)?shù)值的方式同Call By Value相同, 但在子程序結(jié)束執(zhí)行時(shí)會(huì)將傳入的參數(shù)值復(fù)制一份傳回給外部實(shí)際變數(shù)。語(yǔ)法: FORM CHANGING VALUE() PERFORM CHANGING n程序模塊簡(jiǎn)介參數(shù)值的傳遞ABAPABAP基礎(chǔ)基礎(chǔ) CHECK CHECK 之后條件成立才繼續(xù)向下執(zhí)行子程序 EXIT強(qiáng)迫結(jié)束子程序執(zhí)行, 返回上一層程序敘述。n程序模塊簡(jiǎn)介Subroutine 的控制ABAPABAP基礎(chǔ)基礎(chǔ) INITIALIZATION在選擇屏幕出現(xiàn)之前執(zhí)行,在這里可以給選擇屏幕中的字段和備注中的字段賦值 AT SELECTION
23、-SCREEN在這個(gè)事件里響應(yīng)的是屏幕上選擇條件中的事件 START-OF-SELECTION報(bào)表程序必須執(zhí)行的事件,在進(jìn)入第二屏幕之前觸發(fā)。 END-OF-SELECTION選擇屏幕結(jié)束處理。n事件介紹謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)ALVALV什么是什么是ALVALV在在R/3 4.6CR/3 4.6C之前之前ALVALV列表全稱為列表全稱為ABAP List ViewerABAP List Viewer,在其,在其后的版本中,已經(jīng)更名為后的版本中,已經(jīng)更名為SAP List ViewerSAP List Viewer。簡(jiǎn)單來(lái)說(shuō)就是。簡(jiǎn)單來(lái)說(shuō)就是一種一種SAPSAP列表輸出的方式。在列表輸出的方式。在
24、SAPSAP系統(tǒng)中,系統(tǒng)中,ALVALV是以表格控是以表格控件的形式出現(xiàn)在用戶屏幕中實(shí)現(xiàn)的,具體還有兩種情況:件的形式出現(xiàn)在用戶屏幕中實(shí)現(xiàn)的,具體還有兩種情況:作為整個(gè)屏幕輸出,是唯一的屏幕元素。作為整個(gè)屏幕輸出,是唯一的屏幕元素。作為屏幕元素之一與其他屏幕元素結(jié)合出現(xiàn)。作為屏幕元素之一與其他屏幕元素結(jié)合出現(xiàn)。ALVALV的特點(diǎn)的特點(diǎn)ALVALV列表是列表是SAPSAP系統(tǒng)中新的列表標(biāo)準(zhǔn),可以在系統(tǒng)中新的列表標(biāo)準(zhǔn),可以在ABAPABAP程序或者程序或者SAP QuerySAP Query等報(bào)表中輸?shù)葓?bào)表中輸出,除了傳統(tǒng)列表出,除了傳統(tǒng)列表輸出時(shí)可以顯示數(shù)據(jù)和少量的交互功能(退出,下翻頁(yè)等)之外
25、,還提供了大量的其輸出時(shí)可以顯示數(shù)據(jù)和少量的交互功能(退出,下翻頁(yè)等)之外,還提供了大量的其他交互功能,包括他交互功能,包括排序,匯總等。相對(duì)于排序,匯總等。相對(duì)于SAPSAP的傳統(tǒng)列表輸出形式,的傳統(tǒng)列表輸出形式,ALVALV列表有以下優(yōu)點(diǎn):列表有以下優(yōu)點(diǎn):ALVALV是獨(dú)立的二進(jìn)制軟件元素。是獨(dú)立的二進(jìn)制軟件元素。安裝在系統(tǒng)的前臺(tái)(即安裝在系統(tǒng)的前臺(tái)(即SAPGUISAPGUI中),將列表處理功能從應(yīng)用服務(wù)器移至顯示層,中),將列表處理功能從應(yīng)用服務(wù)器移至顯示層,因而因而提高了相應(yīng)速度。提高了相應(yīng)速度??梢酝ㄟ^可以通過ABAP ObjectsABAP Objects中的系統(tǒng)全局類實(shí)現(xiàn)。中的
26、系統(tǒng)全局類實(shí)現(xiàn)。nALV列表概述ALVALV 目前為止,最常用的ALV有以下兩種類型: LIST型與GRID型 LISTLIST型型ALVALV列表列表LIST型的ALV列表與傳統(tǒng)WRITE輸出的列表樣式更為相近,只是除標(biāo)準(zhǔn)菜單欄之外,在工具欄上還有許多功能按鈕。 GRIDGRID型型ALVALV列表列表GRID型ALV列表比較類似EXCEL的樣子,與LIST一致的是它也有很多功能按鈕。n兩種簡(jiǎn)單的ALV列表類型ALVALV ALV列表可以比較自由的調(diào)整欄位的寬度,直接通過拖拽來(lái)調(diào)整欄位的順序,通過使用Optimum width功能自動(dòng)優(yōu)化欄位寬度為最優(yōu)寬度這些基本功能 .nALV列表最常用的
27、功能顯示明細(xì)排序篩選列匯總列打印列表使用EXCEL打開使用WORD打開下載至文件使用SAP郵寄圖表和ABC分析表改變布局最終用戶文檔ALVALV LISTLIST列表型顯示函數(shù)列表型顯示函數(shù)REUSE_ALV_LIST_DISPLAY: 輸出LIST型列表REUSE_ALV_POPUP_TO_SELECT:在彈出的對(duì)話框中顯示LIST列表 GRIDGRID列表型顯示函數(shù)列表型顯示函數(shù)REUSE_ALV_GRID_DISPLAYREUSE_ALV_GRID_DISPLAY:輸出:輸出GRIDGRID型列表型列表 nALV常用函數(shù)介紹ALVALV調(diào)用ALV的函數(shù),除了輸出使用的內(nèi)表是之外,還有兩個(gè)
28、部分是必需確認(rèn)的列欄位屬性和布局屬性。顧名思義列欄位屬性就是設(shè)置輸出中列的位置,列的參照,列的標(biāo)題等信息;同樣布局屬性是設(shè)置輸出ALV列表的整體布局的屬性。之前的示例中,沒有調(diào)用列欄位屬性是因?yàn)檩敵霰硎悄硞€(gè)系統(tǒng)結(jié)構(gòu)表,直接輸入系統(tǒng)結(jié)構(gòu)名函數(shù)可參照此結(jié)構(gòu)創(chuàng)建列屬性,從而輸出。沒有調(diào)用布局屬性時(shí),系統(tǒng)按默認(rèn)布局輸出,不做任何調(diào)整。針對(duì)這兩個(gè)屬性對(duì)應(yīng)的輸入,下面分別對(duì)IT_FIELDCAT與IT_LAYOUT的參數(shù)值做簡(jiǎn)單介紹,學(xué)員可據(jù)此進(jìn)行練習(xí)。IT_FIELDCATIT_FIELDCAT中常用參數(shù),函數(shù)中,中常用參數(shù),函數(shù)中,IT_FIELDCATIT_FIELDCAT參照參照SLIS_T_FI
29、ELDCAT_ALVSLIS_T_FIELDCAT_ALV,IT_LAYOUTIT_LAYOUT常用參數(shù),函數(shù)中常用參數(shù),函數(shù)中IT_LAYOUTIT_LAYOUT參照參照SLIS_LAYOUT_ALVSLIS_LAYOUT_ALV,nALV常用參數(shù)ALVALVALV列表包含一些預(yù)定義的功能,之前講過的篩選,匯總等都是ALV列表設(shè)置好的標(biāo)準(zhǔn)功能。ALV列表如果需要打印表頭是否能處理呢?如果需要在標(biāo)準(zhǔn)的ALV中增加功能是否能處理呢?答案當(dāng)然是可以的。ALVALV輸出標(biāo)題函數(shù),輸出標(biāo)題函數(shù), REUSE_ALV_COMMENTARY_WRITE: 是在ALV中輸出表頭的函數(shù),應(yīng)在ALV的TOP-O
30、P-PAGE事件中調(diào)用。 nALV事件謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)FunctionFunctionFunction中文翻譯為功能模塊是存儲(chǔ)在中央庫(kù)內(nèi)的特殊外部子程序. R/3系統(tǒng)提供大量預(yù)定義的功能模塊,可以從ABAP/4程序中進(jìn)行調(diào)用,而且可以創(chuàng)建自己的功能模塊。每個(gè)功能模塊都有其獨(dú)立的功能,調(diào)用功能模塊時(shí)通過輸入輸出參數(shù)進(jìn)行數(shù)據(jù)的傳遞實(shí)現(xiàn)其本身的功能.n Function的基本組件 FunctionFunction輸入?yún)?shù):用于將數(shù)據(jù)從調(diào)用程序傳遞到功能模塊; 輸出參數(shù):用于將數(shù)據(jù)從功能模塊傳遞回調(diào)用程序; 更改參數(shù):既是輸入?yún)?shù)又是輸出參數(shù),更改傳遞給功能模塊的值,并將其返回給調(diào)用程序; 表格參
31、數(shù):是通過內(nèi)表進(jìn)行參數(shù)傳遞,處理方式與更改參數(shù)一樣; 例外:用于處理功能模塊中可能發(fā)生錯(cuò)誤的情況,調(diào)用程序檢查是否發(fā)生了錯(cuò)誤,然后采取相應(yīng)的措施. n Function簡(jiǎn)介FunctionFunction使用語(yǔ)句:CALL FUNCTION EXPORTING f1 = a1 . fn = an IMPORTING f1 = a1 . fn = an CHANGING f1 = a1 . fn = an TABLES f1 = a1 . fn = an EXCEPTIONS e1 = r1 . en = rn OTHERS = ro.nFunction的調(diào)用 使用TCODE:SE37nFunc
32、tion的創(chuàng)建 創(chuàng)建實(shí)例:創(chuàng)建一個(gè)取物料描述的function。輸入物料代碼,輸出物料描述,最后寫report調(diào)用。需要支持批量查詢。PS:物料表MARA,物料描述表MAKT。nFunction的創(chuàng)建 謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)SMARTFORM 當(dāng)需要從系統(tǒng)中打印出一張單據(jù)的時(shí)候,需要用到form這種開發(fā)工具。例如:系統(tǒng)中針對(duì)某一筆交易開了發(fā)票,那客戶付款后也應(yīng)該收到一張收款證明,寫明購(gòu)買的商品信息以及價(jià)格信息,購(gòu)買日期等,這樣雙方都對(duì)這筆交易的歷史保留了一定的依據(jù),那這張給客戶的紙制發(fā)票就是取了系統(tǒng)中的交易數(shù)據(jù)打印出來(lái)的發(fā)票.nSmartform簡(jiǎn)介SMARTFORMnSmartform界面SM
33、ARTFORM 制作Smartform時(shí)是在form編輯器里面設(shè)置,我們?cè)诰庉嬈骼镉玫降墓ぞ叻譃槿糠? 最左邊是導(dǎo)航樹:導(dǎo)航樹里面包含了設(shè)計(jì)smartform時(shí)用到的所有元素,包括頁(yè),窗口,文本等; 中間是主屏幕,在這個(gè)屏幕里,被選中的元素都會(huì)有對(duì)應(yīng)的幾個(gè)頁(yè)面去設(shè)置元素的屬性,例如可以設(shè)置窗口的寬度/高度等;最右邊是form畫板,在這里一般都會(huì)設(shè)置頁(yè)面的布局,如窗口的位置大小等,可以通過單擊工具欄的表格繪制器按鈕,設(shè)置form畫板的顯示/不顯示狀態(tài); 如果需要設(shè)置某個(gè)元素的屬性,可以在左邊的導(dǎo)航樹中選中該元素雙擊,中間的主屏幕中會(huì)出現(xiàn)該元素的屬性設(shè)置頁(yè)面;Form編輯器的組成SMARTFOR
34、M Smartform中所有的元素都在左邊的導(dǎo)航樹中以節(jié)點(diǎn)的形式表示; 子節(jié)點(diǎn)繼承上層節(jié)點(diǎn)的屬性,例如格式.如果一個(gè)節(jié)點(diǎn)沒有被執(zhí)行,那么它下面所有的子節(jié)點(diǎn)將都不被執(zhí)行.但是子節(jié)點(diǎn)是獨(dú)立的,它在父節(jié)點(diǎn)執(zhí)行完之后開始執(zhí)行; 如果一個(gè)節(jié)點(diǎn)包含有子節(jié)點(diǎn),可以在左邊導(dǎo)航樹單擊三角形符號(hào)展開它的結(jié)構(gòu)看到子節(jié)點(diǎn); 在最上層的節(jié)點(diǎn)中,有兩個(gè)默認(rèn)存在的節(jié)點(diǎn):全局設(shè)置;頁(yè)和窗口. n導(dǎo)航樹SMARTFORM 菜單:工具-打印表格-SMRTFORMS-智能表格;(T-CODE:SMARTFORMS) 雙擊進(jìn)入表格繪制器 輸入事務(wù)代碼:SMARTFORMS,點(diǎn)執(zhí)行按鈕進(jìn)入表格繪制器; 輸入一個(gè)名稱,此名稱必須以Z/Y
35、開頭,點(diǎn)創(chuàng)建按鈕進(jìn)入開發(fā)界面; 輸入一個(gè)短描述; 表格屬性-輸出選項(xiàng):這里設(shè)置全局的表格屬性,例如紙張大小,默認(rèn)頁(yè)面的行間距,字間距等; 表格接口是用來(lái)定義輸入輸出參數(shù)的; 系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)PAGE,為這個(gè)PAGE修改容易識(shí)別的短描述; 一般屬性中設(shè)置PAGE的屬性; 在PAGE下面,系統(tǒng)自動(dòng)創(chuàng)建了一個(gè)MAIN WINDOW; 如需創(chuàng)建其他窗口,可將光標(biāo)定位在PAGE上,右鍵-創(chuàng)建-窗口.n創(chuàng)建SMARTFORMS步驟SMARTFORM在窗口的輸出選項(xiàng)中可以設(shè)置窗口的一些屬性,如邊距,高度,寬度等;單擊工具欄中的按鈕表格繪制器,可以在彈出的窗口中,使用鼠標(biāo)拖動(dòng)窗口,設(shè)置窗口布局,再次單擊按鈕
36、表格繪制器,可將繪制窗口暫時(shí)關(guān)閉,進(jìn)行其他設(shè)置;在窗口下面創(chuàng)建一個(gè)模板:選中窗口,右鍵-創(chuàng)建-模板;為模板輸入一個(gè)短描述;單擊編輯按鈕,可以為行繪制列,需要幾列就繪制幾列;要添加行,點(diǎn)細(xì)節(jié)按鈕,插入一行,這里也可以設(shè)置列寬;模板下面創(chuàng)建一個(gè)文本,用來(lái)輸出內(nèi)容;文本的輸出選項(xiàng)中,可以設(shè)置此文本的內(nèi)容是在表格的第幾行、第幾列中輸出文本的一般屬性中可以輸入要輸入的內(nèi)容,如果是變量,可以在工具欄選擇按鈕,在左下角彈出的對(duì)話框中有所有的數(shù)據(jù)來(lái)源,選擇所要輸出的變量名,拖到文本中的相應(yīng)位置(變量輸出時(shí)要放在兩個(gè)&符號(hào)之間).nSMARTFORMS操作SMARTFORM 選中樣式按鈕 輸入一個(gè)以Z/
37、Y開頭的程序名稱,單擊創(chuàng)建按鈕; 進(jìn)入Style編輯器,選中段落格式-右鍵-創(chuàng)建節(jié)點(diǎn); 在彈出的對(duì)話框中輸入段落格式名,如P1,點(diǎn)確定; 給段落格式輸入一個(gè)短描述,然后就可以設(shè)置段落格式的屬性了; 在表頭數(shù)據(jù)標(biāo)準(zhǔn)設(shè)置選項(xiàng)頁(yè)的標(biāo)準(zhǔn)設(shè)置選擇一個(gè)已設(shè)置好的段落格式作為標(biāo)準(zhǔn)段落格式,該格式在SMARTFORMS中是被默認(rèn)引用的.即SMARTFORMS的表格屬性中選擇該樣式,則文本中的字體默認(rèn)使用樣式中的標(biāo)準(zhǔn)格式. 設(shè)置好之后保存并激活,此格式便可在Form中被調(diào)用; 字符格式的創(chuàng)建方法同段落格式.nSMARTFORMS樣式SMARTFORM 這個(gè)Function主要是用來(lái)取你要調(diào)用的Smartform
38、對(duì)應(yīng)的Function Module的名字然后賦值給FM_NAME,因?yàn)镾MARTFORM對(duì)應(yīng)的Function Module名字很長(zhǎng),并且難以記憶;可以通過Call function SSF_FUNCTION_MODULE_NAME 獲取.獲取完后同樣以Call Function的方式調(diào)用已經(jīng)設(shè)計(jì)好的Smartform. Smartforms同F(xiàn)unction Module一樣有輸入?yún)?shù),輸出參數(shù),更改參數(shù),表格參數(shù),異常等支持同其它程序的交互.n調(diào)用SMARTFORMS謝謝!謝謝!結(jié)語(yǔ)結(jié)語(yǔ)Enhancement增強(qiáng)(enhancement)的概念其實(shí)很廣,SAP標(biāo)準(zhǔn)系統(tǒng)之上的所有二次開發(fā),
39、我們都可以理解為增強(qiáng),做增強(qiáng)的目的就是標(biāo)準(zhǔn)的sap正常的業(yè)務(wù)系統(tǒng)不能滿足實(shí)際需求,所以我們?cè)跇?biāo)準(zhǔn)的系統(tǒng)基礎(chǔ)進(jìn)行增加不同的功能來(lái)達(dá)到不同企業(yè)的要求,換句話說(shuō)我們今天開發(fā)過程中所有的ADD-ON都可以說(shuō)是增強(qiáng)開發(fā)。但作為開發(fā)人員所說(shuō)的增強(qiáng)主要是標(biāo)準(zhǔn)系統(tǒng)事先預(yù)留好的接口,根據(jù)不同業(yè)務(wù)需求,進(jìn)行開發(fā),我們稱為增強(qiáng),又叫出口。nEnhancement介紹 Enhancement 出口就是一段程序執(zhí)行到最后必經(jīng)的一段程序。正常的業(yè)務(wù)系統(tǒng)不能滿足實(shí)際需求,這時(shí)可以在出口中增加一些功能,來(lái)達(dá)到要求,這也就是為什么它還叫增強(qiáng)。在Sap中出口就是標(biāo)準(zhǔn)程序最后要調(diào)用的一個(gè)函數(shù)或者功能模塊,這個(gè)函數(shù)或功能模塊的輸入已
40、經(jīng)由Sap定義好。 SAP目前有四種增強(qiáng)方式 1、 UserExit ; 2、 Ehancement exits; 3、 BADI; 4、 Enhancement Implementation 。nExits簡(jiǎn)介EnhancementUserExit (基于源代碼的增強(qiáng))是sap提供一個(gè)空代碼的子過程,在這個(gè)子過程中用戶可以添加自己的代碼,控制自己的需求。這類增強(qiáng)都需要修改sap的標(biāo)準(zhǔn)代碼,它們?cè)诎l(fā)布的時(shí)候都是空的,集中在一些文件名倒數(shù)第二個(gè)字符為Z的包含程序中,由于在標(biāo)準(zhǔn)程序中,所以所有程序的全局?jǐn)?shù)據(jù)都可以使用,但同時(shí)系統(tǒng)升級(jí)時(shí)會(huì)被新版本覆蓋;這種源代碼增強(qiáng)和屏幕增強(qiáng)的說(shuō)明可以從事務(wù)碼 spro 后臺(tái)配置中相關(guān)模塊的路徑里面找到;一般是以UserExit_打頭的子模塊。找到所要增強(qiáng)的的程序,查找UserExit關(guān)鍵字。n UserExit EnhancementEhancement exits (基于函數(shù)模塊的增強(qiáng)),用SMOD和CMOD維護(hù);在SAP發(fā)布的版本中,使用Call customer-function xxx調(diào)用函數(shù)模塊的,所以你可以通過在程序中收cusomer
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育館環(huán)境衛(wèi)生承諾書
- 2024年研發(fā)設(shè)計(jì)與技術(shù)咨詢協(xié)議3篇
- 證券公司投資資產(chǎn)管理
- SP館租賃合同模板
- 鐵路軌道施工安全合同
- 設(shè)計(jì)工作室隔斷租賃協(xié)議
- 跨境支付項(xiàng)目澄清函參考模板
- 環(huán)保行業(yè)污染防治培訓(xùn)費(fèi)管理辦法
- 能源利用評(píng)審員管理辦法
- 機(jī)場(chǎng)化糞池改造工程合同
- 脊柱區(qū)1教學(xué)講解課件
- KK5-冷切鋸操作手冊(cè)-20151124
- 教你炒紅爐火版00纏論大概
- 消防管道施工合同
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 2023年國(guó)開大學(xué)期末考復(fù)習(xí)題-3987《Web開發(fā)基礎(chǔ)》
- 《駱駝祥子》1-24章每章練習(xí)題及答案
- 國(guó)際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 全國(guó)英語(yǔ)等級(jí)考試三級(jí)全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
評(píng)論
0/150
提交評(píng)論