1. 程式人生 > >ABAP總結-轉載,好全啊

ABAP總結-轉載,好全啊

後續本人新增:

事件流(6個):


  INITIALIZATION(初始化)


  AT SELECTION-SCREEN(螢幕跳出前)


  START-OF-SELECTION(取資料)


  END-OF-SELECTION(展示資料)


  TOP-OF-PAGE(普通報表輸出頁頭)


  END-OF-PAGE(普通報表輸出頁尾)

(來自網際網路)

1.      引用型別z_ref資料物件myref在程式中的宣告方式:

DATA myref TYPE z_ref.

CREATE DATA myref TYPE z_ref.

2.      參照資料字典中的表型別生成內表物件或結構體:

DATA mytable TYPE z_table,”資料字典表型別,宣告內表.

myline TYPE LINE OF z_table.”表型別的行結構,宣告結構體.

3.      取系統日期:SY-DATUM,

4.      取系統時間:SY-UZEIT.0

5.      系統欄位定位:SY-FDPOS.字元比較結果為真時,此欄位將給出偏移量資訊.

6.      系統欄位SY-FDPOS給出字元的位置資訊.(P109)

7.      系統欄位SY-INDEX記錄迴圈語句中的迴圈次數

8.      操作內錶行結束後系統欄位

SY-TABIX返回該行索引.對於所有行操作,如果操作成功,系統變數SY-SUBRC返回0,否則返回非0.

9.      系統使用者名稱:SY-UNAME.

10.  SY-HOST?螢幕序號:sy-dynnr.

11.  OK程式碼:SY-UCOMMSYST-UCOMM

12.  螢幕組ID:SY-DYNGR.

13.  常量宣告:CONSTANT const(len) TYPE type|LIKE dobj [DECIMALS dec] [VALUE val].

14.  確定資料物件屬性:DESCRIBE FIELD f [LENGTH l] [TYPE t [CONPONENTS n]] [OUTPUT-LENGTH o] [DECIMALS d] [EDIT MASK m] [HELP-ID h].

15.  資料賦值:MOVE source TO destination.destination = source.

16.  設定初始值:CLEAR F.

17.  檢查欄位是否為初始值:f IS INITIAL….

18.  檢查欄位是否被分配:fs IS ASSIGNED…..

19.  檢查過程中的引數是否被實參填充:p IS [SUPPLIED|REQUESTED]….

20.  檢查資料物件的值是否屬於某範圍之間:f1 BETWEEN f2 AND f3…..

21.  檢查資料物件f的內容是否遵從某個選擇表的邏輯條件:f in seltab….

22.  WRITE: /10 g,”10個空格後輸出變數g

/(8) time using edit mask ‘__:__:__’.”輸出的變數time保持8位的長度.

23.  將游標移動到下一行:SKIP.

24.  強制結束迴圈:EXIT,STOPREJECT.

25.  迴圈的中止:CONTINUE無條件中止當前迴圈並開始下一輪迴圈,CHECK條件為真時迴圈,為假時結束本次迴圈並開始下一輪迴圈,EXIT無條件中止並退出整個迴圈.

26.  將字串左移:SHIFT string.

27.  連線字串:CONCATENATE s1 s2 …..sn INTO s_dest [SEPARATED BY sep].如果結果出現被截斷的情況,SY-SUBRC返回4,否則返回0.符號&用於在字字串換行時的連線.

28.  根據分隔符sep拆分字串:SPLIT s_source AT sep INTO s1 s2 ……sn.使用內表操作可以避免被截斷的情況:SPLIT s_source AT sep INTO TABLE itab.此語句根據子串數目生成n行的內表.

29.  迴圈輸出內表的每一行資料:LOOP AT itab INTO text.ENDLOOP.

30.  替換欄位內容:REPLACE str1 WITH str2 INTO s_dest [LENGTH len]. 欄位SY-SUBRC的返回值為0時表示己成功替換.

31.  確定欄位長度:[COMPUTE] n = STRLEN( str ).

32.  刪除字串中的多餘空格:CONDENSE

33.  字元轉換,如將ABC轉換為abc:TRANSLATE

34.  建立一個可以排序的格式:CONVERT TEXT.

35.  用一個字串覆蓋另一個字串:OVERLAY

36.  WRITE TO賦值時將忽略資料物件的型別,而將其視為字元型別資料.

37.  字串比較中的換碼字元:#,用於轉換比較時使用的萬用字元:*+.及進行區分大小寫,空格的比較,#A表示比較大寫的A.

38.  定位操作子串:strName[+0][(1)].

39.  欄位符號,資料引用:動態資料物件.

40.  子過程定義:FORM subroutine_name USING parameters1 parameters2…. ….ENDFORM.

41.  子程式呼叫:PERFORM subroutine_name USING actual_parameters1 p2…. (其中USING可換成CHANGING)

42.  ULINE.輸出下劃線.

43.  錯誤檢視:ST22

44.  程式打包release:SE01:找到對應的程式,點開後點上面小汽車,再選中上面的後再點小汽車.check.程式修改後需要重新打包.

45.  製作T-CODE:SE93,TCODE應按順序編號:ZMF+流水號,我的程式名

46.  建立table:t-code:se11,attributes:Delivery class:C.開發類別:ZFI,當自定義Field type,名稱需為Z+…..格式.->設定技術屬性(Technical Setting):Logical storage parametersData class:APPL1,Size category:4à建立function group:SE80,建立好後將建立的TABLE掛接到function grouph上去:se11查出table,utilites->table maintenance generator:Authorization groups:&NC&,Function group中填剛才建立的功能組名稱->one step->overview screen中必須填未使用的number,此處screen numbertable是一一對應的關係,也可讓點系統上面的按鈕:find screen number來自動搜尋適合的scr. Number.->create,成功後,找到對應的function group中的screen number雙擊即可看到生成的程式碼.需要修改域名可在function group中的element listlayout.-->se93建立t-code,start objecttransaction with parameters(parameter transaction)->default values for->transantion:SM30->Default Values->name of screen field:viewname\update,value:table name\X.

47.  field-sign:,fieldoption:,field-low:表示選擇條件中起始值

48.  where子句中如果只有一個表的話,可以不用指定表名.

49.  獲取使用者IP地址及使用者名稱:

call function 'TH_USER_INFO'    " Get user IP,hostname

importing

hostaddr = iporg轉化前的IP地址

terminal = host計算機名

exceptions

 others   = 1.

"Conv.IP addr to format 'xxx.xxx.xxx.xxx'

call function 'ZGJ_IPADR2STRING'  "Conv.IP addr

exporting

ipadr   = iporg轉化前的IP地址

importing

string  = ipdec.轉化後的最終需要的IP地址

50.刪除內表中資料完全相同的行,只保留一行:  delete adjacent duplicates from itab1 COMPARING <f1> <f2> / COMPARING ALL FIELDS.

51.  spro:後臺設定

52.  輸出選擇框write:/ itab1-flag as checkbox

第四章 ABAP基礎

4.1.5 程式執行

1.程式內部呼叫,如下表:

功能

報表呼叫語句

事務呼叫語句

無返回呼叫

SUBMIT

LEAVE TO TRANSACTION

呼叫並返回

SUBMIT AND RETURN

CALL TRANSACTION

:

REPORT z_calling_program.

START-OF-PROGRAM.

WRITE ‘This program calls another program.’.”此內容在輸出介面看不到

SUBMIT z_simple_program.”上面的輸出被此程式覆蓋.

如果改用SUBMIT AND RETURN來呼叫則可以輸出以上內容.

2.結束程式:LEAVE PROGRAM.可在任意點強制結束當前執行的程式.

4.1.6 記憶體管理

SAP程式同一個使用者和系統可進行最多6SAPGUI主會話.

4.2.1 資料定義

TYPES:BEGIN OF t_staff,

S_no(3) type n,

Name(20),

END OF t_staff.

DATA staff TYPE t_staff.

上例中定義了一個結構型別t_staff,並根據其聲明瞭一個結構體物件staff.

資料型別中的扁平結構與縱深結構:

扁平型別:執行時長度固定的型別.

縱深型別:執行時長度可巒的型別.

4.2.2 ABAP內建基本資料型別:

資料

型別

預設大小

有效大小

初始值

說明

示例

C

1

1-65535

SPACE

文字字元()

‘name’

N

1

1-65535

’00…0’

數字文字

‘0123’

T

6

6

‘000000’

時間(HHMMSS)

‘123010’

D

8

8

‘00000000’

日期(YYYYMMDD)

‘20080101’

I

4

4

0

整型(整數)

99

F

8

8

0

浮點數

5E+04

P

8

1-16

0

壓縮數

12.91

X

1

1-65535X

‘0’

十六進位制數

‘3A’

String

1

無限定

SPACE

字串(長度可巒)

‘A String’

XString

1

無限定

SPACE

十六進位制字串

‘A3FF’

注意:

1.其中C,N,T,D,I,F,P,X為定長型別,即在執行期間長度不能改變.

2.型別T,D,I,F的資料儲存長度是固定的,不能指定參照其生成的資料物件佔用的記憶體位元組數.

3.基於型別C,N,P,X生成的資料物件需要在宣告時指定其長度.否則取預設值.

4.如果在宣告一個數據物件時未指明其資料型別,則該資料預設為C型別.

5.型別I的數值範圍:-231到231-1的整數.如果運算時出現非整型結果則進行四捨五入取值.而不是截斷小數.

6.型別P用於宣告小數字固定的壓縮數,其佔據記憶體位元組數和數值範圍取決於定義時指定的整個資料的大小和小數點後位數,如果不指定小數字,則將其視為I型別資料.有效大小可以是從1~16位元組的任意值,小數點後最多允許14個數字.

7,型別F為浮點數,浮點意思是數字在記憶體中以位元組形式表示,數值範圍:1*10-3071*10308,因系統將F型別轉換為二進位制數,所以可能出現舍入誤差,若使用者要求較高精度且數值較大時,應使用P型別資料.

8.長度可巒的內建型別String, XString是通過引用實際動態的資料物件的固定記憶體地址來操作.

4.2.3 程式內部資料定義

參照自定義型別或內建型別生成資料的語法格式:

TYPES|DATA …TYPE l_type…

參照程式中已經宣告的資料物件生成新資料語法:

TYPES|DATA …LIKE dobj…

3.結構型別和結構體

參照結構型別生成的資料物件稱為結構體.

TYPES|DATA:BEGIN OF structure.

k1 [TYPE type |LIKE dobj]…,

k2 [TYPE type |LIKE dobj]…,

kn [TYPE type |LIKE dobj]…,

END OF structure.

參照生成:

參照結構生成:TYPES|DATA structure TYPE str_type |LIKE str_dobj...

參照資料庫表生成:TYPES|DATA structure TYPE dbtab.

4.表型別和內表

表型別的物件稱為內表.

4.2.4 資料字典中的型別

l   資料元素(Data elements),相當於ABAP中的基本型別和引用型別.

l   結構(Structures),由資料元素欄位構成,對應ABAP中的結構型別.

l   表型別(Table types),對應ABAP中的表型別.

資料字典中的資料型別與ABAP中的中資料型別對應關係:

資料字典型別

ABAP型別

執行長度

說明

ACCP

N(6)

6

會計結算週期

CHAR

C(n)

1~255

字元

CLNT

C(3)

3

集團,資料區域程式碼

CUKY

C(5)

5

貨幣程式碼

CURR(n,m)

P((n+1)/2)DECIMAL m

1~17

貨幣金額

DATS

D(8)

8

日期

DEC n,m

P((n+1)/2)DECIMAL m

n(1~31)m(1~17)

數值計算

FLTP

F(8)

18

浮點數

INT1

X(1)(型別b)

3

單位元組整型數

INT2

X(2)(型別s)

5

雙位元組整型數

INT4

X(4)(型別i)

10

四位元組整型數

LANG

C(1)

內部1位外部2

語言程式碼

LCHR

C(n)

256~最大值

長字元

LRAW

X(n)

256~最大值

長位字元

NUMC n

N(n)

1~255

數值文字

PREC

X(2)

16

精確度

QUAN n,m

P((n+1)/2)DECIMAL m

1~17

數量

RAW n

X(n)

1~255

位字串

TIMS

T(6)

6

時間

VARC n

C(n)

255~最大值

長字元(V3.0前可用)

STRING

STRING

1~最大值

字串

RAWSTRING

XSTRING

1~最大值

位字串

UNIT

C(n)

2~3

單位

4.2.5 程式中的資料物件

1.文字物件

當字元文字長度超過編輯器的一行時,可以使用”&”進行連線,避免因換行而產生的多餘空格,:long = ‘This is ‘&

‘a long sentence’.

如果需要輸出“,則需要在前面多加一個“”轉回願意.

2.有名稱的資料物件

常量宣告:

CONSTANT: const(len) TYPE|LIKE dobj [DECIMALS dec] VALUE val.

結構體常量宣告(每個元件必須指定初始值):

CONSTANT:BEGIN OF structure,

str1 TYPE|LIKE dobj [DECIMALS dec] VALUE val,

str2 TYPE|LIKE dobj [DECIMALS dec] VALUE val,

...,

strn TYPE|LIKE dobj [DECIMALS dec] VALUE val,

END OF structure.

3.系統資料物件(見附表)

4.查明資料物件屬性

DESCRIBE FIELD f LENGTH len.此語句將欄位f的長度寫入變數len.

l   LENGTH:確定資料物件長度.

l   TYPE: 確定資料物件型別.

l   OUTPUT-LENGTH:確定實際輸出長度.

l   DECIMALS:確定P型別小數位長.

l   EDIT MASK:確定在資料字典中定義轉換例程.

l   HELP-ID:確定在資料字典中定義的F1幫助資訊.

4.3 基本資料操作

4.3.1資料賦值

l   MOVE source TO incept.等介於:incept = source.

l   CLEAR dobj.將資料物件dobj還原為初始值.

l   結構體間賦值:struct2 = struct1.(元件結構相同).

l   MOVE-CORRESPONDING struct1 TO struct2.(部分元件結構相同).

4.3.2型別轉換(見附表).

4.3.3數值運算

1.算術運算

運算

數學表示式語句

關鍵詞語句

加法

n = x + y.

ADD y TO x.

減法

n = x – y.

SUBTRACT y FROM x.

乘法

n = x * y.

MULTIPLY x BY y.

除法

n = x / y.

DIVIDE x BY y.

整除

n = x DIV y.

取餘

n = x MOD y.

(乘方)

n = x ** y.

兩個結構體的同名欄位之間可以整體進行算術運算:

ADD-CORRESPONDING struct1 TO struct2.

SUBTRACT-CORRESPONDING struct1 FROM struct2.

MULTIPLY-CORRESPONDING struct2 BY struct1.

DIVIDE-CORRESPONDING struct2 BY struct1.

以上將對兩個結構體中的同名欄位進行相應運算(非數值型別資料會引起錯誤).

2.數學函式

任意型別引數的函式列表:

函式名

說明

ABS( dobj )

返回引數絕對值

SIGN( dobj )

返回引數符號:正數返回1,0返回0,負數返回-1.

TRUNC( dobj )

返回引數的整數部分

FRAC( dobj )

返回引數的小數部分

CEIL( dobj )

返回不小於輸入引數的最小整數值

FLOOR( dobj )

返回不大於輸入引數的最大整數值

注意:函式名與左括號間不能有空格,括號與引數間必須有空格.

F型別引數的函式列表(其它型別引數將首先被轉換為F型別).

函式名

說明

COS,SIN,TAN

三角函式

ACOS,ASIN,ATAN

反三角函式

COSH,SINH,TANH

雙曲函式

EXP

底數為e(2.7182818285)的冪函式

LOG

底數為e的自然對數

LOG10

底數為10的對數

SQRT

平方根

4.3.4資料輸出

輸出格式化選項:

選項

應用型別

說明

LEFT-JUSTIFIED

所有型別

左對齊

CENTERED

所有型別

居中

RIGHT-JUSTIFIED

所有型別

右對齊

UNDER g

所有型別

輸出直接開始於欄位g

NO-GAP

所有型別

忽略輸出時欄位後的一位空格

USING EDIT MASK m

所有型別

指定資料字典中定義的格式模板m

USING NO EDIT MASK

所有型別

撤消對格式模板的啟用

NO-ZERO

所有型別

用空格替代所有有前導零

NO-SIGN

數值型別

不輸出前導符號

DECIMALS d

數值型別

輸出d定義小數點後的數字位數,如需截斷,則四捨五入

EXPONENT e

數值型別

F型別欄位在e>定義冪指數

ROUND r

數值型別

10的負r次方乘P型別欄位,然後取整

CURRENCY c

數值型別

按系統表格TCURX中定義的格式將貨幣c格式化

DD/MM/YY|MM/DD/YY

時間日期

格式調整,”/”為使用者主記錄中定義的分隔符

DD/MM/YYYY,...(同上)

時間日期

格式調整,”/”為使用者主記錄中定義的分隔符

DDMMYY...(同上)

時間日期

格式調整,無分隔符

:使用者主記錄System->User profile->Own data(SU01).

相關推薦

ABAP總結-轉載,

後續本人新增: 事件流(6個):   INITIALIZATION(初始化)   AT SELECTION-SCREEN(螢幕跳出前)   START-OF-SELECTION(取資料)   END-OF-SELECTION(

Python爬蟲總結(轉載)

其中 網頁 -i 變量 oba cati nod style 應該 [html] view plain copy 最近總是要爬取一些東西,索性就把Python爬蟲的相關內容都總結起來了,自己多動手還是好。 (1)普通的內容爬取(2)保存爬取的圖片/

最近要學各種東東

dalvik dal baidu http lis aid com hao123 ongl DaLVIk%E5%86%85%E5%AD%98%E8%B0%83%E6%95%B4%E5%8F%8A%E7%9B%91%E6%8E%A7%E6%8A%A5%E5%91%8A ht

aNDROID新手入門水

android 新手 .com roi baidu ongl androi hao123 com %E8%B0%81%E5%9C%A8%E7%99%BE%E5%BA%A6pCs%E6%96%B9%E9%9D%A2%E6%98%AF%E9%AB%98%E6%89%8B%E5%

經典sql 語句總結,轉載於http://www.iteye.com/topic/1117462

agent 作業 方案 插入 delet 連接參數 將不 彈出 mic 一、基礎1、說明:創建數據庫CREATE DATABASE database-name 2、說明:刪除數據庫drop database dbname3、說明:備份sql server--- 創建 備份數

使用html5中video自定義播放器必備知識點總結以及JS屏API介紹

標簽 quest htm round internet tel ren per 全屏 一、video的js知識點: controls(控制器)、autoplay(自動播放)、loop(循環)==video默認的; 自定義播放器中一些JS中提供的方法和屬性的記錄: 1、pla

PHP優化加速之Opcache使用總結(轉載)

invalid spa span php優化 根目錄 key RM 實時 php5 轉自 http://blog.csdn.net/why_2012_gogo/article/details/51134674 PHP優化加速之Opcache使用總結: Opcache是一種通

多人 一個 family 發現 決定 post 小時 ont pos 一道SA的題我寫了四個小時,然後還沒寫出來。。。寫到最後我發現用我的方法還要加一個線段樹才能解決,而此時代碼已240+。。。我絕望了。。。看到好多人說SAM厲害。。。可是我沒學過。。。我以為SA就夠了

Selenium2+python自動化-窗口多標簽處理方法總結(轉載)

left 內置 drive sele 瀏覽器中 height sre 對象 處理方法 本篇轉自博客:上海-小T 原文地址:https://i.cnblogs.com/EditArticles.aspx?opt=1 我們在用Selenium遇到多個瀏覽器窗口或單個瀏覽器多個標

轉載局拉普拉斯平滑之(1)Strucutre extraction from texture via relative total variation及稀疏矩陣求解

場景 solid b2c eas ont 進行 hidden tis watermark 全局拉普拉斯平滑之(1)Strucutre extraction from texture via relative total variation及稀疏矩陣求解 2018年01月3

localStorage使用總結(轉載)

一、什麼是localStorage、sessionStorage 在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地儲存來使用的,解決了cookie儲存空間不足的問題(cookie中每條cookie的儲存空間為4k),localStorage中一般瀏覽器支援的是

JVM調優總結(轉載)

轉載:https://blog.csdn.net/wuzhilon88/article/details/49201891 一.堆大小設定  JVM 中最大堆大小有三方面限制:相關作業系統的資料模型(32-bt還是64-bit)限制;系統的可用虛擬記憶體限制;系統的可用實體記憶體限制。32位系統下,一般限制在

#程式設計師吐槽同事高薪不要去讀研,網友:提升自己挺

很多大學生畢業之後直接去找工作但是卻因為薪資太低,或者覺得平臺不適合自己,又聽說讀研之後的各種好處種種,便選擇繼續回去讀研,期待著讀研出來後選擇更好的平臺跳槽或者學些什麼來提升自己。 如果有想學習java的程式設計師,可來我們的java學習扣qun:72340,3928免費送java的視訊教

常用模組(自己總結,不)

collections模組:python中的擴充套件資料型別 namedtuple:命名元組 Point = namedtuple("point", ["x", "y"]) p1 = Point(1, 2) ->得

Java中this和super的用法總結(轉載)

這幾天看到類在繼承時會用到this和super,這裡就做了一點總結,與各位共同交流,有錯誤請各位指正~ this this是自身的一個物件,代表物件本身,可以理解為:指向物件本身的一個指標。 this的用法在java中大體可以分為3種: 1.普通的直接引用 這種就不用講了,this相當於是指向當前物

糾結,JEECG 商業版本和開源版本有什麼區別呢

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

資料庫知識點總結——轉載

資料庫知識點總結歸納 一、基本概念 1、資料 (1)資料的定義:對客觀事物的符號表示,如圖形符號、數字、字母等,資料是資料庫中儲存的基本物件。 (2)資料的種類:文字、圖形、影象、聲音 (3)資料的特點:資料與其語義是不可分的   2、資料庫  資

var 是 Java 開發的朋友

簡評:Java var != JavaScript var。 Java 10 中引入了新的語法用於區域性變數型別推斷,很多開發者有所疑惑,希望這篇文章能幫到你。 什麼是型別推斷 其實在 Java 中型別推斷早就存在了,看下下面的例子: public void doSomething() {

總結的SQL的優化方法。。。

轉自:https://www.cnblogs.com/cnzxy/p/9392721.html --導致查詢緩慢的原因 1、資料量過大 2、表設計不合理 3、sql語句寫得不好 4、沒有合理使用索引 -- 針對SQL語句的優化 1、查詢語句中不要使用 * 2、儘量減

這可能是總結的最的Mysql基礎知識了

  一、為什麼要學習資料庫 二、資料庫的相關概念 DBMS、DB、SQL 三、資料庫儲存資料的特點 四、初始MySQL MySQL產品的介紹 MySQL產品的安裝 ★ MySQL服務的啟動和停