************************************************************************
DATA : HEADER1 LIKE GXXLT_P,
HEADER2 LIKE GXXLT_P.
*DEFINE 5 INTERNAL TABLES FOR HOLDING DATA FROM PRDEFINED STRUCTURES.
* THIS STRUCTURE ‘GXXLT_O’ IS FOR ‘ONLINE DISPLAY’
DATA : BEGIN OF ONLINE OCCURS 1 .
INCLUDE STRUCTURE GXXLT_O.
DATA : END OF ONLINE.
* THIS STRUCTURE ‘GXXLT_P’ IS FOR ‘PRINTING PURPOSE‘
DATA : BEGIN OF PRINT OCCURS 1 .
INCLUDE STRUCTURE GXXLT_P.
DATA : END OF PRINT.
* THIS STRUCTURE ‘GXXLT_H’ IS FOR ‘HORIZONTAL PURPOSE’
DATA : BEGIN OF HORZ OCCURS 1 .
INCLUDE STRUCTURE GXXLT_H.
DATA : END OF HORZ.
* THIS STRUCTURE ‘GXXLT_V’ IS FOR ‘VERTICAL PURPOSE’
DATA : BEGIN OF VERTICAL OCCURS 1 .
INCLUDE STRUCTURE GXXLT_V.
DATA : END OF VERTICAL.
* THIS STRUCTURE ‘GXXLT_S’ IS FOR CHANGING FUNCTIONALITY
* I.E SUMMATION OR SUBCTRACTION’
DATA : BEGIN OF SEMAS OCCURS 1 .
INCLUDE STRUCTURE GXXLT_S.
DATA : END OF SEMAS.
************************************************************************
************************************************************************
* Header text for the data columns................
VERTICAL-COL_NO = 1.
VERTICAL-COL_NAME = '檢驗批號'.
APPEND VERTICAL.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 1.
HORZ-COL_NAME = '批次'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 2.
HORZ-COL_NAME = '物料號碼'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 3.
HORZ-COL_NAME = '檢驗物件短文'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 4.
HORZ-COL_NAME = '節點號碼'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 5.
HORZ-COL_NAME = '特性'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 6.
HORZ-COL_NAME = '主要檢驗特性'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 7.
HORZ-COL_NAME = '檢驗特性的短文'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 8.
HORZ-COL_NAME = '短文'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 9.
HORZ-COL_NAME = '測量值的最小值'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 10.
HORZ-COL_NAME = '測量值的最高值'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 11.
HORZ-COL_NAME = '測量值的平均值'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 12.
HORZ-COL_NAME = '目標值(規格)'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 13.
HORZ-COL_NAME = '最大值(規格)'.
APPEND HORZ.
HORZ-ROW_NO = 1.
HORZ-COL_NO = 14.
HORZ-COL_NAME = '最大值(規格)'.
APPEND HORZ.
************************************************************************
SEMAS-COL_NO = 1.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 2.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 3.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 4.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 5.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 6.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 7.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 8.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 9.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.
SEMAS-COL_NO = 10.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
SEMAS-COL_NO = 11.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
SEMAS-COL_NO = 12.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
SEMAS-COL_NO = 13.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
SEMAS-COL_NO = 14.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
SEMAS-COL_NO = 15.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.
************************************************************************
CALL FUNCTION 'XXL_FULL_API'
EXPORTING
DATA_ENDING_AT = SY-DBCNT
DATA_STARTING_AT = 1
FILENAME = 'XXLT0001'
HEADER_1 = 'HEADER1'
HEADER_2 = 'HEADER2'
NO_DIALOG = SPACE
* NO_START = ' '
N_ATT_COLS = 14
N_HRZ_KEYS = 1
N_VRT_KEYS = 1
SEMA_TYPE = 'X'
* SO_TITLE = ' '
TABLES
DATA = ITAB
HKEY = HORZ
ONLINE_TEXT = ONLINE
PRINT_TEXT = PRINT
SEMA = SEMAS
VKEY = VERTICAL
EXCEPTIONS
CANCELLED_BY_USER = 1
DATA_TOO_BIG = 2
DIM_MISMATCH_DATA = 3
DIM_MISMATCH_SEMA = 4
DIM_MISMATCH_VKEY = 5
ERROR_IN_HKEY = 6
ERROR_IN_SEMA = 7
FILE_OPEN_ERROR = 8
FILE_WRITE_ERROR = 9
INV_DATA_RANGE = 10
INV_WINSYS = 11
INV_XXL = 12
OTHERS = 13.
************************************************************************
Thursday, March 5, 2009
Wednesday, March 4, 2009
Configuring Batch Management
Logistics general - Batch Management
1.1. Specify Batch Level
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Specify batch level and activate batch status management Transaction OMCT
1.2. Batch Number - Activate Internal Number Assignment
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Number Assignment --> Activate internal batch number assignment Transaction OMCZ
1.3. Batch Creation - for Goods Movements
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Creation of new batches --> Define batch creation for goods movements Transaction
1.4. Characteristic Value Assignment -- Update Standard Characteristics
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Characteristic Value Assignment --> Update Standard Characteristics Transaction
1.5. Activate Batch Classification for Goods Movements in Inventory Management
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Characteristic Value Assignment --> Valuation for goods movements --> Activate Batch Classification for goods movements in Inventory Management Transaction OMCV
1.6. Batch Determination – Condition Table(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Condition Tables --> Define production order condition tables Transaction OPLB
1.7. Batch Determination – Condition Table(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Condition Tables --> Define SD condition Tables Transaction V/C7
1.8. Batch Determination – Access Sequence(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Access Sequences --> Define Production Order Access Sequences Transaction OPLF
1.9. Batch Determination – Access Sequence(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Access Sequences --> Define SD Access Sequences Transaction V/C2
1.10. Batch Determination – Strategy Types
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Production Order Strategy Types Transaction OPLE
1.11. Batch Determination – Strategy Types
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define SD Strategy Types Transaction V/C1
1.12. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define IM Search Procedure Transaction OMCY
1.13. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Production order Search Procedure Transaction OPLG
1.14. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define SD Search Procedure Transaction V/C3
1.15. Batch Determination – Batch Search Procedure Allocation
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Allocate IM search procedure/activate check Transaction OMCG
1.16. Batch Determination – Batch Search Procedure Allocation
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Assign Search procedure to production order Transaction OPL8
1.17. Batch Determination – Batch Search Procedure Allocation(SD)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Allocate SD Search procedure Transaction V/C5
1.18. Batch Determination – Activate Automatic Batch Determination(SD)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Activate Automatic Batch Determination in SD -->For delivery item categories Transaction V/CL
1.19. Batch Determination – Batch Selection Class
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Selection Classes Transaction CL01
1.20. Batch Determination – Sort Rule
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Sort Rules Transaction CU70
1.21. Batch Determination – Make Settings for Batch Where-used list
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Make Settings for Batch Where-used list Transaction OMBB
分手的原因
在他大三的時候交了一個學妹,兩個人一個帥一個美,
簡直是學校裡最強的一道閃光,經過了約半年的交往後,
男同學想說也該去見見女方的父母了,就在一次巧妙的安排下,
到了女方的家裡去作客,女方是鄉下人,對待客人非常熱情,
當晚他媽展現他的拿手廚藝,煮了非常豐盛一桌出來,一方面是歡迎客人,
一方面是讓出門在外念書的女兒補補身體,滿滿的一桌親友,好不熱鬧,
整個飯局在酒精加上我同學豐富的幽默感下,可說是非常成功,
大概吃到快尾聲的時候,媽媽突然又端出一道菜來,
說這是她畢生的拿手絕活,麻油炒雙腰
暫停...
名詞解釋:雙腰就是腰子加雞腰,白話就是豬的腎臟+雞的睪丸
繼續....
我同學當然要給這未來岳母捧個場,
在嚐過這道菜後我同學開始大讚未來岳母的好手藝,
並且順勢體貼的夾了一顆雞睪丸給他女朋友,
女朋友馬上回絕,說他不敢吃這種東西,
我同學加他母親及眾親友不斷努力勸說,
解釋這營養價值有多高,
但他女友依然不為所動,不願意入口,最後在大家都放棄的情況下,
我同學說了一句話...成了他們分手的原因
奇怪~生的你就敢吃,熟的反而不敢
這趟旅程結束後,這段感情也跟著結束了!!
ABAP STRING
REPORT ZDEMO_DATA_STRING.
* shifting strings by a given number of places
DATA: t1(10) TYPE c VALUE 'abcdefghij',
string1 LIKE t1.
string1 = t1.
WRITE string1.
SHIFT string1.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES LEFT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES RIGHT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES CIRCULAR.
WRITE / string1.
abcdefghij
bcdefghij
defghij
abcdefg
defghijabc
SKIP.
ULINE.
* shifting up to a given string
DATA: t2(10) TYPE c VALUE 'abcdefghij',
string2 LIKE t2,
str2(2) TYPE c VALUE 'ef'.
string2 = t2.
WRITE string2.
SHIFT string2 UP TO str2.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 LEFT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 RIGHT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 CIRCULAR.
WRITE / string2.
abcdefghij
efghij
efghij
abcdef
efghijabcd
SKIP.
ULINE.
* shifting a string depending on the first or last sign
DATA: t3(14) TYPE c VALUE ' abcdefghij',
string3 LIKE t3,
str3(6) TYPE c VALUE 'ghijkl'.
string3 = t3.
WRITE string3.
SHIFT string3 LEFT DELETING LEADING space.
WRITE / string3.
string3 = t3.
SHIFT string3 RIGHT DELETING TRAILING str3.
WRITE / string3.
abcdefghij
abcdefghij
abcdef
SKIP.
ULINE.
* replacing values
DATA: t4(10) TYPE c VALUE 'abcdefghij',
string4 LIKE t4,
str41(4) TYPE c VALUE 'cdef',
str42(4) TYPE c VALUE 'klmn',
str43(2) TYPE c VALUE 'kl',
str44(6) TYPE c VALUE 'klmnop',
len4 TYPE i VALUE 2.
string4 = t4.
WRITE string4.
REPLACE str41 WITH str42 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str42 INTO string4 LENGTH len4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str43 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str44 INTO string4.
WRITE / string4.
abcdefghij
abklmnghij
abklmnefgh
abklghij
abklmnopgh
SKIP.
ULINE.
* translating signs
DATA: t5(10) TYPE c VALUE 'AbCdEfGhIj',
string5 LIKE t5,
rule5(20) TYPE c VALUE 'AxbXCydYEzfZ'.
string5 = t5.
WRITE string5.
TRANSLATE string5 TO UPPER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 TO LOWER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 USING rule5. "#EC SYNTCHAR
WRITE / string5.
AbCdEfGhIj
ABCDEFGHIJ
abcdefghij
xXyYzZGhIj
SKIP.
ULINE.
* overlaying strings
DATA: t6(10) TYPE c VALUE 'a c e g i ',
string6 LIKE t6,
over6(10) TYPE c VALUE 'ABCDEFGHIJ',
str6(2) TYPE c VALUE 'ai'.
string6 = t6.
WRITE string6.
WRITE / over6.
OVERLAY string6 WITH over6.
WRITE / string6.
string6 = t6.
OVERLAY string6 WITH over6 ONLY str6.
WRITE / string6.
a c e g i
ABCDEFGHIJ
aBcDeFgHiJ
A c e g I
SKIP.
ULINE.
*searching strings
DATA string7(30) TYPE c VALUE 'This is a little sentence.'.
WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
ULINE /1(26).
SEARCH string7 FOR 'X'.
WRITE: / 'X', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 'itt '.
WRITE: / 'itt ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '.e .'.
WRITE: / '.e .', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '*e'.
WRITE: / '*e ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 's*'.
WRITE: / 's* ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
Searched SY-SUBRC SY-FDPOS
X 4 0
itt 0 11
.e . 0 15
*e 0 10
s* 0 17
SKIP.
ULINE.
*
DATA: string8(30) TYPE c VALUE 'This is a fast first example.',
pos8 TYPE i,
off8 TYPE i.
WRITE / string8.
SEARCH string8 FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', sy-fdpos.
pos8 = sy-fdpos + 2.
SEARCH string8 FOR 'ft' ABBREVIATED STARTING AT pos8 AND MARK.
WRITE / string8.
WRITE: / 'SY-FDPOS:', sy-fdpos.
off8 = pos8 + sy-fdpos - 1.
WRITE: / 'Off:', off8.
This is a fast first example.
SY-FDPOS: 10
This is a fast FIRST example.
SY-FDPOS: 4
Off: 15
SKIP.
ULINE.
* length of a string
DATA: int TYPE i,
word1(20) TYPE c VALUE '12345',
word2(20) TYPE c ,
word3(20) TYPE c VALUE ' 4 '.
int = strlen( word1 ). WRITE int.
int = strlen( word2 ). WRITE / int.
int = strlen( word3 ). WRITE / int.
5
0
4
SKIP.
ULINE.
* condensing strings
DATA: string9(25) TYPE c VALUE ' one two three four',
len9 TYPE i.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9 NO-GAPS.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
one two three four !
Length: 25 one two three four !
Length: 18 onetwothreefour !
Length: 15
SKIP.
ULINE.
* concatenating strings
DATA: c1(10) TYPE c VALUE 'Sum',
c2(3) TYPE c VALUE 'mer',
c3(5) TYPE c VALUE 'holi ',
c4(10) TYPE c VALUE 'day',
c5(30) TYPE c ,
sep(3) TYPE c VALUE ' - '.
CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.
CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
WRITE / c5.
Summerholiday
Sum - mer - holi - day
SKIP.
ULINE.
* splitting strings
DATA: string10(60) TYPE c ,
p1(20) TYPE c VALUE '++++++++++++++++++++',
p2(20) TYPE c VALUE '++++++++++++++++++++',
p3(20) TYPE c VALUE '++++++++++++++++++++',
p4(20) TYPE c VALUE '++++++++++++++++++++',
del10(3) TYPE c VALUE '***'.
string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
WRITE string10.
SPLIT string10 AT del10 INTO p1 p2 p3 p4.
WRITE / p1.
WRITE / p2.
WRITE / p3.
WRITE / p4.
Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
Part 1
Part 2
Part 3
Part 4 *** Part 5
SKIP.
ULINE.
* moving parts of strings
DATA: mc1(10) TYPE c VALUE 'ABCDEFGHIJ',
mc2(10) TYPE c .
MOVE mc1 TO mc2 PERCENTAGE 40.
WRITE mc2.
MOVE mc1 TO mc2 PERCENTAGE 40 RIGHT.
WRITE / mc2.
ABCD
ABCD
* shifting strings by a given number of places
DATA: t1(10) TYPE c VALUE 'abcdefghij',
string1 LIKE t1.
string1 = t1.
WRITE string1.
SHIFT string1.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES LEFT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES RIGHT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES CIRCULAR.
WRITE / string1.
abcdefghij
bcdefghij
defghij
abcdefg
defghijabc
SKIP.
ULINE.
* shifting up to a given string
DATA: t2(10) TYPE c VALUE 'abcdefghij',
string2 LIKE t2,
str2(2) TYPE c VALUE 'ef'.
string2 = t2.
WRITE string2.
SHIFT string2 UP TO str2.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 LEFT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 RIGHT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 CIRCULAR.
WRITE / string2.
abcdefghij
efghij
efghij
abcdef
efghijabcd
SKIP.
ULINE.
* shifting a string depending on the first or last sign
DATA: t3(14) TYPE c VALUE ' abcdefghij',
string3 LIKE t3,
str3(6) TYPE c VALUE 'ghijkl'.
string3 = t3.
WRITE string3.
SHIFT string3 LEFT DELETING LEADING space.
WRITE / string3.
string3 = t3.
SHIFT string3 RIGHT DELETING TRAILING str3.
WRITE / string3.
abcdefghij
abcdefghij
abcdef
SKIP.
ULINE.
* replacing values
DATA: t4(10) TYPE c VALUE 'abcdefghij',
string4 LIKE t4,
str41(4) TYPE c VALUE 'cdef',
str42(4) TYPE c VALUE 'klmn',
str43(2) TYPE c VALUE 'kl',
str44(6) TYPE c VALUE 'klmnop',
len4 TYPE i VALUE 2.
string4 = t4.
WRITE string4.
REPLACE str41 WITH str42 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str42 INTO string4 LENGTH len4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str43 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str44 INTO string4.
WRITE / string4.
abcdefghij
abklmnghij
abklmnefgh
abklghij
abklmnopgh
SKIP.
ULINE.
* translating signs
DATA: t5(10) TYPE c VALUE 'AbCdEfGhIj',
string5 LIKE t5,
rule5(20) TYPE c VALUE 'AxbXCydYEzfZ'.
string5 = t5.
WRITE string5.
TRANSLATE string5 TO UPPER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 TO LOWER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 USING rule5. "#EC SYNTCHAR
WRITE / string5.
AbCdEfGhIj
ABCDEFGHIJ
abcdefghij
xXyYzZGhIj
SKIP.
ULINE.
* overlaying strings
DATA: t6(10) TYPE c VALUE 'a c e g i ',
string6 LIKE t6,
over6(10) TYPE c VALUE 'ABCDEFGHIJ',
str6(2) TYPE c VALUE 'ai'.
string6 = t6.
WRITE string6.
WRITE / over6.
OVERLAY string6 WITH over6.
WRITE / string6.
string6 = t6.
OVERLAY string6 WITH over6 ONLY str6.
WRITE / string6.
a c e g i
ABCDEFGHIJ
aBcDeFgHiJ
A c e g I
SKIP.
ULINE.
*searching strings
DATA string7(30) TYPE c VALUE 'This is a little sentence.'.
WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
ULINE /1(26).
SEARCH string7 FOR 'X'.
WRITE: / 'X', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 'itt '.
WRITE: / 'itt ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '.e .'.
WRITE: / '.e .', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '*e'.
WRITE: / '*e ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 's*'.
WRITE: / 's* ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
Searched SY-SUBRC SY-FDPOS
X 4 0
itt 0 11
.e . 0 15
*e 0 10
s* 0 17
SKIP.
ULINE.
*
DATA: string8(30) TYPE c VALUE 'This is a fast first example.',
pos8 TYPE i,
off8 TYPE i.
WRITE / string8.
SEARCH string8 FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', sy-fdpos.
pos8 = sy-fdpos + 2.
SEARCH string8 FOR 'ft' ABBREVIATED STARTING AT pos8 AND MARK.
WRITE / string8.
WRITE: / 'SY-FDPOS:', sy-fdpos.
off8 = pos8 + sy-fdpos - 1.
WRITE: / 'Off:', off8.
This is a fast first example.
SY-FDPOS: 10
This is a fast FIRST example.
SY-FDPOS: 4
Off: 15
SKIP.
ULINE.
* length of a string
DATA: int TYPE i,
word1(20) TYPE c VALUE '12345',
word2(20) TYPE c ,
word3(20) TYPE c VALUE ' 4 '.
int = strlen( word1 ). WRITE int.
int = strlen( word2 ). WRITE / int.
int = strlen( word3 ). WRITE / int.
5
0
4
SKIP.
ULINE.
* condensing strings
DATA: string9(25) TYPE c VALUE ' one two three four',
len9 TYPE i.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9 NO-GAPS.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
one two three four !
Length: 25 one two three four !
Length: 18 onetwothreefour !
Length: 15
SKIP.
ULINE.
* concatenating strings
DATA: c1(10) TYPE c VALUE 'Sum',
c2(3) TYPE c VALUE 'mer',
c3(5) TYPE c VALUE 'holi ',
c4(10) TYPE c VALUE 'day',
c5(30) TYPE c ,
sep(3) TYPE c VALUE ' - '.
CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.
CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
WRITE / c5.
Summerholiday
Sum - mer - holi - day
SKIP.
ULINE.
* splitting strings
DATA: string10(60) TYPE c ,
p1(20) TYPE c VALUE '++++++++++++++++++++',
p2(20) TYPE c VALUE '++++++++++++++++++++',
p3(20) TYPE c VALUE '++++++++++++++++++++',
p4(20) TYPE c VALUE '++++++++++++++++++++',
del10(3) TYPE c VALUE '***'.
string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
WRITE string10.
SPLIT string10 AT del10 INTO p1 p2 p3 p4.
WRITE / p1.
WRITE / p2.
WRITE / p3.
WRITE / p4.
Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
Part 1
Part 2
Part 3
Part 4 *** Part 5
SKIP.
ULINE.
* moving parts of strings
DATA: mc1(10) TYPE c VALUE 'ABCDEFGHIJ',
mc2(10) TYPE c .
MOVE mc1 TO mc2 PERCENTAGE 40.
WRITE mc2.
MOVE mc1 TO mc2 PERCENTAGE 40 RIGHT.
WRITE / mc2.
ABCD
ABCD
PP Functions
===================================================
BOM
CS03 CSAP_MAT_BOM_READ
-------------------------------------------
MATERIAL W32070
PLANT Y110
BOM_USAGE 1
CS15 CS_WHERE_USED_MAT
-------------------------------------------
DATUB 2999/01/01
DATUV 1901/01/01
MATNR W32070
WERKS Y110
STKO - BOM Header
STPO - BOM item
MAST - Material to BOM Link
MAPL - Assignment Task Lists to Materials
===================================================
PROCESS ORDER
COR3 CBIF_GLM1_PROCESS_ORDER_READ
--------------------------------------------
I_AUFNR 110112
PLSO - Routing Group Sequence
PLPO - Routing Group Operations
You can use below function module to get list of routing operation detailsInput fields (PLNTY - Task List Type 'N', PLNNR - Group, PLNAL - Group counter), these fileds take from table MAPL
C203 CARO_ROUTING_READ
---------------------------------------------
DATE_FROM 1900/01/01
DATE_TO 9999/12/31
PLNTY 2
PLNNR 0000156
PLNAL 1
MATNR W32070
===================================================
MD04 MD_STOCK_REQUIREMENTS_LIST_API
MD_MRP_LIST_API
MD_READ_MATERIAL
MD_READ_MATERIAL_SIMPLE
===================================================
BOM展開和反查函數
CSS4 BOM 展開
CS_BOM_EXPLOSION_MAT
BOM explosion (old version); as of 3.0, use CS_BOM_EXPL_MAT_V2 CS_BOM_EXPL_MAT_V2
BOM explosion for material
CSS5 BOMs: 反查清單
CS_WHERE_USED_MAT
Bills of material; where-used list
CS_WHERE_USED_MAT_ANY
Bills of material; where-used list as material or class item
CS_WHERE_USED_MAT_VIA_CLA
Bills of material; where-used list via classes
===================================================
三個方法:
1.CS15
2.FM:CS_WHERE_USED_MAT
3.根據表:STAS和STPO第三個方法弄不好效率會比較差
BOM
CS03 CSAP_MAT_BOM_READ
-------------------------------------------
MATERIAL W32070
PLANT Y110
BOM_USAGE 1
CS15 CS_WHERE_USED_MAT
-------------------------------------------
DATUB 2999/01/01
DATUV 1901/01/01
MATNR W32070
WERKS Y110
STKO - BOM Header
STPO - BOM item
MAST - Material to BOM Link
MAPL - Assignment Task Lists to Materials
===================================================
PROCESS ORDER
COR3 CBIF_GLM1_PROCESS_ORDER_READ
--------------------------------------------
I_AUFNR 110112
AFKO - Production Order Header
AFPO - Production Order Position (Details)
===================================================
ROUTING
PLSO - Routing Group Sequence
PLPO - Routing Group Operations
You can use below function module to get list of routing operation detailsInput fields (PLNTY - Task List Type 'N', PLNNR - Group, PLNAL - Group counter), these fileds take from table MAPL
C203 CARO_ROUTING_READ
---------------------------------------------
DATE_FROM 1900/01/01
DATE_TO 9999/12/31
PLNTY 2
PLNNR 0000156
PLNAL 1
MATNR W32070
===================================================
MD04 MD_STOCK_REQUIREMENTS_LIST_API
MD_MRP_LIST_API
MD_READ_MATERIAL
MD_READ_MATERIAL_SIMPLE
===================================================
BOM展開和反查函數
CSS4 BOM 展開
CS_BOM_EXPLOSION_MAT
BOM explosion (old version); as of 3.0, use CS_BOM_EXPL_MAT_V2 CS_BOM_EXPL_MAT_V2
BOM explosion for material
CSS5 BOMs: 反查清單
CS_WHERE_USED_MAT
Bills of material; where-used list
CS_WHERE_USED_MAT_ANY
Bills of material; where-used list as material or class item
CS_WHERE_USED_MAT_VIA_CLA
Bills of material; where-used list via classes
===================================================
三個方法:
1.CS15
2.FM:CS_WHERE_USED_MAT
3.根據表:STAS和STPO第三個方法弄不好效率會比較差
Tuesday, March 3, 2009
Subscribe to:
Posts (Atom)