PowerBuilder(PB)是一種跨平臺(tái)的且功能強(qiáng)大、性能優(yōu)異的開發(fā)工具。在客戶端/服務(wù)器系統(tǒng)結(jié)構(gòu)的應(yīng)用模式中,作為客戶端的一種面向?qū)ο蟮目梢暬O(shè)計(jì)工具,在與數(shù)據(jù)庫相連接操作的系統(tǒng)中得到較為廣泛的應(yīng)用。筆者在使用PB開發(fā)Sybase數(shù)據(jù)庫應(yīng)用,建立企業(yè)管理信息系統(tǒng)的過程中,積累了一點(diǎn)經(jīng)驗(yàn)和技巧,現(xiàn)將其中的一部分在此做點(diǎn)介紹,或許能夠?qū)ε笥褌冇悬c(diǎn)啟發(fā)和幫助。 一、PowerBuilder與Sybase SQL Server的連接 若在連接時(shí)出現(xiàn)問題,必須要冷靜多思考。首先要檢查客戶端的情況,確認(rèn)Open Client已經(jīng)安裝,并正確配置。要注意OPen Client必須與PowerBuilder同為32位,或同為16位。 PB與Sybase連不上,常見的幾種錯(cuò)誤現(xiàn)象及處理方法說明如下: 1.已連接上Sybase數(shù)據(jù)庫,但在PB的數(shù)據(jù)庫(database)畫板中卻看不到用戶已經(jīng)定義過的表。 此時(shí)可打開isql或Sybase Advantage,用"sa"登錄到"master"數(shù)據(jù)庫,執(zhí)行pbsyc.sql腳本文件(該文件位于PB安裝盤的server目錄)即可。值得一提的是,對Sybase Adaptive Server的版本號(hào)要加以注意,根據(jù)資料對有的相關(guān)項(xiàng)進(jìn)行點(diǎn)改動(dòng)。 2.在打開PB的項(xiàng)目畫板(Project)或庫畫板(Library)時(shí),出現(xiàn)錯(cuò)誤信息提示:"cannot locate source management dll"。 這個(gè)問題是因?yàn)樵诎惭bPB時(shí),選擇了安裝版本控制軟件(如PVCS)的接口,實(shí)際上該用戶的機(jī)器上并未安裝相應(yīng)的版本控制軟件。 解決方法: 在PB的設(shè)置中,將版本控制軟件的接口去掉,具體操作步驟是,可在PB.ini文件中,找到[Library]節(jié),將"SourceVendor= ..."這一行注釋去掉。 3.數(shù)據(jù)庫連接正常,但打開用戶表時(shí)若該表中有漢字則出現(xiàn)亂碼。 這個(gè)問題通常是由于客戶端的缺省字符集設(shè)置和服務(wù)器端的字符集設(shè)置不一致,應(yīng)修改locales.dat文件(該文件位于Sybase安裝目錄的locales子目錄下)。如果在Windows95/98操作系統(tǒng)下,可修改[NT]節(jié)下的相關(guān)內(nèi)容;若操作系統(tǒng)平臺(tái)是Windows3.x,則修改[win3]節(jié)下的內(nèi)容。在此節(jié)有一行文本為locale=default,us_english,is0_1,則說明客戶端的缺省字符集設(shè)為iso_1。開發(fā)中文管理信息系統(tǒng)一般建議將字符集改為cp85o,在服務(wù)器端必須要做相應(yīng)的調(diào)整。 二、PB編程的幾點(diǎn)技巧 1.在數(shù)據(jù)窗口(Datawindow)中實(shí)現(xiàn)數(shù)據(jù)列自動(dòng)折行。 PB軟件在市場上受用戶歡迎的原因之一,就是它的數(shù)據(jù)窗口功能很強(qiáng),而且方便應(yīng)用。 在使用Datawindow時(shí),常會(huì)遇到某列的數(shù)據(jù)太長,不能同時(shí)顯示全部的情況。若采用自動(dòng)水平滾動(dòng),操作起來又不夠簡便。有一種方法能實(shí)現(xiàn)列數(shù)據(jù)多行顯示(自動(dòng)折行)。具體步驟如下: ①.在Datawindow Panter中打開此DataWindow,在需設(shè)定自動(dòng)折行的列上雙擊鼠標(biāo),彈開此列的屬性窗口。點(diǎn)Position標(biāo)簽,選中Autosize Heigh多選框; 再選擇Edit標(biāo)簽, 不選中Auto HorzScroll多選框;單擊OK按鈕,保存所做的修改。 ②.點(diǎn)中Detail Band(即寫有Detail的灰色長帶),單擊鼠標(biāo)右鍵,選擇Properties...菜單項(xiàng),選中Autosize Height多選框,單擊OK按鈕,保存所做的修改。 2.在數(shù)據(jù)窗口(Datawindow)中用Enter鍵代替Tab鍵在字段間移動(dòng)。 其基本做法是: 選中該數(shù)據(jù)窗口,定義一用戶事件,在彈出的用戶事件定義窗口中,將Event ID與pbm_dwnprocessenter 相關(guān)聯(lián),在該事件的腳本中增加下面兩行語句: Send(Handle(this),256,9 Long(0,0)) (向系統(tǒng)發(fā)出處理TAB鍵的消息) return 1 (忽略Enter鍵接下來應(yīng)進(jìn)行的缺省處理) 3.選用Grid數(shù)據(jù)窗口方式時(shí)避免表頭上方也出現(xiàn)表格線。 用Grid數(shù)據(jù)窗口方式能夠?qū)崿F(xiàn)表格式報(bào)表輸出,但是如在表頭上方不加以控制或處理,它將出現(xiàn)Detail Band中各數(shù)據(jù)列的表格線,這是我們所不需要的。解決問題的參考方法是: ①.可在Header Band中的表頭上方增加一文本框,讓該文本框足夠?qū)捛夷芨采w所有的數(shù)據(jù)列, 同時(shí)將垂直長度調(diào)整Header Band中的表頭上部平齊。 ②.在文本框的Properties...窗口中,將該文本框的顯示內(nèi)容清為空,在Font標(biāo)簽頁中將字體的背景顏色(Background)設(shè)置為與數(shù)據(jù)窗口的背景色相同,并在Position標(biāo)簽頁中將其Layer(層次)修改為Foreound,單擊OK按鈕,馬上就能看出效果。
|