![powerbuilder_8.0使用技巧_secret_第1頁](http://file4.renrendoc.com/view/d16ee908396836ef3e37085959936277/d16ee908396836ef3e370859599362771.gif)
![powerbuilder_8.0使用技巧_secret_第2頁](http://file4.renrendoc.com/view/d16ee908396836ef3e37085959936277/d16ee908396836ef3e370859599362772.gif)
![powerbuilder_8.0使用技巧_secret_第3頁](http://file4.renrendoc.com/view/d16ee908396836ef3e37085959936277/d16ee908396836ef3e370859599362773.gif)
![powerbuilder_8.0使用技巧_secret_第4頁](http://file4.renrendoc.com/view/d16ee908396836ef3e37085959936277/d16ee908396836ef3e370859599362774.gif)
![powerbuilder_8.0使用技巧_secret_第5頁](http://file4.renrendoc.com/view/d16ee908396836ef3e37085959936277/d16ee908396836ef3e370859599362775.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、SYBASEPowerBuilder 8.0 Tip(1)如何設(shè)定預設(shè)打印機?PowerBuilder程序在打印報表時,使用者必須先設(shè)定好操作系統(tǒng)預設(shè)的打印機,然后才能在程序執(zhí)行中將報表打印出來。然而許多系統(tǒng)所產(chǎn)生的報表各不相同,需求各異,常常一個系統(tǒng)就會需要不同的打印機來滿足其打印需求。對操作系統(tǒng)而言,不管各式各樣的PowerBuilder程序行印需求,只是單純的將工作交由預設(shè)打印機來完成,因此要打印各種不同需求的報表,主要解決方法就是在打印該報表前先更改操作系統(tǒng)的預設(shè)打印機,這樣接下來要打印的報表就可以依需要的打印機來打印了。以往PowerBuilder程序在解決這類打印機切換問題時主要有
2、兩個方法:第一個方法就是將預設(shè)打印機切換動作交由使用者自行完成。這種方法雖然減輕程序設(shè)計師的動作,并且在使用上也是一個最簡單的方法,但是由于操作上極不方便,所以較少系統(tǒng)使用這種方式。第二個的方法就是更改操作系統(tǒng)的注冊機碼,由于預設(shè)打印機的信息會記錄在注冊機碼內(nèi),所以更改注冊機碼內(nèi)的數(shù)據(jù),就等于更改操作系統(tǒng)的預設(shè)打印機了。一般程序設(shè)計師會使用PowerScirpt函數(shù)如:RegistryGet()或是RegistrySet(),分別用來讀取及設(shè)定注冊機碼信息,利用這兩個函數(shù)在程序執(zhí)行階段動態(tài)更改操作系統(tǒng)的預設(shè)打印機。這是一個可行的解決方案,但是仍有不方便之處,因為各操作系統(tǒng)注冊機碼位置并不相同,
3、在程序的撰寫上必須要考量使用者的環(huán)境,另外RegistryGet()及RegistrySet()函數(shù)使用上也較不方便,程序設(shè)計人員必須知道并撰寫冗長的注冊機碼地址。在PowerBuilder 8.0,提供了新的解決方案,可以更方便的設(shè)定打印機相關(guān)功能。PowerBuilder 8.0新增四個有關(guān)打印機的功能函數(shù),其功能請參見下表:函數(shù)名稱說明PrintGetPrinter得到預設(shè)打印機的名稱PrintGetPrinters得到系統(tǒng)目前可獲得的打印機名稱列表PrintSetPrinter設(shè)定下次Print()函數(shù)所使用的打印機名稱PrintSetupPrinter開啟目前選定打印機的功能設(shè)定窗口
4、這四個函數(shù)在使用上都不會牽涉到操作系統(tǒng)的注冊機碼,所以程序設(shè)計人員直接呼叫使用即可,不必考慮操作系統(tǒng)版本,也不用撰寫冗長的注冊機碼地址。以PrintGetPrinter()函數(shù)為例,呼叫它會傳回型態(tài)為字符串的打印機名稱,其中也包含了裝置名稱及端口號碼,在這個函數(shù)你就不像RegistryGet()函數(shù)需要傳入任何參數(shù),才能得到目前系統(tǒng)的打印機名稱。讓我們稍加說明其它的函數(shù):PrintGetPrinters()函數(shù),與PrintGetPrinter()函數(shù)使用上相同,只是傳回的字符串包含目前操作系統(tǒng)已安裝的各類型打印機名稱,各名稱之間以n字符區(qū)分,從這個函數(shù)可以得知系統(tǒng)有哪些打印機,可做為將來你可
5、選擇的機型。PrintSetPrinter()函數(shù)用來設(shè)定所要使用的打印機,所傳入函數(shù)的參數(shù)就是打印機名稱,可藉由PrintGetPrinters()函數(shù)得知。當你設(shè)定好后,呼叫報表打印Print()函數(shù)就會以該打印機打印了。至于PrintSetupPrinter()函數(shù),則是呼叫打印機打印功能的設(shè)定窗口,你可在這個窗口設(shè)定打印機本身的功能屬性。與原本PrintSetup()函數(shù)不同的是PrintSetup()函數(shù)還可讓你先選擇要設(shè)定的打印機,再來設(shè)定屬性。我們可以使用上述函數(shù)更方便的解決打印機切換的問題,例如我們可以先呼叫PrintGetPrinters()函數(shù)得到系統(tǒng)目前可用的打印機,在挑
6、選好要使用的打印機后,再呼叫PrintSetPrinter()函數(shù)就可以切換到新的打印機了,若還想要進一步設(shè)定打印機打印功能,再呼叫PrintSetupPrinter()函數(shù)即可。讓我們參考下面簡單的范例。long ll_place string ls_setptr string ls_prntrs = PrintGetPrinters ( ) /讀取系統(tǒng)目前有哪些打印機 /讀取列表中最后一筆打印機名稱 ll_place=lastpos (ls_prntrs, n) ls_setptr = Mid (ls_prntrs, ll_place + 1) /設(shè)定新的打印機 PrintSetPrint
7、er (ls_setptr) /呼叫打印機功能設(shè)定窗口 PrintSetupPrinter () 這個例子從所得的打印機列表上故意讀取最后一筆打印機名稱,如第5及第6行所示,在實作上,你應(yīng)該會加入一些判斷來獲得你想要使用的打印機。至于其它程序行,你根本不用修改就可以符合這個系統(tǒng)的需求,在程序執(zhí)行時期動態(tài)更改所使用的打印機。最后,你只要呼叫報表的Print()函數(shù),就可以將報表以所需的打印機打印出去了。上述是PowerBuilder 8.0在印表功能上新增的函數(shù)介紹,相信對程序設(shè)計而言,能增加撰寫程序的方便性,提供了更多的彈性。 SYBASEPowerBuilder 8.0 Tip(2)檔案及目
8、錄的處理以往PowerBuilder在對于檔案及目錄的處理上,總是覺得捉襟見肘,雖然PowerBuilder PFC有提供檔案復制等等相關(guān)功能,但不是每個使用者都想要利用PFC來處理檔案及目錄,原因之一是PowerBuilder PFC相當復雜,對新手而言較難上手;之二則是PowerBuilder PFC程序代碼在使用上多利用繼承來完成,所以完成的程序代碼容量較大,影響執(zhí)行效率。若不是使用PowerBuilder PFC,解法之一就是呼叫PowerBuilder提供的RUN()函數(shù),藉由傳入RUN()函數(shù)內(nèi)的字符串參數(shù),來執(zhí)行以往DOS的命令,然而這個方法有一個很大的致命傷,就是往往程序尚未復
9、制完成時,PowerBuilder下一行指令極可能就要參考到所復制出的檔案,這個問題出在PowerBuilder并不會等待RUN()函數(shù)內(nèi)的動作是否執(zhí)行完畢,就會直接執(zhí)行下一行PowerScript指令,雖然我們會藉由循環(huán)或設(shè)定Timer來做控制,但是這只是治標的方法罷了! 要解決上述的問題,就一般的解法而言,就是呼叫外界的API,由這些API來完成PowerBuilder所無法提供的部分。有關(guān)檔案及目錄處理的API文件名為KERNEL32.DLL,它提供了包含檔案復制、建立目錄、得到目前目錄等等數(shù)十種與檔案及目錄相關(guān)的函數(shù)呼叫。但是呼叫外界API的方式需要注意KERNEL32.DLL的版本及
10、相關(guān)作業(yè)平臺,若是在Unix平臺上執(zhí)行的程序,這些API就不能使用的。所以根本之道,還是希望由PowerBuilder自行提供相關(guān)函數(shù),這樣的解法才是一勞永逸。PowerBuilder 8.0在有關(guān)檔案及目錄處理的功能函數(shù)上,主要新增了7個相關(guān)函數(shù),這些函數(shù)大幅解決檔案及目錄處理的相關(guān)問題,功能請詳見下列表一:名稱描述FileCopy檔案復制FileMove搬移檔案ChangeDirectory改變目前工作目錄CreateDirectory建立一個新目錄DirectoryExists判定所指定的目錄是否存在?GetCurrentDirectory得到目前工作目錄RemoveDirectory刪
11、除一個目錄表一:PowerBuilder 8.0新增檔案及目錄函數(shù) 例如函數(shù)FileCopy(),其語法如下:FileCopy ( sourcefile, targetfile , replace )其中sourcefile及targetfile數(shù)據(jù)型態(tài)皆為string,用來表示檔案路徑,至于replace數(shù)據(jù)型態(tài)為boolean,用來表示是否允許復制到已存在的檔案。其范例如下,將目前目錄的jazz.gif檔復制一份至C:emusicjazz.gif,若C:emusicjazz.gif檔案已存在,則允許覆寫過去。 integer li_FileNum li_FileNum = FileCopy
12、 (jazz.gif , C:emusicjazz.gif, TRUE) 由上表得知,以往PowerBuilder未提供但是最常使用的動作:檔案復制及搬移,在PowerBuilder 8.0終于提供這個功能函數(shù)了,我們可以不用PowerBuilder PFC來完成,也不用費心的準備KERNEL32.DLL檔案。同樣的,在目錄處理的功能函數(shù)上,都是以往PowerBuilder版本皆未提供的,在PowerBuilder 8.0,你就可以新增目錄或刪除目錄,知道自己所在目錄位置,更改所在目錄或是判斷目錄是否存在等等。在使用上我們常常搭配ListBox控制件,ListBox控制件提供一個函數(shù),叫做Di
13、rList(),它可以將某目錄下的子目錄及檔案內(nèi)容顯示在ListBox上,并且提供多重選取的功能,其行為類似檔案總管。我們可以由ListBox控制件搭配PowerBuilder 8.0所新增有關(guān)目錄及檔案的函數(shù),最后就可以做出一個類似檔案功能的程序了,如下圖所示:圖一:由PowerBuilder所完成的檔案總管SYBASEPowerBuilder 8.0 Tip(3)問:我的 DataWindow 報表時常會因為不同的字段而需要中文英輸入法互相切換,請問有沒有詳細的作法? 答:要達到這一個目地,你必須要注意的地方是要在那一個 Event 下 Script 并且得到字段名稱,另一個地方就是如何呼
14、叫這一個輸入法。下面就是一個例子,我們的 DataWindow 有兩個字段,User_Name這個字段是要輸入中文,我們想用注音輸入法;而Password這個字段是要輸入英文,你可以參考下列步驟:一、在宣告函數(shù)的地方宣告globalexternalfunctions:function boolean ImmSimulateHotKey (UnsignedLong hWnd,UnsignedLong dwHotKeyID) library IMM32.dllfunction unsignedlong GetKeyboardLayout (unsignedlong wLayout)library user32.dllfunction boolean ImmIsIME(unsignedLong hklKeyboardLayout)library IMM32.DLL二、在使用的 DataWindow Control中的Itemfocuschanged這一個事件,加上下面的程序代碼:ulong hklKeyboardLayoutchoose case case User_Name hklKeyboardLayout = GetKeyboardLayout(0)if not ImmIsIME(hklKeyboardLayout) thenImm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品加工企業(yè)供應(yīng)鏈管理合同
- 新材料推廣應(yīng)用合同
- 物聯(lián)網(wǎng)硬件設(shè)備采購合同
- 企業(yè)財務(wù)報表編制咨詢合同
- 2024年智能建筑設(shè)計合作投資合同
- 2025年箱包皮具配件項目可行性研究報告
- 大頭探燈行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 環(huán)保型電機生產(chǎn)線項目可行性研究報告申請立項
- 2020-2025年中國新能源汽車電機控制器市場運行態(tài)勢及行業(yè)發(fā)展前景預測報告
- 2025年中國拱型彩鋼屋面板行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024年西藏中考物理模擬試題及參考答案
- 九型人格與領(lǐng)導力講義
- 藥品經(jīng)營和使用質(zhì)量監(jiān)督管理辦法培訓試題及答案2023年9月27日國家市場監(jiān)督管理總局令第84號公布
- 人教版五年級上冊數(shù)學脫式計算練習200題及答案
- 卵巢黃體囊腫破裂教學查房
- 醫(yī)院定崗定編
- 計算機網(wǎng)絡(luò)畢業(yè)論文3000字
- 2023年大學物理化學實驗報告化學電池溫度系數(shù)的測定
- 腦出血的護理課件腦出血護理查房PPT
- 煤礦機電運輸安全培訓課件
- 扣繳個人所得稅報告表-(Excel版)
評論
0/150
提交評論