【正文】
用來在輸出文本中插入一個帶下劃線的。用來生成空格字符串Underlineamp。用來指定外部打印設(shè)備類型Spacesamp。顯示當(dāng)前頁的下一頁Selected Device Typeamp。顯示當(dāng)前頁數(shù)Page Number of the Next Pageamp。顯示秒Current Page Numberamp。顯示分鐘Seconds Component of Current Timeamp。顯示小時Minutes Component of Current Timeamp。顯示當(dāng)前時間Hours Component of Current Timeamp。Current Timeamp。NAME_OF_MONTHamp。當(dāng)前天數(shù)的名字,比如Monday等等。將當(dāng)前日期轉(zhuǎn)換為本地日期(僅對COUNTRY = JAPAN)Current Day Nameamp。顯示當(dāng)前年號,四位數(shù)字Local Dateamp。顯示當(dāng)前的月數(shù)Current Year Numberamp。顯示當(dāng)前的天數(shù)Current Month Numberamp。顯示當(dāng)前時間Current Day Numberamp。這些system symbols可以參見下表,具體用法請參見sap online help名字定義描述Current Dateamp。MYSYMBOLamp。Mysymbolamp。mysymbolamp。KNA1UMSAT(i)amp。symbol(Zamp。mysymbol)amp。my symbolamp。 下面是一些無效的symbol的例子:amp。 amp。 amp。 amp。 amp。下面是一些有效的symbol的例子:amp。”符號之間的格式選項必須用“()”,而且表示格式的字母要用大寫。 在SAPscript Editor中不能將symbol分開在多行編寫,如果一定要這么做,需要使用long line來避免(long line段落格式為= or /=);168。 在symbol名字內(nèi)不能使用空白字符,而且也不能用39。 在一個symbol兩邊需要使用“amp。SAPscript自動識別symbols的類型;首先,檢查symbols是否為System symbols;如果不是,然后檢查symbols是否定義在調(diào)用程序的數(shù)據(jù)域中,如果是,就是Program symbols;如果不是,SAPscript就從TTDTG表中讀取,如果在TTDTG表中發(fā)現(xiàn)symbols,則為Standard symbol;如果上面都不是,就是Text symbols。 SymbolsSAPscript識別四種類型的symbols:l System symbolsl Standard symbolsl Program symbolsl Text symbols這四種類型之間的主要區(qū)別在于值的來源。該命令僅能定義一次。BARCODEamp。BARCODEamp。NEXTPAGEamp。PAGEamp。這里調(diào)用的ABAP中的子程序必須象下面這樣定義:FORM form TABLES IN_TAB STRUCTURE ITCSYOUT_TAB STRUCTURE ITCSY....ENDFORM.示例:在SAPscript from中,調(diào)用了ABAP程序QCJPERFO中的子程序GET_BARCODE。OUTVAR2amp。OUTVAR1amp。INVAR2amp。INVAR1amp。通過在子程序中設(shè)置symbol變量的值來完成子程序和文檔之間的通訊。語法:/: CASE symbol /: WHEN value1 : /: WHEN value2 : /: WHEN valuen : /: WHEN OTHERS. : /: ENDCASE注意:1)CASE語句必須以ENDCASE結(jié)束 2)WHEN OTHERS是可選的:PERFORM可以使用PERFORM命令調(diào)用ABAP子程序(FORM),可以這種調(diào)用來進行計算、從數(shù)據(jù)庫中獲取需要顯示和打印的數(shù)據(jù),格式化數(shù)據(jù)等等。語法:/: BOTTOM : : /: ENDBOTTOM同樣的,為了禁止Header Text,可以使用不帶任何文本的BOTTOM/ENDBOTTOM命令,就象這樣:/: BOTTOM/: END BOTTOM:IF可以用IF命令來控制只有當(dāng)滿足一定條件的時候,才打印相應(yīng)的文本行。語法:/: TOP: : /: ENDTOP這樣,main window中總是以TOP/ENDTOP中的文本行作為開始。 Co Finanzberatung Postfach 1234568499 Mannheim window中設(shè)置Header Text:TOP為了能夠總是在main window的頂部打印指定的文本行,可以使用TOP/ENDTOP命令。DE39。DE39。Mannheim39。6830939。6849939。1234539。Kapitalgasse 3339。Finanzberatung39。 Co39。 /: NAME 39。關(guān)于ADDRESSENDADDRESS控制命令的具體用法以及參數(shù)意義請參見SAP online help示例:/: ADDRESS /: TITLE 39。 2)如果INCLUDE命令中的文本頁包含STYLE命令,則即使使用了DOMINANT選項,INCLUDE命令中的文本仍然使用它自己的STYLE命令指定的樣式。INCLUDE命令使用SAPSCRIPTSUBRC作為狀態(tài)代碼返回:l 0:INCLUDE命令執(zhí)行成功l 1:命令包含語法錯誤,因而不能執(zhí)行l(wèi) 2:如果在SAPscript form中使用這個命令,將不會返回這個值l 4:指定文本沒有找到:STYLESTYLE控制命令允許改變文本的樣式,新的樣式對所有余下的文本有效,除非碰到另外一個STYLE命令,如果指定”*”作為樣式的名字,則執(zhí)行這個命令后,將恢復(fù)成系統(tǒng)原始樣式。這個例子將MYTEXT文本包含在當(dāng)前文本中,同時指定了語言版本,這個語言版本與調(diào)用INCLUDE的文本無關(guān),同時指定了這段文本將要使用的段落格式39。 PARAGRAPH 39。示例: /: INCLUDE MYTEXT 這個例子將MYTEXT文本包含在當(dāng)前文本中/: INCLUDE MYTEXT LANGUAGE 39。語法:/: RESET paragraph_format我們看一個例子,就明白了:假設(shè)有這樣一個段落N1,這個段落的作用是一個簡單的用戶交互,用戶通過輸入來做相應(yīng)的處理:* Proceed as follows if you want to work with the SAP R/3 system: N1 Ensure that you have a PC N1 Switch the PC on N1 Click on the SAP icon using the mouse. * You will then enter the SAP logon screen. In order to logon here, you must carry out the following actions: /: RESET N1 N1 Enter your user name N1 Enter your password N1 Select the application you want to use注意其中的/: RESET N1命令,這一段段落將象下面這樣輸出:Proceed as follows if you want to work with the SAP R/3 system: 1. Ensure that you have a PC 2. Switch the PC on 3. Click on the SAP icon using the mouse.You will then enter the SAP logon screen. In order to log on here, you must carry out the following actions: 1. Enter your user name 2. Enter your password 3. Select the application you want to use而如果沒有/: RESET N1命令,這一段段落輸出則為:Proceed as follows if you want to work with the SAP R/3 system:1. Ensure that you have a PC 2. Switch the PC on 3. Click on the SAP icon using the mouse. You will then enter the SAP logon screen. In order to log on here, you must carry out the following actions: 4. Enter your user name 5. Enter your password 6. Select the application you want to use:INCLUDE為了在當(dāng)前文本中包含其他文本,需要使用INCLUDE命令,需要注意的是SAPscript仍然將include進來的文本作為獨立的文本處理,僅僅只是在輸出時,才將include進來的文本插入到INCLUDE命令指定的地方作為輸出。country_keyamp。CAN39。為了指定一種格式選項,就是用SET COUNTRY命令。 設(shè)置與國家相關(guān)的格式:SET COUNTRY語法:/: SET COUNTRY country_key 其中country_key儲存在系統(tǒng)表T005X中,可以參照這個系統(tǒng)表,獲得要設(shè)置的country_key.說明: 某種類型的字段其格式與Country設(shè)置有關(guān)。 10 hours 08 minutes(輸出)時間MASK可以通過下面命令設(shè)置成缺省值:/: SET TIME MASK = 39。 amp。 10:08(輸出)/: SET TIME MASK = 39。amp。示例:假設(shè)當(dāng)前的系統(tǒng)時間為 10:08:12,則,/: SET TIME MASK = 39。time_mask39。 格式化Time字段:SET TIME MASK為了定義Time格式的字段,需要使用SET TIME MASK控制命令。 39。DATEamp。MMMM DD, YYYY39。DATEamp。Foster City, MM/DD/YY39。MASK可以是下面的代碼:l DD: day (two digits)l DDD: day name abbreviatedl DDDD: day name written out in fulll MM: month (two digits)l MMM: month name – abbreviatedl MMMM: month name written out in fulll YY: year (two digits)l YYYY: year (four digits) l LD: day (formatted as for the L option)l LM: month (formatted as for the L option)l LY: year (formatted as for the L option)在MASK中除了上面的代碼外出現(xiàn)的所有其它字符都被當(dāng)成簡單文本處理,直接拷貝到輸出。語法:/: SET DATE MASK = 39。以及后面的賦值symbol,可以看出,可以將一個symbol變量連同其他字符賦給另一個symbol變量,但是如果用“=” 賦值symbol,則當(dāng)“=”右邊的symbol變量值發(fā)生變化時,“=”左邊的值相應(yīng)發(fā)生變化;另外一個方面,如果用“=” 賦值symbol,則當(dāng)“:=”右邊的symbol變量值發(fā)生變化時,“:=”左邊的值并不發(fā)生變化。 SAPmail請注意觀察這兩個例子中的amp。 amp。 = 39。 /: DEFINE amp。symbol1amp。 := 39。 /: DEFINE amp。 = 39。 SAPscript第二個例子:/: DEFINE amp。 amp。 = 39。 /: DEFINE amp。symbol1amp。 = 39。 /: DEFINE amp。 = 39。請注意下面兩個例子:第一個例子:/: DEFINE amp。 分配給symbol的值最大可以有60個字符。 = 39。示例: /: DEFINE amp。如果想再次打印這個文本塊,必須再次給這個文本symbol賦值。value39。symbol_nameamp??梢允褂妹頝EWWINDOW來顯示的調(diào)用下一個main window,即使當(dāng)前的main window沒有填滿。這個特征使得SAPscript可以打印labels和輸出多列文本。 下一個main window命令:NEWWINDOW理論上,每一page能夠由99個main windows組成。注意:l 沒有PROTECT命令的ENDPROTECT命令是沒有任何作用的;l 如果漏掉了ENDPROTECT命令,SAPscript默認受保護的文檔直到文本結(jié)束;l PROTECT/ENDPROTECT不能嵌套,如果在第一個