版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
TOC\o"1-4"\h\z1SAPscriptForms31.1SAPscript的組成31.2Forms:組件和技術(shù)31.2.1概念3修改SAPForms3Forms:概念4Client和語言版本:概念41.2.2組件4HeaderData4ParagraphFormatsandAttributes6CharacterFormatsandAttributes8Windows8Pages(頁面)10Pageswindow(頁面窗口)11TextElements(文本元素)121.2.3技術(shù)15在Form中包含圖形15在FORM中包含公司logo17在form中打印條形碼24UsingBoxes,Lines,andShading272.SAPscriptControlCommands302.1ControlCommands語法302.2ControlCommands種類302.2.1顯示分頁:NEW302.2.2限制分頁:PROTECT312.2.3下一個mainwindow命令:NEW-WINDOW312.2.4給文本symbol分配值:DEFINE312.2.5格式化日期字段:SETDATEMASK322.2.6格式化Time字段:SETTIMEMASK332.2.7設(shè)置與國家相關(guān)的格式:SETCOUNTRY332.2.8設(shè)置symbol位:SETSIGN342.2.9InitializingNumberedParagraphs:RESET34包含其他文本:INCLUDE35改變樣式:STYLE35格式化地址:ADDRESS35在mainwindow中設(shè)置HeaderText:TOP37在mainwindow中設(shè)置FooterText:BOTTOM37條件文本:IF37條件文本:CASE38調(diào)用ABAP子程序:PERFORM38合計:SUMMING403.SAPscriptSymbols403.1SyntaxofSymbols403.2SystemSymbols413.3ProgramSymbols423.4StandardSymbols433.5TextSymbols434.FormattingOptions434.1Offset(偏移量)434.2OutputLength444.3OmittingtheLeadingSign444.3OmittingLeadingZeros454.4SpaceCompression454.5NumberofDecimalPlaces454.6OmittingtheSeparatorfor‘Thousands’464.7SpecifyinganExponentforFloatingPointNumbers464.8Right-JustifiedOutput464.9FillCharacters474.10SuppressingOutputofInitialValues474.11LocalDates(CurrentlyOnlyforJapan)474.12ChangingtheValueofaCounter474.13PrecedingandSubsequentTexts(Pre-Text/Post-Text)485.SAPscriptFunctionModules495.1OPEN_FORM515.2CLOSE_FORM525.3WRITE_FORM526一個完整的例子531SAPscriptForms1.1SAPscript的組成SAPscript由下面五個局部組成:1)編輯器用來編輯一行文本。如果用戶決定保護(hù)與應(yīng)用程序相關(guān)的文本,應(yīng)用程序事務(wù)會自動調(diào)用這個文本編輯器,2)styles和forms,用來打印layout。3)中央輸出模塊設(shè)計器。它的任務(wù)是根據(jù)相應(yīng)的格式信息為某種外部設(shè)備準(zhǔn)備文本,這些格式信息來自于分配了文本的style和forms。4)程序接口,通過將SAPscript組件包括在程序中來控制form的輸出。5)用來存儲文本、styles、forms的數(shù)據(jù)庫表格??梢杂靡韵聢D來表示:1.2Forms:組件和技術(shù)1.2.1概念修改SAPForms如果需要修改SAPForms,可以象下面這樣設(shè)置開發(fā)環(huán)境:確信客戶端沒有標(biāo)準(zhǔn)的SAPForms拷貝你需要的標(biāo)準(zhǔn)SAPForms到你的開發(fā)環(huán)境中重新命名,最好以Y或者Z開頭為了使更改生效,需要修改相關(guān)的SAP打印程序使用經(jīng)過你修改后的Forms,可以使用SAPIMG來進(jìn)行。Forms:概念Forms用來控制文檔中的頁面layout和文本格式。在將某一文檔輸出到打印機(jī)或者屏幕的時候,必須將一個Form分配給該文檔。如果沒有指定,就使用系統(tǒng)默認(rèn)的Form。在SAP應(yīng)用中,通常利用Forms來定制諸如發(fā)票、支票之類的特殊文檔的layout。這些Forms用來描述文檔頁面中的信息結(jié)構(gòu),比方地址抬頭、item行、頁腳等等。有兩種方法來格式化Forms中的的文本:在標(biāo)準(zhǔn)的SAPscript文本處理器中(ToolsWordprocessingStandardtext),可以為一個文檔選擇一Form。然后在Form的Main窗口中輸入文本并格式化。例如,我們?yōu)樾偶x擇一個Form,然后在Main窗口中輸入信件內(nèi)容,當(dāng)打印該信件時,信件內(nèi)容隨同其他信息一并打印出來〔比方抬頭、頁腳等等〕。通過SAP應(yīng)用中的打印程序生成文檔。該打印程序使用一個Form,并提示用戶輸入相關(guān)文本信息。Client和語言版本:概念Forms和Styles是與客戶端相關(guān)的,也就是說,在哪一個客戶端創(chuàng)立的Form和Styles只能在這個客戶端使用。同樣的,F(xiàn)orms和Styles也是語言相關(guān)的,在Forms和Styles中的定義的文本只能用一種語言來進(jìn)行定義。可以用SAP翻譯工具來翻譯這些Forms和StylesClient000缺?。篠APscript給在client000中的Forms和Styles賦予一種特殊狀態(tài)。如果在打印一個文檔的時候,文檔中定義的Forms和Styles在當(dāng)前客戶端不可用,那么SAPscript就在client000中檢查所定義的Forms和Styles,如果找到,就利用client000中的來進(jìn)行打印。SAP標(biāo)準(zhǔn)Forms和Styles總是存儲在client000中??梢酝ㄟ^拷貝這些標(biāo)準(zhǔn)Forms和Styles到當(dāng)前客戶端并重新以YXXX或者ZXXX命名加以使用。Languagerules:SAPscriptusesthefollowingrulestomanageversionsofformsandstylesindifferentlanguages:Thelanguageinwhichaformorstyleiscreatedisits"originallanguage."YoucantranslateaformorstyleintootherlanguagesusingSAP’stranslationtools.Ifaformorstyleisneededonlyinitsoriginallanguageandneednotbetranslated,thenyoucanindicatethisinthelanguageattributesintheheaderdata.Theformorstylethendoesnotappearinworklistsinthetranslationtools.Inversionsotherthantheoriginallanguageversion,changestoaformorstylearelimitedonlytotranslationoftexts.Nochangestodefinitionsandattributesarepermitted.1.2.2組件HeaderDataHeaderData由全局?jǐn)?shù)據(jù),比方page格式、page方向、初始字體等組成。在HeaderData的Basicsettings標(biāo)簽中可以對這些數(shù)據(jù)進(jìn)行保護(hù)。HeaderData還包括form的名字、描述、類以及狀態(tài)。HeaderData的操作畫面如下:一個例子:以下圖是簡單的發(fā)票的例子,是利用SAPscriptForm創(chuàng)立的。每一個form由一個startpage和任意數(shù)量的subsequentpages組成,這依賴于字符文本的長度。在這個例子中,startpage由地址欄窗口、包含參考消息的信息窗口、包含公司相關(guān)數(shù)據(jù)的窗口以及包含真正業(yè)務(wù)數(shù)據(jù)的窗口〔業(yè)務(wù)數(shù)據(jù)也顯示在subsequentpage中〕和包含頁碼的窗口組成。包含業(yè)務(wù)數(shù)據(jù)的窗口不同于其他窗口。無論什么時候,只要一頁數(shù)據(jù)顯示不下時,會自動顯示在subsequent中。因而,這個窗口控制換頁,而且這種窗口只能有一個,在SAPscriptform中稱這種窗口為mainwindow.如以下圖所示:ParagraphFormatsandAttributes在SAPscript中,Paragraph(段落)就是使用某種格式和相應(yīng)屬性的一種格式設(shè)置。通過應(yīng)用不同的段落屬性組來簡化文本處理,這些屬性組包括:標(biāo)準(zhǔn)屬性字體TabsOutline對一個段落標(biāo)志命名有下面的約定束成:段落名由一到兩個字符組成;第一個字符必須是字母,第二個字符可以是字母、數(shù)字或者空格;特殊字符無效;段落格式在Description域中必須進(jìn)行標(biāo)識。段落格式設(shè)置畫面如下:下面分別對前面的屬性組加以說明:標(biāo)準(zhǔn)屬性在標(biāo)準(zhǔn)屬性組中,可以設(shè)置在段落格式中需要用到的通用屬性,包括:描述信息(Description)左邊右邊距(Leftmargin,Rightmargin)第一行的縮進(jìn)(indent1stline)前后空格(Spacebefore,Spaceafter)對齊方式(Alignment)行間距(Linespacing)是否空行(Noblanklines)是否頁面保護(hù)(Pageprotection)同一頁上是否有下一個段落(Nextparagraphsamepage)Font屬性可以為段落格式指定字體屬性,用來控制文本中的字體。字體屬性包括字體、大小、黑體/粗體/斜體、下劃線等等。、TabsinParagraphFormats可以根據(jù)需要為每個段落格式定義tabs的位置,在pceditor中兩個〞,,〞symbol代表段落中的一個tabs。可以使用下面的度量單位來定義tabs的位置:CH(字符)CM(厘米)MM(毫米)PT(點陣)TW(1/20點)Outline用來指定文檔中的層次和目錄結(jié)構(gòu)。具體請參見saponlinehelpCharacterFormatsandAttributesCharacterformatsandAttributes可以用來格式段落中的一段文字。命名方式與段落一樣。字符屬性組可以是:StandardFontStandard屬性包括marker(標(biāo)記或者超連接)、Barcode、Protected、Hidden、Superscript等。Font屬性與段落中的Font屬性一樣使用。WindowsWindows在Form保護(hù)中定義。代表頁面中的一個區(qū)域〔PageWindow〕,每一個Form中至少定一個window,否那么,SAPscript不能格式化文本??梢詾閣indow定義類型和名字,注意在每一個Form中只能有一個Mainwindow。在定義一個FormWindow的時候,必須選擇一個窗口類型。下面是可以使用的窗口類型:MainWindow每一個Form必須有一個MAIN類型的窗口,這樣的窗口叫做MainWindow。在SAPscript中主窗口具有下面的意義:控制換頁;包含可以跨越多個pages的內(nèi)容;可以在pagewindow中固定文本元素,比方列標(biāo)題。一旦mainwindow內(nèi)容填滿后,就會自動換頁,在下一頁的mainwindow中繼續(xù)輸出余下的內(nèi)容。而且格式保持不變。注意:如果page中沒有mainwindow,系統(tǒng)會隱含處理page中的其他window以及subsequentpage,在這種情況下,SAPscript會在處理完〔最多〕三個subsequentpages后終止處理。為了輸出headerline或者totals,需要指定mainwindow中的輸出區(qū)域(outputarea)。為了在頁面〔page〕中的mainwindow中進(jìn)行文本輸出,可以選擇三種類型的區(qū)域之一。Mainwindow中的頂層區(qū)域叫TOPArea;下層區(qū)域叫BOTTOMArea;它們之間的區(qū)域叫做BODYArea。TOPArea和BOTTOMArea的大小依賴于各自的文本內(nèi)容,BODYArea的大小相應(yīng)的發(fā)生變化。如以下圖所示:在Form輸出時,可以對這三個區(qū)域的內(nèi)容進(jìn)行動態(tài)修改。SAPscript在包含mainwindwo的Form的每一頁上自動輸出這些區(qū)域。當(dāng)在調(diào)用函數(shù)模塊WRITE_FORM或者WRITE_FORM_LINES時,TYPE參數(shù)決定在哪一個區(qū)域輸出文本,如果在調(diào)用時,沒有指定TYPE參數(shù),系統(tǒng)默認(rèn)輸出BODY區(qū)域的內(nèi)容。比方下面的圖示以及代碼:VARWindow〔可變窗口〕可變窗口的內(nèi)容在每一個page中都要處理一次。系統(tǒng)輸出僅僅適合窗口尺寸,超出窗口的文本被自動截掉;可變窗口也不會觸發(fā)換頁處理。不象CONSTWindow,pagewindow如果聲明為VARWindow,意味著在不同的Formpages中可以有不同的尺寸。注意:在窗口內(nèi)容處理方面,系統(tǒng)并不區(qū)分CONSTWindow和VARWindow,唯一的區(qū)別就是在全部Form中具有同樣尺寸。CONSTwindow〔常量窗口〕從版本4.0開始,在系統(tǒng)內(nèi)部處理中,并不區(qū)分CONSTWindow和VARWindow,所以,如果創(chuàng)立一個新的window,總是使用VAR類型的。Pages(頁面)對每一個Form必須定義至少一個page,而且必須在Form的header屬性標(biāo)簽中指定“first〞page。否那么,不能進(jìn)行文本格式化。另外,應(yīng)該指定當(dāng)?shù)竭_(dá)第一頁的末尾的時候,接下來的一頁是哪頁。如果沒有指定的話,輸出就在當(dāng)前頁的末尾終止。為了定義一個page,需要為它指定名字和屬性:下一頁的名字page的計數(shù)模式page數(shù)的數(shù)字類型資源名字打印模式文檔的單個pages通常有不同的layouts:發(fā)票的第一頁與接下來的頁不一樣,在這些頁上不需要重復(fù)通用信息,比方地址或者客戶數(shù)據(jù),象窗口中的文本元素一樣,page也有名字,在有需要換頁的情況下,需要通過這些名字來指定下一頁,如果想文檔的樣式變化越多,就需要在SAPscript中定義越多的page。以下圖說明如何利用事務(wù)代碼SE71保護(hù)一個page。在WIN32操作系統(tǒng)中可以利用FormPainter。Pageswindow(頁面窗口)Pageswindow就是定義在頁面中的窗口,這里的頁面和窗口都是已經(jīng)預(yù)先定義好的,定義pageswindow的主要任務(wù)就是將窗口和頁面關(guān)聯(lián)起來,一個頁面中可以有多個窗口。在定義pageswindows時,窗口的名字與page的名字關(guān)聯(lián)起來。必須指定分配給page的窗口的位置和大小。通過指定左邊和上邊距來定義窗口的位置,指定其高度和寬度來定義窗口的大小。注意:1)在所有pages中的mainwindow的寬度必須相同。其他的窗口類型在不同的pages中可以有不同的尺寸和位置。2)為了打印多列,需要在一個page中定義多個mainwindow。因為文本條目是連續(xù)的,一旦第一個mainwindow被寫滿之后,輸出可以在第二個窗口繼續(xù)。當(dāng)定義windows和pages的時候,可以不必指定位置和輸出的文本間隔。為了指定這些值,可以直接創(chuàng)立一個pagewindow。當(dāng)定義pagewindow時,需要指定:顯示在page上的windowwindow的尺寸〔包括大小、寬度、高度〕頁面中各個window的位置如以下圖所示:TextElements(文本元素)SAPscript將form中的單個文本組件稱之為TextElements(文本元素),為了獲得較好的結(jié)構(gòu)和可讀性,可以為form中的每一個TextElements分配一個固定的名字,打印程序通過這些定義的名字來訪問TextElements。TextElements與window相關(guān),就是說,打印程序僅僅能夠調(diào)用定義在窗口中的文本元素。以下圖顯示了定義在mainwindow中的HEADING和FLIGHTIST兩個TextElements??梢詫⑦@里定義的TextElements和ABAP程序中〔比方TEXT-001〕定義的文本相比較來學(xué)習(xí),但是,TextElements比ABAP程序中〔比方TEXT-001〕定義的文本更靈活,主要表現(xiàn)在:TextElements的長度沒有限制;TextElements可以包含變量符;在一個TextElements中可以使用幾個不同的格式選項;在TextElements中可以使用SAPscript控制語句。在window中,可以使用兩種不同的TextElements,一種叫做有名TextElements;另外一種叫做無名TextElements。有名TextElements通過段落格式“/E〞來識別有名TextElements,在行編輯器中,看起來象這樣:字符串<NAME>代表TextElements的名字,名字可以有30個長度,而且可以包含字母、數(shù)字、特殊字符。名字后面接下來就是這個TextElements的文本行。一個TextElements在下一個TextElements開始處結(jié)束。注意:TextElements的名字僅僅在本地有效〔LOCAL〕,即不同的窗口可以包含相同的TextElements的名字。為了輸出有名TextElements,必須在程序中(ABAP)使用函數(shù)模塊WRITE_FORM。以下圖說明了發(fā)票中的列頭TextElements。無名TextElements無名TextElements或者叫做缺省文本元素是這樣的一些文本行和控制語句,它們顯示在相應(yīng)windowcontents的起始處,沒有“/E〞段落格式。包括所有的行直到出現(xiàn)“/E〞段落格式,或者直到末尾,如果中間沒有其他“/E〞標(biāo)志出現(xiàn),因此,在一個window中只能包括一個無名TextElements。這兩種TextElements之間的區(qū)別在于:對于有TextElements來說,只有當(dāng)系統(tǒng)顯示調(diào)用函數(shù)模塊WRITE_FORM時,才被輸出;而對名TextElements,系統(tǒng)會自動處理。Mainwindow中的TextElements僅僅出現(xiàn)一次,它不會出現(xiàn)在包含mainwindow的form的subsequentpage中。其它window類型〔除mainwindow外〕的無名TextElements每次都會出現(xiàn)。下面的例說明了在form中的ADDRESSwindow的無名TextElements,這個TextElements輸出客戶地址,ADRS_SENDER標(biāo)準(zhǔn)文本僅僅在第一頁顯示〔通過IFANDCASE語句可以控制〕。激活TextElements當(dāng)函數(shù)模塊WRITE_FORM的時候,可以通過設(shè)置FUNCTION參數(shù)的值在打印程序中激活窗口中的TextElements,F(xiàn)UNCTION可以是下面的值:SET用當(dāng)前的值代替所有window中激活的文本元素APPEND將當(dāng)前的TextElements追加到激活的TextElementsDELETE從激活的TextElements列表中刪除當(dāng)前的TextElements注:激活TextElements是指當(dāng)當(dāng)前page調(diào)用時,系統(tǒng)準(zhǔn)備輸出的windowTextElements。在mainwindowBODY域中,APPEND和SET具有相同的效果,DELETE對其沒有影響,在TOP和BOTTOM域中,與上面描述的相同。1.2.3技術(shù)在Form中包含圖形這一節(jié)主要介紹在form中包括圖形的技術(shù),主要介紹如何在form中打印公司logo和如何打印條形碼。在form中打印公司logo為了能夠打印公司logo,不管是在form中,還是在PCL-5打印機(jī)預(yù)定的宏中,下面的規(guī)那么有助于選擇適宜的方法:如果不能夠以TIF6.0的格式提供logo,那么公司logo應(yīng)該在PCL-5打印機(jī)預(yù)定的宏中進(jìn)行打??;如果沒有PCL-5打印機(jī),那么需要將公司logo包含在form中;在其他任何情況下,將公司logo包含在form中。如果在打印公司logo的時候,正確的參照了這里的說明,但還是沒有能夠正確打印出公司的logo,可能是因為你提供的logo的圖形格式不是基于TIF6.0的,如果文件格式不正確,SAP并不給出任何錯誤信息。下面介紹在form中包含公司logo的步驟:在FORM中包含公司logoXE"Forms:includingcompanylogosonforms"XE"Logos:includingonforms"Step-by-StepGuideTask1 ConvertyourcompanylogointoaSAPscriptstandardtext.XE"Logos:convertingtoSAPscriptstandardtext"CreateyourcompanylogowithagraphicprogramandsaveitintheBaselineTIFF6.0format.
Inthisguide,thefilenameisLOGO.TIF.FromtheSAPmainmenu,chooseToolsABAPWorkbench.3OntheABAPWorkbenchscreen,chooseABAPEditor.354IntheProgramfield,enterRSTXLDMC.54ChooseExecute.78910DeterminethelocationofLOGO.TIF.78910IntheFilenamefield,enterthefilenamewithitslocation.Note:UNIXfilenamesarecasesensitive.IntheTypefield,entertheappropriatetypefortherasterimage.BMONstandsforablackandwhiterasterimage.UseBMONformonochromeprintersbecausetheseprintersnormallydonotperformagray-levelconversion.BCOLstandsforacolorrasterimagewithupto256colors.Forthisexample,useBMON.IntheTextnamefield,enterZHEX-MACRO-LOGO.ChooseExecute.1112Theuploadmaytakeawhile.Theresultshouldbeaprotocolasshown.1112Attheendoftheprotocol,aStandardtextZHEX-MACRO-LOGOIDSTLanguageENsavedsuccessfullymessageindicatesthatthestandardtextwascreated.ChooseBackfourtimestoreturntotheSAPmainmenu.Youcaneasilydisplaythecreatedstandardtext.ChooseToolsWordprocessingStandardtext.IntheTextnamefield,enterZHEX-MACRO-LOGO.ChooseDisplay.ForadditionalinformationaboutreportRSTXLDMC,accessthereportdocumentation:ChooseToolsABAPWorkbench.ChooseABAPEditor.IntheProgramfield,enterRSTXLDMC.SelectDocumentation.ChooseDisplay.Step-by-StepGuideTask2 IncludethestandardtextZHEX-MACRO_LOGOinthesalesorderconfirmationformZ_9H_RVORDER01.FromtheSAPmainmenu,chooseToolsWordprocessingForm.324IntheFormfield,enterZ_9H_RVORDER01,andintheLanguagefield,enterEN.324IntheSub-objectssection,selectPagelayout.ChooseChange.ThesynchronizedscreensoftheFormPainterappear.IntheDesignwindowXE"FormPainter:designwindow"5,createanewwindowbychoosingCreatewindowformtheformlayoutmanipulationmenu.5ThenewwindowisautomaticallynamedWindow1.6ActivateWindow1andchooseRenamewindowfromtheformlayoutmanipulationmenu.687RenameWindow1asLOGO.87ChooseExecute.9DefinethepositionofthewindowLOGOusingthegraphicalFormPainterXE"FormPainter:modifyingforms".9Withgraphicsormacrosthesystemconsidersonlythewindowpositionbutnotthesize.TheLeftmarginmustbespecifiedinCH(characters)andtheUppermarginmustbespecifiedinLN(line).10ActivatetheLOGOwindowandchooseEditwindowtextfromtheformlayoutmanipulationwindow.10ThePCEditorXE"PCEditor:insertinginformation"fortheLOGOwindowappears.11InthePCEditorXE"PCEditor:insertinginformation"choosetheInsertcommandbutton.11TheInsertAdditionalInformationscreenappears.141312SelectCommand.141312EnterINCLUDEZHEX-MACRO-LOGOOBJECTTEXTIDSTinthecommandline.ChooseContinue.15Thenewcommandline(grayhighlighted)appearsinthePCEditor.15ChooseBack.Thewindowtextisautomaticallysavedbythesystem.Confirmtheinformation.17Activatethechangedform.17YourcompanylogoappearsonthefirstpageofformZ_9H_RVORDER01usingthestandardtextZHEX-MACRO-LOGOandthewindowLOGOfortheprintoutput.Ifthecompanylogoshouldbedisplayedonthesubsequentpages,youmustcopythewindowLOGOtopageNEXT.Youhavetorepeatthefollowingprocedureforalldefinedpages:Intheadministrativescreen,choosethewindowLOGO.Copythewindow.ChoosepageNEXT.Insertthewindow.ThepositionandsizeofthewindowLOGOdefinedforpageFIRSTapplytotheotherpages.Activatetheform.注:關(guān)于如何在PCL-5打印機(jī)中打印公司logo,請參見相關(guān)資料,這里從略。在form中打印條形碼Step-by-StepGuideTask DefinethematerialnumbersonthesalesorderconfirmationZ_9H_RVORDER01asa“3of9〞barcodewithacheckdigit.FromtheSAPmainmenu,chooseToolsWordprocessingForm.234IntheFormfield,enterZ_9H_RVORDER01,andintheLanguagefield,enterEN.234SelectCharacterformats.ChooseChange.9105678IntheStringfield,enterB3.9105678IntheDescriptionfield,enterBarcode3of9w/check.ChooseEnter.Thenewcharacterformatappearsinthecharacterformatsframe.IntheBarcodefield,presstheF4helpkeyandchoosetheappropriatebarcodefromthelistofavailablebarcodes.ChooseBC_CD39C.Savethenewcharacterformat.Thebarcodeisnowdefinedandcanbeused.Next,wehavetoadjusttheoutputoftheMainwindow.ChooseLayout.11IntheDesignWindowactivatetheMainwindowandchooseEditwindowtext.111312Inthetexteditor,scrolldownuntilyousee/EITEM_LINE.1312Placethecursorattheendofthefirstlineunder/EITEM_LINE.ChooseEntertocreateanewline.1615Inthenewline,enter
,,<B3>&VBDPA-MATNR&</>.1615ChooseBack.Confirmallthesubsequentpopupwindows.Thetwocommas,forthefirsttab,positionthebarcodeunderthematerialnumber.<B3>changesthecurrentcharacterstringtoB3,whichdefinesthebarcode.</>endsthecharacterstringandreturnstoIL.
Someofthebarcodesarehigherthanoneline,whichmaycausethepreviouslinestooverlap.Toavoidoverlapping,addblanklinesbeforethelinewiththebarcode.Useanappropriateparagraphforthisblankline,sothattheblanklinesarenotcompressed.Tochecktheparagraphsettings,gotostandardattributesandensurethattheNoblanklinescheckboxisdeselected.Inourexample,noticethebarcode,whichreservesspacefortheentirematerialnumberfield(thisfieldis18characterslong).Ifyoudonotuseall18charactersanddonotwanttowastespace,delimitthefieldlengthbyusingtheoutputlengthformattingoption.Thetexteditorlineis,,<B3>&VBDPA-MATNR(8)&</>
Inanumericalbarcode,somescannerscannotreadspecialcharacters.Forthesescanners,omitthespecialcharactersinsertedbySAPscriptduringformatting.Anexampleofaspecialcharacteristhedelimiterfor“Thousands〞thatisusedforsomenumericalfields.SeeappendixAformoreinformationonformattingoptions.18Activatetheform.UsingBoxes,Lines,andShadingSAPscript提供了在文檔中使用Boxes,frames,lines,shading的文本命令:BOX命令用來畫一個框或者是垂直、水平直線;POSITION命令用來指定框或者線的起始點;SIZE命令用來指定框的高度和寬度。下面分別加以說明。BOX命令語法/:BOX[XPOS][YPOS][WIDTH][HEIGHT][FRAME][INTENSITY]作用:在指定的位置用指定的尺寸畫框參數(shù):對XPOS、YPOS、WIDTH、HEIGHT、FRAME中的每一個,必須指定值以及度量單位;指定INTENSITY為0-100之間的百分比數(shù),比方20。①XPOS、YPOS相對于POSITION命令設(shè)定的值而言,框的左上角。缺?。篜OSITION命令設(shè)定的值下面的計算式用來計算page上的框的絕對位置:X(abs)=XORIGIN+XPOSY(abs)=YORIGIN+YPOS②WIDTH框的寬度,缺省為SIZE命令所設(shè)定的寬度值③HEIGHT框的高度,缺省為SIZE命令所設(shè)定的高度值④FRAME邊框,缺省為0,無邊框⑤INTENSITY框的灰度比,缺省為100度量值以及度量單位:度量值為數(shù)字,度量單位可以是下面幾種之一:TW(twip)PT(point)IN(inch)MM(millimeter)CM(centimeter)LN(line)CH(character).例如:/:BOXWIDTH'17.5'CMHEIGHT1CMFRAME10TWINTENSITY15
/:BOXWIDTH'17.5'CMHEIGHT'13.5'CMFRAME10TW
/:BOXXPOS'10.0'CMWIDTH0TWHEIGHT'13.5'CMFRAME10TW
/:BOXXPOS'13.5'CMWIDTH0TWHEIGHT'13.5'CMFRAME10TW特別注意:如果度量值有小數(shù)位,必須用〞''〞號將度量值引起來。如上面的'17.5'等等。POSTION命令語法:/:POSITION[XORIGIN][YORIGIN][WINDOW][PAGE]作用:設(shè)置坐標(biāo)原點,BOX命令中的XPOS,YPOS參數(shù)會使用這個值。當(dāng)window第一次啟動的時候,POSITION值就是window的左上角。 參數(shù):XORIGIN、YORIGIN坐標(biāo)系統(tǒng)原點WINDOW設(shè)置左邊和上邊距匹配當(dāng)前windowPAGE設(shè)置左邊和上邊距匹配當(dāng)前輸出page(XORIGIN=0cm,YORIGIN=0cm) 例如:/:POSITIONWINDOWSetstheoriginforthecoordinatesystemtotheupperleftcornerofthewindow./:POSITIONXORIGIN2CMYORIGIN'2.5CM'Setstheoriginforthecoordinatesystemtoapoint2cmfromtheleftedgeand2.5cmfromtheupperedgeoftheoutputpage./:POSITIONXORIGIN'-1.5'CMYORIGIN-1CMShiftstheoriginforthecoordinates1.5cmtotheleftand1cmupSIZE命令語法:/:SIZE[WIDTH][HEIGHT][WINDOW][PAGE]作用:設(shè)置在BOX命令中的WIDTH、HEIGHT值,當(dāng)window第一次啟動時,SIZE值與window相同。參數(shù):WIDTH、WIDTH矩形或者線的尺寸WINDOW設(shè)置寬度和高度值為當(dāng)前window的寬度和高度PAGE設(shè)置寬度和高度值為當(dāng)前page的寬度和高度 例如:/:SIZEWINDOWSetsWIDTHandHEIGHTtothecurrentwindowdimensions./:SIZEWIDTH'3.5'CMHEIGHT'7.6'CMSetsWIDTHto3.5cmandHEIGHTto7.6cm./:POSITIONWINDOW
/:POSITIONXORIGIN-20TWYORIGIN-20TW
/:SIZEWIDTH+40TWHEIGHT+40TW
/:BOXFRAME10TWAframeisaddedtothecurrentwindow.Theedgesoftheframeextendbeyondtheedgesofthewindowitself,soastoavoidobscuringtheleadingandtrailingtextcharacters.2.SAPscriptControlCommands2.1ControlCommands語法SAPscriptControlCommands和通常文本行一樣,在文本編輯器中輸入和編輯,然而,和文本行相比,有下面一些區(qū)別:在格式列輸入段落格式“/:〞表示一個控制命令;在文本行中輸入命令;ControlCommands連同其參數(shù),最多占用一行文本行;每一行只能有一個ControlCommands;編輯器行的格式對ControlCommands沒有影響。如果ControlCommands沒有定義或者有語法錯誤,那么ControlCommands所在的行被作為注釋處理。2.2ControlCommands種類2.2.1顯示分頁:NEW當(dāng)mainwindow顯示不下時,SAPscript就會自動分頁??梢岳肗EW命令強(qiáng)制分頁〔只要你想〕。分頁命令后面的文本顯示在新頁上,分頁命令總是會執(zhí)行(如果使用了)。NEW結(jié)束當(dāng)前頁。如果分頁命令NEW不帶參數(shù),在當(dāng)前form中定義的page就作為nextpage使用;如果form中包括多個pages,可以將其中的任何pages作為nextpage使用。語法:/:NEW[page_name]例如:/:NEW當(dāng)前頁結(jié)束,接下來的文本將顯示在form中指定的page上/:NEWS1和上面一個例子一樣,除了S1被指定為nextpage外2.2.2限制分頁:PROTECT在打印文檔的時候,有時候不想將一段段落打印在不同的頁上,這時候就需要設(shè)置限制分頁命令。為了做到這一點,SAPscript提供了PROTECT和ENDPROTECT命令對。如果當(dāng)前頁面上的余留空白能夠用來打印一段完整的文本,那么這一段文本就在當(dāng)前也上打印,就好似沒有PROTECT命令一樣。然而,如果余留空白不能夠用來打印整個文本,那么PROTECT命令和NEW具有同樣的作用,這一段完整的文本將會在新的page中打印出來。因而,PROTECT/ENDPROTECT也可以被看成是有條件的NEW命令,條件就是當(dāng)前mainwindow中的余留空白是否能夠滿足PROTECT/ENDPROTECT中指定的文本。語法:/:PROTECT
:
:
/:ENDPROTECT被保護(hù)的文本行封裝在這兩個命令之間。注意:沒有PROTECT命令的ENDPROTECT命令是沒有任何作用的;如果漏掉了ENDPROTECT命令,SAPscript默認(rèn)受保護(hù)的文檔直到文本結(jié)束;PROTECT/ENDPROTECT不能嵌套,如果在第一個ENDPROTECT結(jié)束前,定義了第二個PROTECT,那么第二個 PROTECT/ENDPROTECT被忽略;如果在PROTECT/ENDPROTECT命令對中封裝的文本對于單個page來說太長的話,那么在這段文本之前立刻執(zhí)行換頁命令,文本按照通常的方式打印。在文本中某一個位置換頁是不可防止的。2.2.3下一個mainwindow命令:NEW-WINDOW理論上,每一page能夠由99個mainwindows組成。每一個mainwindow被分配一個從0到98的識別號,windows也按照這個順序來加載。這個特征使得SAPscript可以打印labels和輸出多列文本。當(dāng)一個mainwindow填滿后,如果有下一個mainwindow的話,就是用下一個mainwindow,在這兩者之間會插入一個分頁??梢允褂妹頝EW-WINDOW來顯示的調(diào)用下一個mainwindow,即使當(dāng)前的mainwindow沒有填滿。語法:/:NEW-WINDOW2.2.4給文本symbol分配值:DEFINE語法:/:DEFINE&symbol_name&='value'通過這種定義獲得的值在事務(wù)結(jié)束后就失去了。如果想再次打印這個文本塊,必須再次給這個文本symbol賦值。DEFINE命令的一個目的就是提供將值持久賦給文本的一種方式,以便當(dāng)文本模塊再次調(diào)用時,值可以重復(fù)使用。例如:/:DEFINE&subject&='Yourletterof7/3/95' 分配給symbol的值最大可以有60個字符。也可以包含其他的symbol變量。請注意下面兩個例子:第一個例子:/:DEFINE&symbol1&='mail'
/:DEFINE&symbol2&='SAP&symbol1&'
/:DEFINE&symbol1&='script'
&symbol2&->SAPscript第二個例子:/:DEFINE&symbol1&='mail'
/:DEFINE&symbol2&:='SAP&symbol1&'
/:DEFINE&symbol1&='script'
&symbol2&->SAPmail請注意觀察這兩個例子中的&symbol2&以及后面的賦值symbol,可以看出,可以將一個symbol變量連同其他字符賦給另一個symbol變量,但是如果用“=〞賦值symbol,那么當(dāng)“=〞右邊的symbol變量值發(fā)生變化時,“=〞左邊的值相應(yīng)發(fā)生變化;另外一個方面,如果用“=〞賦值symbol,那么當(dāng)“:=〞右邊的symbol變量值發(fā)生變化時,“:=〞左邊的值并不發(fā)生變化。2.2.5格式化日期字段:SETDATEMASK為了定義日期格式的字段,需要使用SETDATEMASK控制命令。語法:/:SETDATEMASK='date_mask'MASK可以是下面的代碼:DD:day(twodigits)DDD:dayname-abbreviatedDDDD:dayname-writtenoutinfullMM:month(twodigits)MMM:monthname–abbreviatedMMMM:monthname-writtenoutinfullYY:year(twodigits)YYYY:year(fourdigits)LD:day(formattedasfortheLoption)LM:month(formattedasfortheLoption)LY:year(formattedasfortheLoption)在MASK中除了上面的代碼外出現(xiàn)的所有其它字符都被當(dāng)成簡單文本處理,直接拷貝到輸出。例如:假設(shè)當(dāng)前的系統(tǒng)日期為March1st1997,那么/:SETDATEMASK='FosterCity,MM/DD/YY'&DATE&->FosterCity,03/01/97(輸出)/:SETDATEMASK='MMMMDD,YYYY'&DATE&->March01,1997(輸出)日期MASK可以通過下面命令設(shè)置成缺省值:/:SETDATEMASK=''注:在SAP系統(tǒng)表TTDTG中儲存有所有的日期MASK,可以參考。2.2.6格式化Time字段:SETTIMEMASK為了定義Time格式的字段,需要使用SETTIMEMASK控制命令。語法:/:SETTIMEMASK='time_mask'其中TIMEMASK可以是下面的代碼之一:HHhours(twodigits)MMminutes(twodigits)SSseconds(twodigits)在MASK中除了上面的代碼外出現(xiàn)的所有其它字符都被當(dāng)成簡單文本處理,直接拷貝到輸出。例如:假設(shè)當(dāng)前的系統(tǒng)時間為10:08:12,那么,/:SETTIMEMASK='HH:MM'&TIME&->10:08(輸出)/:SETTIMEMASK='HHhoursMMminutes'&TIME&->10hours08minutes(輸出)時間MASK可以通過下面命令設(shè)置成缺省值:/:SETTIMEMASK=''2.2.7設(shè)置與國家相關(guān)的格式:SETCOUNTRY語法:/:SETCOUNTRYcountry_key其中country_key儲存在系統(tǒng)表T005X中,可以參照這個系統(tǒng)表,獲得要設(shè)置的country_key.說明: 某種類型的字段其格式與Country設(shè)置有關(guān)。比方,象日期和數(shù)字字段,不同的國家有不同的表示方式。為了指定一種格式選項,就是用SETCOUNTRY命令。例如:/:SETCOUNTRY'CAN'/:SETCOUNTRY&country_key&〔可以用symbol變量類設(shè)置〕2.2.8設(shè)置symbol位:SETSIGN語法:/:SETSIGNLEFT在數(shù)字的左邊顯示symbol/:SETSIGNRIGHT在數(shù)字的右邊顯示symbolInitializingNumberedParagraphs:RESET為了重置段落大綱的番號為其初始值,需要使用RESET命令,如果沒有使用RESET命令,那么所有段落大綱的番號就是連續(xù)的〔但這可能不是你所需要的〕,如果在RESET命令中指定了段落大綱的名字,那么段落及其子段落的番號就被重新初始化。語法:/:RESETparagraph_format我們看一個例子,就明白了:假設(shè)有這樣一個段落N1,這個段落的作用是一個簡單的用戶交互,用戶通過輸入來做相應(yīng)的處理:*ProceedasfollowsifyouwanttoworkwiththeSAPR/3system:N1EnsurethatyouhaveaPCN1SwitchthePConN1ClickontheSAPiconusingthemouse.*YouwillthenentertheSAPlogonscreen.Inordertologonhere,youmustcarryoutthefollowingactions:/:RESETN1N1EnteryourusernameN1EnteryourpasswordN1Selecttheapplicationyouwanttouse注意其中的/:RESETN1命令,這一段段落將象下面這樣輸出:ProceedasfollowsifyouwanttoworkwiththeSAPR/3system:1.EnsurethatyouhaveaPC2.SwitchthePCon3.ClickontheSAPiconusingthemouse.YouwillthenentertheSAPlogonscreen.Inordertologonhere,youmustcarryoutthefollowingactions:1.Enteryourusername2.Enteryourpassword3.Selecttheapplicationyouwanttouse而如果沒有/:RESETN1命令,這一段段落輸出那么為:ProceedasfollowsifyouwanttoworkwiththeSAPR/3system:1.EnsurethatyouhaveaPC2.SwitchthePCon3.ClickontheSAPiconusingthemouse.YouwillthenentertheSAPlogonscreen.Inordertologonhere,youmustcarryoutthefollowingactions:4.Enteryourusername5.Enteryourpassword6.Selecttheapplicationyouwanttouse2.2.10包含其他文本:INCLUDE為了在當(dāng)前文本中包含其他文本,需要使用INCLUDE命令,需要注意的是SAPscript仍然將include進(jìn)來的文本作為獨立的文本處理,僅僅只是在輸出時,才將include進(jìn)來的文本插入到INCLUDE命令指定的地方作為輸出。語法:/:INCLUDEname[OBJECTo][IDi][LANGUAGEl][PARAGRAPHp][NEW-PARAGRAPHnp]其中name參數(shù)是必需的,其余參數(shù)是可選的。例如:/:INCLUDEMYTEXT 這個例子將MYTEXT文本包含在當(dāng)前文本中/:INCLUDEMYTEXTLANGUAGE'E'PARAGRAPH'A1'這個例子將MYTEXT文本包含在當(dāng)前文本中,同時指定了語言版本,這個語言版本與調(diào)用INCLUDE的文本無關(guān),同時指定了這段文本將要使用的段落格式'A1'。INCLUDE命令使用SAPSCRIPT-SUBRC作為狀態(tài)代碼返回:0:INCLUDE命令執(zhí)行成功1:命令包含語法錯誤,因而不能執(zhí)行2:如果在SAPscriptform中使用這個命令,將不會返回這個值4:指定文本沒有找到2.2.11改變樣式:STYLESTYLE控制命令允許改變文本的樣式,新的樣式對所有余下的文本有效,除非碰到另外一個STYLE命令,如果指定〞*〞作為樣式的名字,那么執(zhí)行這個命令后,將恢復(fù)成系統(tǒng)原始樣式。語法:①/:STYLEstyle[DOMINANT]②/:STYLE*注意:1)STYLE命令對INCLUDE命令中包含的文本沒有作用,如果要使其對INCLUDE命令中的文本起作用,必須添加DOMINANT選項。 2)如果INCLUDE命令中的文本頁包含STYLE命令,那么即使使用了DOMINANT選項,INCLUDE命令中的文本仍然使用它自己的STYLE命令指定的樣式。2.2.12格式化地址:ADDRESS語法:/:ADDRESS[DELIVERY][TYPEt][PARAGRAPHa][PRIORITYp][LINESl]/:TITLEtitle/:NAMEname1[,name2[,name3[,name4]]]/:PERSONnameofnaturalperson[TITLEformofaddress]/:PERSONNUMBER
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年防洪工程承包商建設(shè)借款合同3篇
- 事業(yè)單位人力資源聘用合同(2024版)版B版
- 2024離婚協(xié)議房產(chǎn)
- 2025年度高級軟件開發(fā)與技術(shù)服務(wù)合同2篇
- 二零二五版辣椒種子生產(chǎn)與辣椒苗代銷合作協(xié)議2篇
- 2024版工程協(xié)議監(jiān)管及進(jìn)度記錄臺賬一
- 二零二五版航空航天設(shè)備研發(fā)與采購合同范本3篇
- 2024年版磚結(jié)構(gòu)建筑勞務(wù)合作模板協(xié)議版B版
- 二零二五年度燒烤餐飲業(yè)商鋪租賃合同書3篇
- 二零二五版寵物傷害賠償及責(zé)任承擔(dān)協(xié)議3篇
- 生物醫(yī)藥大數(shù)據(jù)分析平臺建設(shè)
- EPC總承包項目中的質(zhì)量管理體系
- 滬教版小學(xué)語文古詩(1-4)年級教材
- 外科醫(yī)生年終述職總結(jié)報告
- CT設(shè)備維保服務(wù)售后服務(wù)方案
- 重癥血液凈化血管通路的建立與應(yīng)用中國專家共識(2023版)
- 兒科課件:急性細(xì)菌性腦膜炎
- 柜類家具結(jié)構(gòu)設(shè)計課件
- 陶瓷瓷磚企業(yè)(陶瓷廠)全套安全生產(chǎn)操作規(guī)程
- 煤炭運(yùn)輸安全保障措施提升運(yùn)輸安全保障措施
- JTGT-3833-2018-公路工程機(jī)械臺班費用定額
評論
0/150
提交評論