![PowerBuilder學(xué)習(xí)資料_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/12/d02c0b5a-a475-450a-9a67-a6a782c058eb/d02c0b5a-a475-450a-9a67-a6a782c058eb1.gif)
![PowerBuilder學(xué)習(xí)資料_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/12/d02c0b5a-a475-450a-9a67-a6a782c058eb/d02c0b5a-a475-450a-9a67-a6a782c058eb2.gif)
![PowerBuilder學(xué)習(xí)資料_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/12/d02c0b5a-a475-450a-9a67-a6a782c058eb/d02c0b5a-a475-450a-9a67-a6a782c058eb3.gif)
![PowerBuilder學(xué)習(xí)資料_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/12/d02c0b5a-a475-450a-9a67-a6a782c058eb/d02c0b5a-a475-450a-9a67-a6a782c058eb4.gif)
![PowerBuilder學(xué)習(xí)資料_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/12/d02c0b5a-a475-450a-9a67-a6a782c058eb/d02c0b5a-a475-450a-9a67-a6a782c058eb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文檔分為兩個(gè)部分,(完全是分開的兩部-沒關(guān)聯(lián))第一部分:書寫規(guī)范PowerScriptW昌吉比較自由,一般.埠彳亍一條W各句小W岳句行中的空格.縮迸、制表符等格式編排信息將被編譯器先全忽略。一條諳句結(jié)束后不需要在旬末追加分號(hào)或其他任何符號(hào)。當(dāng)在某一行中書寫多條語句時(shí),此行中除熊后一條語句之外的其他語句均需在句末加上分號(hào)6例如:下面一行£吾句聲明了3個(gè)整數(shù)K.yaINTEGERx;INTEGERy;XNTEIGEIRz,注釋行注釋用“/”,從雙斜杠開始到行尾均為注釋«塊注釋以開始I到一/"結(jié)束w_ma±n.Hide?()/隱藏主雷口/*下面的函數(shù),功能呈
2、取得用戶數(shù)裾:*折入:用戶名*輸出:用戶信息*/標(biāo)識(shí)符是程序中用來代表變量.標(biāo)號(hào).函數(shù)、窗體、菜單.控件、對(duì)票等名稱的符號(hào).O標(biāo)識(shí)將必須以字母或下劃線開頭;O非開頭字檸只能是字母.數(shù)字和*$-#法"五個(gè)牛牛珠字籽;。PowerScript的保留字不能作為標(biāo)識(shí)符;。標(biāo)識(shí)杵和關(guān)鍵字都不區(qū)分大小寫;&標(biāo)詼苻濮長(zhǎng)4。個(gè)字杵,并且中間不能插入空格。/正確的標(biāo)識(shí)將rc_codeButton#1Child-ID一午5#3Top50%/錯(cuò)誤妁標(biāo)識(shí)苻Afc>c<def/室格abodef/蚱法字符THis/美能手2th/裁手開頭$5#3/開頭字衿標(biāo)識(shí)符與空白空格、制表符、換行特和注釋
3、,對(duì)PcwerScript編譯器來說都是空白,并不作任何處理。但需要注意:字符串中的空白,是字符串的一部分;工廠表達(dá)式中的空白和注樣部余念略A+B/*Adjustmenifacf<>r*/+C/字符串中的空格是字符串的一部分wThevalueofA+BIs:"標(biāo)識(shí)符中不能有空白Order-Balance/兩個(gè)變貴相城的爽達(dá)式Order-Balanee/一個(gè)變更名標(biāo)識(shí)符。續(xù)行符(&)當(dāng)一條語句需要寫很多內(nèi)容時(shí),這行程序會(huì)變得很長(zhǎng),雖然不會(huì)影響程序運(yùn)行,但是會(huì)影響閱讀和以后的維護(hù)。為了便于閱讀和維護(hù),可以通過續(xù)行符“&”,將一個(gè)長(zhǎng)的行分解為多個(gè)短行,續(xù)行特相當(dāng)
4、于多行的連接符。續(xù)行擰必須加在行尾;。續(xù)行件后不能有注釋;不能在標(biāo)識(shí)符或保留字的中間續(xù)行。IFEmployee_Dlstrlet=nEasternUnitedStatesand°&EasternCanada11THEN.使用續(xù)行特連接的多個(gè)行之間,對(duì)于編譯器來說,相當(dāng)于一行程序??罩捣?。空值符3311)空值是PowerBuilder與數(shù)據(jù)庫(kù)交換數(shù)據(jù)時(shí)使用的一種特殊值,代表變量的數(shù)據(jù)來定義或不可知,和數(shù)據(jù)庫(kù)中的空值概念相對(duì)應(yīng)??罩导炔皇菙?shù)值零,也不是非零的任何數(shù)。為變量賦空值的方法O從數(shù)據(jù)庫(kù)中讀取空便O用SetzNuIl()函數(shù)給變量賦住stringcity/cily是空的串,
5、但不是空值NullSetNull(city)/+i,Jtci(y為空值Null。判斷控制的方法工SNU11()IFIsNull(a)THEN/正場(chǎng)的方法IFa-NullTHEN/不正確妁方法轉(zhuǎn)義符,特殊ASC工工字符轉(zhuǎn)義符一用于字符串中轉(zhuǎn)義特殊字符O特殊字特一在字符串中轉(zhuǎn)義為特殊含義換行符*n制表符七雙引號(hào),單引普9轉(zhuǎn)義擰退格符b十進(jìn)制ASCII碼OOO到255八進(jìn)制ASCII碼oOO。曠。377十六進(jìn)制ASCII碼FOCJFFFmessagebox用戶優(yōu)思”,”當(dāng)前用戶的基本休息如下:”十&“nn姓名七曲烏t身份“十&BnnXX-tl23456t/j&t/r屬“)常用
6、代詞通過代詞在對(duì)紈之間可以相互引用,更方便的訪問父窗體等上級(jí)對(duì)烈,PcwerScript中提供了四個(gè)常用的代詞。OThis一表示對(duì)象自己用于代表對(duì)象本身,即腳本所在的對(duì)象,如窗體、用戶對(duì)叁、菜單、應(yīng)用對(duì)象或控件等的腳本中表示對(duì)象自己。OParent一控件所在的容器對(duì)象用于窗體中的控件、用戶定制對(duì)象和菜單的程序中,如在窗體的控件中使用時(shí),表示容納該控件的窗體。ParcntWindow窗外的父窗口表示一個(gè)畝體的MDI父窗口,在于畝體的代碼中訓(xùn)用父窗體的函數(shù),也可用于菜單對(duì)象代碼謝用父窗口函數(shù)。Super一直接的父對(duì)紈用來表示直接父對(duì)象,可能是物鈕的容器、文本框所在的窗體等。常用代同Paren示例代
7、詞Parent常用于窗口的控件、可定制控件和菜單的腳本中。當(dāng)用于窗口的控件,Parent指容納控件的窗口對(duì)象;</一比如在合口的按鈕腳本中Closo(P&iront:)/表示關(guān)閉苗口.HScrollBar=TRUE/代示3£示窗口的流動(dòng)灰。當(dāng)用于可定制控件時(shí),Parent指控件所在的可定制控件;/在可定制拉件中的ChcckBc、的腳本Parent.Hlde()/隱或該可定制拉件Pirene.Enabled=FALSE/禁用法可定制檢件當(dāng)用于菜單時(shí),Parent指當(dāng)前腳本所在菜單的上一級(jí)。/銀/yTestTChcck菜單項(xiàng)的腳本Pairnt.Disable()/導(dǎo)致禁用菜
8、單Tbst常用代詞一This示例.便于訪問控件的屬性而函數(shù)This.Check()/調(diào)用技件妁Chxkc()函數(shù)o區(qū)分對(duì)象的屬性和局部變量x=x+50/修改局部變M的低This.X=This.X+50/修改拉件的他過o控件腳本,傳遞對(duì)象自身ReCalc(This)/務(wù)數(shù)函數(shù),傳遞拴件自身可以使用This,給EAServer組件傳遞對(duì)象常用代詞一Super示例PowerBuilder想調(diào)用父對(duì)象中的腳本時(shí)使用,可以JL接通過父對(duì)象的名字,或者使用Super代網(wǎng)。發(fā)生同名時(shí)必須使用,如子對(duì)象和父對(duì)象中的函數(shù)名和參數(shù)相同;o只能調(diào)用直接繼承對(duì)象的函數(shù)或事件,不能用于窗口的其他對(duì)叁;/訓(xùn)用祖先方法wf
9、_myfuncSupoH::wf_myfunc(myarglmyarg2)/出發(fā)近我祖先的Clicked亨件Supor:sEVENTClicked()屬性、函數(shù)和事件的引用方港PowerBuilder應(yīng)用程序的開發(fā)過程,就是對(duì)各種對(duì)象的定義和使用過程。所有對(duì)象、屬性和函數(shù)都有名稱,而對(duì)其訪問就是使用圓點(diǎn)()作為標(biāo)記,將對(duì)象和屬性或函數(shù)相連接即可。訪問對(duì)象屬性對(duì)象名.對(duì)象屬性/訪問slename對(duì)拿的text屬性UserEnter=sle_name.text屬性、函數(shù)和事件的引用方法。訪問對(duì)象的函數(shù)和事件對(duì)象名.TypeCalltypeWhen函數(shù)名(參數(shù)列表)Type:FUNCT工ON或EVE
10、NT,訪問的函數(shù)還是事件;。Calltype:STATIC或DYNAMIC,運(yùn)行時(shí)查找函數(shù)的時(shí)機(jī);oWhen:TR工GGER或POST函數(shù)或事件執(zhí)行的方式,是立即執(zhí)行,還是當(dāng)前程序段執(zhí)行完畢后再執(zhí)行。sle_name.SetFocus()/調(diào)用函數(shù),編輯框獲得焦點(diǎn)cb_name.EVENTTRIGGERClicked()/調(diào)用事件,立即執(zhí)行單擊響應(yīng)程序變量的作用域 全局變量(GlobalVariable)在整個(gè)程序中都起作用的變量,其作用戰(zhàn)為整個(gè)應(yīng)用程序。 實(shí)例變量(InstanceVariable)在某個(gè)特定時(shí)象中,隨著對(duì)象打開和關(guān)閉而創(chuàng)建和刪除的。 共享變量(SharedVariable)
11、與實(shí)例變量很相似,與對(duì)象的類里相關(guān)聯(lián),再同種類型的對(duì)系中共享。與對(duì)紈的定義相關(guān)聯(lián)的,而不走某個(gè)掙定的實(shí)例,所以它總是存在的。 局部變量(LocalVariable)作用范.國(guó)敢小,只在來個(gè)程序&內(nèi)或函數(shù)內(nèi)部起作用。 優(yōu)先順序:局部變量,共享變量.全局變量.實(shí)例變量變量名沖突的解決不同作用城的同名變量或者祖先對(duì)鴕和子對(duì)紈中存在同名屬性,都稱為名字沖突。外層作用域的變量或祖先對(duì)象的屬性,會(huì)被隱藏,需曼通過特定的方法訪問。 被隱藏的實(shí)例變量,可通過對(duì)象名訪問ohjectname.instancevnrtableIntegerx=50/局部變MxF急戴了X屬性IFx>w_maln.XTH
12、EN 被隱藏的全局變量,可通過作用域限定符(:.雙冒者):ulobalvariableR。工total/局部變貴穩(wěn)成了仝局同名變亞IFtotal:unalTHUN.”o變量名使用適當(dāng)?shù)那熬Y,可有效減少?zèng)_突發(fā)生如sle_,w_,txt_,emp_等變量名沖突的解決o被隱藏的函藪和事件,可用限定符或Super代詞result=ancestor:FUNCTIONfuncarl.cirg2)result=Super:EVENTeventnne)o重我的函數(shù)更載函數(shù)指相同對(duì)象中同名的函數(shù),函數(shù)的參數(shù)的個(gè)數(shù)和類型、返回值類型一般不相同,所以可以根據(jù)參數(shù)和返回值區(qū)別。對(duì)象的創(chuàng)建和釋放標(biāo)準(zhǔn)數(shù)據(jù)類型的變量,聲明
13、之后就可以使用了,因?yàn)橄到y(tǒng)已經(jīng)分配了內(nèi)存空間,可以用于存儲(chǔ)數(shù)據(jù)。而對(duì)于非可視的系統(tǒng)對(duì)象類型,除了聲明之外,還需要為其創(chuàng)建對(duì)象實(shí)例,才可以使用,這和其他面向?qū)ο笳Z言中的復(fù)雜類型相類似。創(chuàng)建非可視對(duì)象使用CREATE語句創(chuàng)建釋放不再使用的對(duì)象用DESTROY語句。保存對(duì)象變量,稱為對(duì)象的引用transactionDBTrans/定義變量,作為對(duì)象的引用DBTrans=CREATtransaction/創(chuàng)建對(duì)象DBTrans.DBMS=11ODBCtfDESTROYDBTrans/釋放對(duì)象算數(shù)運(yùn)算符。加減乘除+-/,指數(shù)運(yùn)算人;。擴(kuò)展運(yùn)算符+=-=/=,自增自減運(yùn)算+;c=a'bc=a-ba
14、+a+=b/a的b次方b"為表達(dá)式,”ab,為標(biāo)識(shí)符a+1a+b。減號(hào)和自減運(yùn)算符兩邊要留空格,否則會(huì)被識(shí)別為標(biāo)識(shí)符;。浮點(diǎn)數(shù)運(yùn)算時(shí)用最大精度,Dec類型會(huì)被四舍五入;。如果操作數(shù)中有Null值,表達(dá)式結(jié)果為Null;運(yùn)算符的優(yōu)先級(jí)表達(dá)式的運(yùn)算,按照運(yùn)算符的優(yōu)先級(jí)順序進(jìn)行,通過括號(hào)可以改變先后次序。優(yōu)先級(jí)運(yùn)算符意義1()括號(hào)2+-一元正負(fù)運(yùn)算3球運(yùn)算4*/乘除運(yùn)算5+一加減和連接運(yùn)算6=><<>>=<=關(guān)系運(yùn)算7NOT踏邏輯非8AND邏輯與9OR邏輯或表達(dá)式。表達(dá)式中,如果有一個(gè)值為Null,則表達(dá)式值為Null。變量如果超過表示范圍,可能溢出IN
15、TEGERa,b=10心cSetNull(c)a=b+c/a值也為NullINTEGERi=32767i+=1/i值溢出,為32768。不能在一條語句中賦值多個(gè)變量INTEGERa,ba=b=10/編譯錯(cuò)誤表達(dá)式(H)9數(shù)值類型的提升(Promolion);PowerBuilder中不同的數(shù)值類型運(yùn)算,結(jié)果自動(dòng)轉(zhuǎn)換數(shù)據(jù)表示能力更高的類型。下面是不同數(shù)據(jù)類型,值的表示能力由高到低的排列:/Double,Real,Dec,LongLong,ULong,Long,U工nt,Int0無符號(hào)數(shù)優(yōu)于有符號(hào)數(shù),它們之間的運(yùn)算結(jié)果為無符號(hào)數(shù);。操作符的影響的運(yùn)算結(jié)果,最小號(hào)聲Long;。八的運(yùn)算結(jié)果,最小精超
16、是Double;。關(guān)系操作符不產(chǎn)生類型的提升。工F語句示例單行IF語句,判斷整數(shù)非零INTEGERValue;BOOLEANResultIFValue=OTHENResult=FalseELSEResult=Tr能0多行IF語句,將百分制成績(jī)換并為五分制成績(jī)/ScoreisINTEGER,GradeisSTRINGIFScore>=90THENGrade=nAnELSEIFScore>=80ANDSCORE<90THENGrade=ELSEIFScore>=70ANDSCORE<80THENGrade=ELSEIFScore>=60ANDSCORE<7
17、0THENGracie=nDnELSEGrade=nEnENDIF分支語句一CHOOSECASE分支CHOOSECASE測(cè)試侵裝達(dá)式CASE值列表語句決CASE值列襲語句決CASEELSE語句塊ENDCHOOSE/測(cè)試值在下面哪個(gè)列表中/如果符合,進(jìn)入語句塊/可以有多個(gè)CASE語句/可以有一個(gè)默認(rèn)塊/結(jié)束CHOOSE語句。值列表的形式比較自由。可以是一組數(shù)值,用逗號(hào)相翌,如2,4,7??梢允且粋€(gè)范圍,用TO表示,如2TO15。可以使用【S代表測(cè)試值,構(gòu)造表達(dá)式,如工S>20??梢允沁@三種方法的組合當(dāng)沒有匹配的值時(shí),自動(dòng)進(jìn)入CASEELSE語句塊CHOOSECASE語句示例。使用CHOOS
18、ECASE改寫前面的百分制換算的代碼/ScoreisINTEGER.GradeisSTRINGCHOOSECASEScore/使用IS指代ScoreII使用TO表達(dá)式CASEIS>=90Grade=CASE80TO89Grade=nBnCASE70TO79Grade=nCnCASE60TO69Grade=nDnCASEELSE/其他的值默認(rèn)為Grade=nEwENDCHOOSE循環(huán)語句一DOLOOP循環(huán)O四種DOLOOP循環(huán)的語法格式DOUNTIL條件語句決LOOPDOWHILE條件語句塊LOOPDO語句決LOOPUNTIL條件DO語句塊LOOPWHILE條件。UNT工L表示當(dāng)條件為假時(shí)
19、繼續(xù)循環(huán)oWHILE表示當(dāng)條件為真時(shí)繼續(xù)循環(huán)DOLOOP循環(huán)示例DOUNTILLOOPDOWHILELOOPintegerA=1,B=2DOUNTILA>15Beep(A)A=(A+1)*BLOOPintegerA=1,B=2DOWHILEA<=15Beep(A)A=(A+1)*BLOOPDOLOOPUNTILDOLOOPWHILEintegerA=1,B=2DOBeep(A)A=(A+1)*BLOOPUNTILA>15integerA=lzB=2DOBeep(A)A=(A+1)*BLOOPWHILEA<=15循環(huán)語句FOR.NEXT循環(huán)FOR循環(huán)根據(jù)整數(shù)序列進(jìn)行循環(huán),
20、和Basic語言的FOR循環(huán)非常相似。語法格式4FOR變量名X=初值A(chǔ)TO終值BSTEP建增步長(zhǎng)C語句塊NEXTFOR循環(huán)執(zhí)行時(shí),變量X的值從A每次遞增cc默認(rèn)為1),直到增長(zhǎng)為值B后(或大于B),結(jié)束循環(huán);。變量X的值在語句塊中如果被修改,會(huì)改變迭代次數(shù)。FOR循環(huán)語句示例。嵌套循環(huán),即把一個(gè)循環(huán)放在另一個(gè)循環(huán)的內(nèi)部INTmatrix100,50/雙認(rèn)值為0INT1,jFORi=1TO100/外層循環(huán)FORj=1TO50/內(nèi)存循環(huán)IFj=20THENCONTINUEmatrixij=i+jNEXTNEXT文件的打開屆數(shù)文件的讀寫,雯根據(jù)內(nèi)容選擇一定的樵式打開后,才可以進(jìn)行;便用FileOpc
21、nf)打開,F(xiàn)ilcCk>sc()關(guān)閉無件:FileOpen(文件名f模式,訪問,鎖定,理入,編碼)*文件名二文件名即充弊或相對(duì)的路徑;模式;LineModeJ,StreamModeIrTextMode;«訪司:Rea.ci1Wr11e1;a車費(fèi)定:LockReadWriteI.Sh-ajsedL!,LockReadItLockWrlte*;Append1,Replace;«編韋馬:Encod.1ngANSI',EncodingUTF81yEncodingUTFl6LE!,EncodingUTF16BE!(LE:LittleEndiun,BE:BigEndia
22、n)PB書本自學(xué)類容一:標(biāo)識(shí)符:標(biāo)識(shí)符是程序中用來代表變量,標(biāo)號(hào),函數(shù),窗口,控件,對(duì)象等名稱的符號(hào)。標(biāo)識(shí)符必須是下劃線或者字母開頭,標(biāo)識(shí)符的非開頭字符可以是字母,數(shù)字或者5中特殊符號(hào)(-,_,#,%,$)標(biāo)識(shí)符不區(qū)分大小寫標(biāo)識(shí)符的書寫應(yīng)保持連續(xù),中間不能留空格。標(biāo)識(shí)符的最大長(zhǎng)度應(yīng)該控制在100個(gè)字符內(nèi)。保留字不能用作標(biāo)識(shí)符,因?yàn)樗鼈円呀?jīng)有特殊的含義。AsdfdfdfDffds-adfDfsdf_adfDfa#dfAsdf%fggDff$fsdfThis誤用保留字二:ASCLL碼字符:字符串中可以包括特殊的ascll碼字符,它們不能使用常規(guī)的的輸入方法直接輸入,要使用其他字符來替代。新行:n制
23、表:t雙引號(hào):”單引號(hào):等等三:代詞:日常生活中可以用你,我,他之類的代詞來指代特定的人物,PowerBuilder也提供了幾個(gè)代詞指定特定的對(duì)象。4個(gè)代詞分另U是:thisparentparentwindowsuper其中前3個(gè)廣泛使用。1 .This:代表窗口,用戶對(duì)象,菜單,應(yīng)用對(duì)象或控件本身,即代表正在為之編寫事件處理程序的對(duì)象。示例;設(shè)窗口有一個(gè)名稱為cb_button的按鈕,其上顯示的文本是請(qǐng)單擊在該按鈕的clicked事件中可以添加如下代碼:This.text=再單機(jī)一次:語句執(zhí)行后把請(qǐng)單擊改成了再單機(jī)一次不用代詞語句:cb_button.text=再單機(jī)一次'2 .pa
24、rent:代表當(dāng)前控件所在的窗口對(duì)象如上述例子:parent.text=再單機(jī)一次'3Parentwindow代表程序運(yùn)行時(shí)當(dāng)前菜單所在的窗口對(duì)象,注意:改代詞只能在菜單對(duì)象的事件處理程序中使用。例子:假設(shè)cb_button窗口關(guān)聯(lián)了一個(gè)菜單對(duì)象,該菜單中的關(guān)閉命令用于關(guān)閉窗口cb_button,我們可以在該菜單項(xiàng)的clicked事件中添加如下代碼:關(guān)閉關(guān)聯(lián)窗口Close(parentwindow)等同于Close(cb_button)Super:在編寫空間或?qū)ο蟮淖訉?duì)象時(shí),子對(duì)象中可以調(diào)用父對(duì)象的事件處理程序,程序中的既可直接利用父對(duì)象名稱調(diào)用他們,也可以使用super代詞來應(yīng)用。四
25、:對(duì)象,屬性,函數(shù)和事件的應(yīng)用方法。Powerbuilder應(yīng)用程序的開發(fā)過程實(shí)際上就是對(duì)各種對(duì)象的定義和使用過程。所有對(duì)象都有名稱,并通過名稱相互區(qū)分。在powerscript中,訪問對(duì)象的屬性,函數(shù),事件的方法很簡(jiǎn)單,就是使用圓點(diǎn)(.)作為標(biāo)記符。(1)訪問對(duì)象屬性的格式為:對(duì)象名.對(duì)象屬性列4.1:把單行編輯框sle_name的用戶輸入內(nèi)容送入字符串變量userenter的語句可以寫成:Userenter=sle_name.text訪問對(duì)象的函數(shù)與事件的格式為:Objectname.typecalltypewhenfunctionname(argumentlist)objectname對(duì)
26、象名type:取值為function或event用于指明訪問函數(shù)還是事件,默認(rèn)值是functionocalltype:用于指明查找函數(shù)的時(shí)機(jī),有效取值為:static(默認(rèn)值),編譯時(shí)查找函數(shù),若不存在,產(chǎn)生編譯錯(cuò)誤;dynamic,程序運(yùn)行時(shí)查找函數(shù),若不存在,產(chǎn)生運(yùn)行錯(cuò)誤。when:用于指明函數(shù)或事件是立即執(zhí)行還是當(dāng)前程序段執(zhí)行完畢后執(zhí)行,取值為TRIGGER(默認(rèn)值),立即執(zhí)行;POST,當(dāng)前程序段執(zhí)行完畢后執(zhí)行。Functionname指明調(diào)用的函數(shù)或事件名稱。Argumentlist:給出函數(shù)或事件的參數(shù)。例4.2:對(duì)象函數(shù)和事件的調(diào)用示例。代碼如下想把輸入焦點(diǎn)移動(dòng)到單行編輯框sle
27、_name上,程序中的代碼是Sle_name.setfocus()想立即執(zhí)行按鈕cb_name的單擊事件處理器,那么編寫代碼Cb_name.eventtriggerclicked五:保留字保留字是powerbuilder內(nèi)部使用的一組單詞,有著特殊的含義,不能再把他們用作標(biāo)識(shí)符。如果應(yīng)用程序誤把保留字用作了標(biāo)識(shí)符,那么powerbuilder將給出編譯錯(cuò)誤。在powerbuilder中保留字一般顯示為綠色。六:數(shù)據(jù)類型Powerbuilder的數(shù)據(jù)類型十分豐富,主要包括:標(biāo)準(zhǔn)數(shù)據(jù)類型,any數(shù)據(jù)類型,系統(tǒng)對(duì)象數(shù)據(jù)類型和枚舉類型,共4大類。程序中通過數(shù)據(jù)類型限定變量的取值范圍。在powerscr
28、ipt中,我們使用數(shù)據(jù)類型來聲明變量或數(shù)組。1標(biāo)準(zhǔn)數(shù)據(jù)類型:Blob二進(jìn)制大對(duì)象,用于存儲(chǔ)大量數(shù)據(jù),例如圖像.大文本等。Boolean布爾型,true或falseCharacter/char單個(gè)ASCLL字符Date日期,包括年(1000-3000)月(01-12)日(01-31)Datetime日期及時(shí)間,僅用于訪問數(shù)據(jù)庫(kù)的datetime型數(shù)據(jù)Decimal/dec帶符號(hào)十進(jìn)制數(shù),最大18位精度。DoubleInteger/int16位帶符號(hào)整數(shù),范圍從-2147483648到+2147483648RealString字符串類型,用于任意的ASCLL字符,比如計(jì)算機(jī)abc'Unsi
29、gnedinteger16位無符號(hào)整數(shù),范圍0-65535Unsignedlong32位無符號(hào)整數(shù),范圍0-42949762952 .常量的申明在編寫代碼時(shí),對(duì)應(yīng)用程序不應(yīng)該修改的數(shù)據(jù)聲明成常量是個(gè)好辦法:一來提高了程序的可讀性和可維護(hù)能力,二來避免了意外的修改,降低了編碼出錯(cuò)的概率。聲明常量使用constant,其簡(jiǎn)單語法為:Constent數(shù)據(jù)類型.常量名=常量值3 .變量的作用域:作用域是指用戶定義的變量在什么范圍內(nèi)有效。Powerbuilder的變量作用域共有4種:全局變量,實(shí)例變量,共享變量和局部變量。* 全局變量:在整個(gè)應(yīng)用程序中都可以訪問,他的作用域是整個(gè)應(yīng)用程序* 實(shí)例變量:實(shí)
30、例變量和對(duì)象相關(guān)聯(lián),只有在該對(duì)象的事件處理程序或函數(shù)中才能使用為該對(duì)象定義的實(shí)例變量。實(shí)例變量在它所關(guān)聯(lián)的對(duì)象打開時(shí)創(chuàng)建,被關(guān)閉時(shí)消失。* 共享變量:共享變量是一種靜態(tài)變量,這不僅意味著它所在的對(duì)象關(guān)閉后如果再次打開時(shí),共享變量依然保持對(duì)象關(guān)閉時(shí)的值,還意味著同一個(gè)類的多個(gè)實(shí)例中的同名共享變量將保持相同的值。* 局部變量:局部變量在使用它的事件處理程序或函數(shù)中聲明,其作用域僅限于聲明它的程序段,在該程序段的任何地方均可訪問局部變量,但其他程序段都不能訪問本程序段中的局部變量。運(yùn)行程序后,進(jìn)入某個(gè)程序段時(shí),系統(tǒng)自動(dòng)為局部變量分配內(nèi)存,退出程序時(shí),局部變量占用的內(nèi)存被釋放。4.變量的默認(rèn)值變量類型
31、默認(rèn)值falseBlob長(zhǎng)度為0,空的二進(jìn)制大對(duì)象BooleanCharDateDatetimeascll碼01900-01-011900-01-0100:00:00數(shù)值類型*StringTime0空字符串("")00:00:00七:運(yùn)算符1算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于完成數(shù)學(xué)運(yùn)算+-*/八+-+=-=*=/=A=2.關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于比較兩個(gè)操作符,比較的結(jié)果為下述3個(gè)值之一(true,false,null)=><<>>=<=在進(jìn)行運(yùn)算符比較時(shí),應(yīng)注意到這些運(yùn)算符進(jìn)行的比較是區(qū)分大小些的比較,也就是說A<>a。需要時(shí)可使用
32、powerscrpt的字符串操作函數(shù)進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換,這類函數(shù)包括:Upper()轉(zhuǎn)換成大寫Lower()轉(zhuǎn)換成小寫Righttrim()刪除右部空白Lefttrim()刪除左部空白Trim()刪除兩端空白3邏輯運(yùn)算符Notandor4連接運(yùn)算符連接運(yùn)算符只有一個(gè),那就是+',用于把兩個(gè)string型或blob型變量的內(nèi)容連接在一起,形成新的字符串或blob型數(shù)據(jù)。4.1 例:stringtesttest='北京'+上海/test中包含“北京上?!?.基本語句Powerscript的基本語句主要包括賦值語句,條件語句,循環(huán)語句。5.1 賦值語句:用于給變量或?qū)ο筚x值,使用
33、最頻繁的語句。其中語法格式為:Variablename改量名或?qū)ο竺?=expression表達(dá)式,其數(shù)據(jù)類型應(yīng)該與variablename的數(shù)據(jù)類型兼容)5.2 條件語句:共有if語句和choosecase語句兩類條件語句。If語句計(jì)算一個(gè)邏輯表達(dá)式,然后根據(jù)表達(dá)式的值是真還是假?zèng)Q定下一步執(zhí)行的語句塊。Choosecase語句可同時(shí)處理多種情況。(1) if語句,if語句有兩種形式。一.單行if-then語句,格式為:Ifcondthenaction1elseaction2其中cond是個(gè)表達(dá)條件的邏輯表達(dá)式;action1,action2是一條語句;大括號(hào)表示該部分可以根據(jù)需要選擇。cho
34、osecase語句5.3 循環(huán)語句:powerscript的循環(huán)語句有3種形式:do-loop,fornext,和goto。如果合理的將前兩種形式與exit和continue語句配合使用,完全可以拋棄goto語句。而且doloop結(jié)構(gòu)本身又有4中形式,豐富多彩的表達(dá)方式為我們編寫清晰流暢的程序提供了有效的手段。(1) do-loop循環(huán)語句,4種形式:* Dountilconditionloop* dowhileconditionloop* do.loopuntilcondition* do-loopwhilecondition其中do標(biāo)示循環(huán)的開始;loop表示循環(huán)的結(jié)束;condition
35、表示循環(huán)條件,是個(gè)邏輯表達(dá)式,其值為true或false。(2)fornext:fonext是個(gè)循環(huán)次數(shù)確定的循環(huán)結(jié)構(gòu),她使循環(huán)體內(nèi)的語句執(zhí)行規(guī)定的次數(shù),語法結(jié)構(gòu)為:forvarname=starttoendstepincrementstatementblocknext其中varname是循環(huán)變量,可以使是任意的數(shù)字類型;startend分別是循環(huán)變量的初值和終值;increment是每次循環(huán)后循環(huán)變量的步長(zhǎng)增量(默認(rèn)值為1);statementblock是一組語句,成為循環(huán)語體,大括號(hào)表示此語句可以省略。其循環(huán)過程為:虛幻變量varname從start開始,到end為止,重復(fù)執(zhí)行循環(huán)體,每執(zhí)
36、行一次,varname+increment另外,如果start和end在循環(huán)體內(nèi)被修改,將影響循環(huán)次數(shù)。(3) goto語句goto語句將控制跳轉(zhuǎn)到程序中的其他位置,用goto語句也可以構(gòu)成循環(huán)。其語法格式為:gotolabel其中l(wèi)abel是語句標(biāo)號(hào),它使用標(biāo)識(shí)符的命令規(guī)則。(4) exit(退出循環(huán))語句在do”oop和for.next語句的循環(huán)體中,當(dāng)我們想在中途退出循環(huán)時(shí),可以使用exit語句,執(zhí)行該語句后,程序的控制權(quán)轉(zhuǎn)至循環(huán)語句后的語句。(5) continue(繼續(xù)循環(huán))語句在循環(huán)體中,遇到continue語句后,將不執(zhí)行continue語句后與循環(huán)結(jié)束前的所有語句,而是開始新一
37、輪循環(huán)。常用事件Open事件:打開窗口時(shí)觸發(fā)Close事件:關(guān)閉窗口時(shí)觸發(fā)。Closequery事件:在開始關(guān)閉窗口時(shí)觸發(fā)。Dragdrop事件:當(dāng)在窗口客戶區(qū)釋放拖動(dòng)對(duì)象時(shí)發(fā)生。Resize事件:當(dāng)窗口大小發(fā)生變化時(shí)產(chǎn)生,窗口被打開時(shí)也產(chǎn)生該事件。常用函數(shù)Powerbuilder窗口對(duì)象比較常用的函數(shù)如下:1.ArrangeSheets()功能:按指定方式排列mdi框架窗口中的工作窗口(子窗口)或圖標(biāo)。語法:mdiframe.arrangesheets(arrangetype)2. getactivesheet()功能:得到指定mdi框架窗口中當(dāng)前活動(dòng)工作表語法:mdiframewindow
38、.getactivesheet()3.getparent功能:返回父窗口的名稱語法:windowname.Getparent()4.hide()功能:隱藏窗口語法:windowname.hide()5.print功能:打印窗口語法:windowname.print()6.setfocus()功能:將焦點(diǎn)設(shè)置在該窗口上。語法:windowname.setfocus()7.show()功能:顯示窗口語法:windowname.show()與窗口相關(guān)的函數(shù)1.Open()功能:打開窗口。該函數(shù)有兩種語法格式:格式一:打開編程時(shí)已知數(shù)據(jù)類型的窗口對(duì)象。格式二:打開程序運(yùn)行后才能確定數(shù)據(jù)類型的窗口對(duì)象。
39、語法一:Open(windowvar,parent)語法二:Open(windowvar,windowtype,parent)2 Openwithparm()功能:帶參數(shù)打開窗口,與Open()函數(shù)相似。區(qū)別在于openwithparm()函數(shù)可以向打開的窗口對(duì)象傳遞參數(shù)。語法一:openwithparm(windowvar,parameter,parent)二.openwithparm(windowvar,parameter;windowtype,parent)3 opensheet()功能:在mdi框架窗口中打開mdi子窗口,并在指定菜單中創(chuàng)建該子窗口的相關(guān)菜單項(xiàng)。語法:4 openshe
40、etwithparm()功能:在Mdi框架窗口中帶參數(shù)打開mdi子窗口。與opensheet()函數(shù)相似。區(qū)別在于opensheetwithparm()B數(shù)可以向打開的窗口對(duì)象傳遞參數(shù)。語法:5 close()功能:關(guān)閉窗口并釋放窗口以及窗口上的控件所占據(jù)的內(nèi)存語法:Close(windowname)6 CloseWithReturn()功能:關(guān)閉窗口,與close()函數(shù)相似。區(qū)別在于closewithreturn()函數(shù)在關(guān)閉窗口時(shí)將返回值保存在message寸象中。PB中實(shí)例化(用isvalid判斷)的作用是什么?比如:ifnotisvalid(myo_apprun)thenmyo_ap
41、prun=createmy_apprunendif如果不寫它會(huì)有什么后果?不寫可能會(huì)報(bào)錯(cuò),使用isvalid來判斷對(duì)象是否成功被創(chuàng)建,如果未被成功創(chuàng)建就去使用的話會(huì)拋出異常,程序不能正常運(yùn)行。Upper()編輯Upper()功能將字符串中的小寫字母轉(zhuǎn)換為大寫字母。語法Upper(string)參數(shù)string:要將其中的小寫字母轉(zhuǎn)換為大寫字母的字符串返回值String。函數(shù)執(zhí)行成功時(shí)返回將小寫字母轉(zhuǎn)換為大寫字母后的字符串,發(fā)生錯(cuò)誤時(shí)返回空字符串(”")。如果string參數(shù)的值為NULL,Upper()函數(shù)返回NULL。eg:selectupper('AaCdD')f
42、romdual;UPPER('AACDD')message.stringparm勺用法比如openwithparm(w_1,'abc')在w_1的open事件里就可以通過message.stringparmflX得'abc'的值stringls_stringls_string=message.stringparm/ls_string值即為abc'在窗口調(diào)用的時(shí)候openwithparm(window_name,'trans_string')在窗口打開的時(shí)候(openevent),ls_string=message.stri
43、ngparmOpenWithParm()功能帶參數(shù)打開窗口,與打開窗口的Open()函數(shù)相似。Trim()刪除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取決于控制參數(shù)),但會(huì)保留字符串內(nèi)部作為詞與詞之間分隔的空格。=html5,c#,powerbuilder,mysql,oracle經(jīng)典學(xué)習(xí)視頻和文檔資料,本人多年收集的學(xué)習(xí)資料,里面主要包含:“html5,c#,powerbuilder,mysql,oracle”需要力口qq:417129367名群人SQLServer2006SQLServer2000如&庫(kù)基本匪作口相關(guān)文檔詣句大全第A節(jié)SQLServer2005魂S據(jù)迸翡第
44、二節(jié)5qlServer2005數(shù)據(jù)庫(kù)的馬*篥九節(jié)SQLServer2005連霞泡萍第六節(jié)SQLServer2005簡(jiǎn)第查詢第七節(jié)SQLServer2005簡(jiǎn)單查詢用第三節(jié)叼1Server2005震的基本也遂1第十三SQLServer2005數(shù)據(jù)完萍舞十節(jié)SQLServer2005室亞詢商第十六節(jié)SQLServer2005觸發(fā)器第+"fc節(jié)SQLServer2005國(guó)明泰1窩十三15SQLServer2005索弓|.e|類粗:文件夾位置:F丸常用T學(xué)習(xí)資料還qlSerer2005_視頻大小;1+53GB口犬的105.647字句占用空間:153GR(1,56/60/16字節(jié))包含t479
45、個(gè)文件,44個(gè)文件夾創(chuàng)建時(shí)間:2。1m年09月9日,197:37屬性:回且讀儂用于文件夾中的文科儀咫酉,翡十EJ15SQLServer2005觀圖后口頻H)砌0).,+常視共享安全以前的)朗宮視頻交小pb學(xué)習(xí)一名梆I360Dcwn類獨(dú)文件案BaiduYun謂GAmqjuNET。Sh大?。?03GB(32,57pb學(xué)習(xí)資am占用空間:30.3GB(32,57£常規(guī)共享安全以前的版本自定義NlETCSharp生春文件夾大,卜577GB廊工5晚的9字母占用至I間:574GB(61,671,723.008字節(jié))第二部分:Pb的5個(gè)可編程對(duì)象概述:Application對(duì)象:程序執(zhí)行的起點(diǎn),全
46、局編程Window對(duì)象和控件:用戶界面主要構(gòu)成對(duì)象Menu對(duì)象:調(diào)度中心。Userobject對(duì)象:重用。封裝。Function對(duì)象:重用和編程關(guān)系緊密的內(nèi)容:界面設(shè)計(jì):常規(guī)設(shè)計(jì),標(biāo)準(zhǔn)設(shè)計(jì)函數(shù):600多個(gè)函數(shù),常用70多個(gè)事件:常用事件,理解觸發(fā)事件至關(guān)重要屬性:常用屬性Sql語言:數(shù)據(jù)處理的基礎(chǔ)。PB的編程語言:POWerScript嵌入式sql程序和時(shí)間的關(guān)系:Pb中所有程序的執(zhí)行都必須通過事件編程的規(guī)范性:能編程序不重要,重要的是編寫規(guī)范的程序?qū)崿F(xiàn)功能是基本要求,維護(hù)要求規(guī)范顯小編譯:ctrl+L快捷鍵快速替換:ctrl+H標(biāo)識(shí)符:定義:所有程序員自己定義的名稱字母或者下劃線開頭長(zhǎng)度=2
47、55不區(qū)分大小寫不能是保留字:比如this等關(guān)鍵詞就不能指代詞:This:代表當(dāng)前窗口Parentwindow:當(dāng)前菜單所在的窗口。數(shù)據(jù)類型:1:保準(zhǔn)數(shù)據(jù)類型:parent:所編程對(duì)象的容器控件Super:子對(duì)象引用父對(duì)象會(huì)用到。字符型:stringchar數(shù)值型:注意各類型的取值范圍,和數(shù)據(jù)庫(kù)的同類型的數(shù)據(jù)精度是否匹配。類型有:integer(最大值65536)longdoublerealdecimalunsignedintegerunsignedlong日期,時(shí)間型:datetimedatetime布爾型:booleanBlob型:blob2:系統(tǒng)對(duì)象類型:create(創(chuàng)建)destro
48、y(釋放內(nèi)存)browser3:枚舉型:4:Any型:運(yùn)行慢,編譯時(shí)不做類型檢查。第一章語言基礎(chǔ)變量聲明:作用范圍:全局變量:整個(gè)target下所有對(duì)象都可訪問實(shí)例變量:windowapplicationmenuuserobject范圍內(nèi)的變量本地變量:申明變量的事件或者函數(shù)內(nèi)“w_hellcii(hello)1helllo.pbbinheritedfromwindow-WindowInstanceVariables*.llobalVariables寫hcrudVariables_-instanceVariabtesGlobalEteriulFufieiLi0Fi&LocalExter
49、nalFuKtionsJ第一個(gè)是申明全局變量第三個(gè)是申明實(shí)例變量-hDeclareTmtqnuEVariablescclorc)變量聲明:注意聲明時(shí)賦值的特例格式:數(shù)據(jù)類型,變量名稱戶初值位置:代碼的開頭規(guī)范:作用范圍+類型變量名稱例子:stringls_sstimelt_study類型轉(zhuǎn)換:20160712第三天:運(yùn)算符和表達(dá)式:算術(shù)運(yùn)算符:+,-,-,*,/,A關(guān)系運(yùn)算符:=,<,>,<>,>=,<=邏輯運(yùn)算符:not,and,or,聯(lián)接運(yùn)算符:+表達(dá)式和賦值:表達(dá)式:運(yùn)算符,常量,變量,函數(shù)賦值和關(guān)系運(yùn)算符的區(qū)別:左側(cè)能否用常量,是否有返回值。分支語句
50、:一:If語句:1:if條件then語句2:if條件then語句Endif3:if條件then語句1Else語句2Endif4:If條件then語句1日seif條件then語句2Endif5:If條件then語句1日seif條件then語句2Else語句Endif二:case語句格式:choosecase表達(dá)式Case取值語句EndchooseStringls_lsLs_ls=90Choosecasels_lsCaseisls_ls>90Messagebox(提示','優(yōu)秀')Caseisls_ls>60Messagebox(提示','及格&
51、#39;)Caseisls_ls<60Messagebox(提示','不及格')EndChoose關(guān)于取值:一個(gè)值,多個(gè)值列表,xtoy,is表達(dá)式,上述各種組合。注意:case判斷的順序性(由少范圍到多范圍)。循環(huán)語句:格式1:dowhile條件語句模塊Loop格式2:Do語句模塊Loopwhile條件格式3:Dountil條件語句模塊Loop格式4:Do語句模塊Loopuntil條件注意:掌握其中一個(gè)就行(通用掌握第一個(gè))循環(huán)語句2:格式1:For變量=初值to終值語句模塊Next格式2:For變量=初值to終值step步長(zhǎng)語句模塊NextSplit功能的實(shí)現(xiàn)
52、學(xué)習(xí)函數(shù):1:函數(shù)的作用2:函數(shù)的語法3:參數(shù)的含義4:返回值的含義5:常用編程Pos函數(shù):1),str2在str1第作用:查找一個(gè)字符串在另一個(gè)字符串中首次出現(xiàn)的位置(起始位置是語法:1:pos(str1,str2)2:pos(str1,str2,start)返回值:integer,從str1開始的位置,0表示沒找到。:從start位置開始找一次出現(xiàn)的值。Left函數(shù):作用:得到指定字符串左側(cè)若干個(gè)字符語法:left(str1,len)返回值:string,字符串Right函數(shù)作用:得到指定字符串右側(cè)若干個(gè)字符語法:right(str1,len)返回值:string,字符串Mid函數(shù):作用:得到指定字符串指定位置的一個(gè)子串語法:mid(str1,start,len):從start開始取len個(gè)長(zhǎng)度。返回值:string,字符串Len
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科研樓翻新合同終止通知
- 書店裝修員工合同樣本
- 自然人借款合同樣本
- 三農(nóng)村資源綜合利用路徑規(guī)劃
- 電子政務(wù)平臺(tái)建設(shè)及管理手冊(cè)
- 農(nóng)業(yè)信息化建設(shè)與管理作業(yè)指導(dǎo)書
- 擔(dān)保借款合同書
- 聘請(qǐng)博士協(xié)議書
- 項(xiàng)目管理與協(xié)調(diào)能力作業(yè)指導(dǎo)書
- 農(nóng)產(chǎn)品食品安全與質(zhì)量控制標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 精裝修室內(nèi)施工組織部署
- 農(nóng)用拖拉機(jī)考試題庫(kù)
- GJB438C模板-軟件開發(fā)計(jì)劃(已按標(biāo)準(zhǔn)公文格式校準(zhǔn))
- 2023年政府采購(gòu)評(píng)審專家考試真題及答案
- 云端數(shù)據(jù)加密與密鑰管理解決方案
- 毒麻藥品試題答案
- 醫(yī)療器械專業(yè)知識(shí)培訓(xùn)課件
- 傳統(tǒng)體育養(yǎng)生學(xué)
- DB4401∕T 33-2019 電梯托管標(biāo)準(zhǔn)化管理規(guī)范
- 醫(yī)院物業(yè)(保潔)技術(shù)服務(wù)投標(biāo)方案
評(píng)論
0/150
提交評(píng)論