本文介紹的方法和技巧都是筆者在實踐中的一點積累在此拿出來與大家一起分享希望在閱讀本文後會對您有所幫助或啟發文中如有任何不足之處還望同行們給予指教在此我先道聲謝
一實現運行窗口居中
眾所周知PowerBuilder 在以前的版本中提供了圖形化的預覽工具可以很方便的在設計階段實現窗口居中但是到了似乎該項工具被取消了也沒有什麼屬性來設置至少我沒有找到每當我們需要將窗口居中的時候只有一點一點地調整它的XY值這一點十分讓人頭痛出於無奈只好通過編程實現我們只在每個需要居中的窗口的Open事件中寫上這些代碼就會實現窗口的自動居中
要實現窗口的自動居中我們可以用函數Move()來實現但是由於我們開發出來的應用程序往往會在不同的設置環境中運行雖然一般情況下是由我們為用戶配置好的但我們總不能保證用戶顯示器的設置模式不會改變所幸的是PB為我們提供了環境對象Environment該對象其實是一個系統結構其中保存了PB應用程序的運行平台信息例如代碼集CPU類型等其中當然會有我們需要的屏幕寬和高為了得到該結構我們可以用函數GetEnvironment()該函數的作用是得到關於操作系統處理器和屏幕的系統信息具體用法如下
Environment my_system
Integer li_ScreenWidth li_ScreenHeight
GetEnvironment(my_system)// 得到屏幕的總寬度和長度
li_ScreenWidth = PixelsToUnits(my_systemScreenWidth XPixelsToUnits!)
li_ScreenHeight = PixelsToUnits(my_systemScreenHeight XPixelsToUnits!)
// 函數PixelsToUnits()的作用是將屏幕的像數轉換成PowerBuilder使用的單位因為像數通常不用於方形中具體用法請參見函數手冊
然後就可以用Move()來實現窗口居中
ThisMove((li_ScreenWidth thisWidth)/ &
(li_ScreenHeight thisHeight)/ )
二數據窗口中實現字段的組合
你有沒有碰到這樣的情況我們輸入了客戶的詳細地址資料包括省份城市地址郵編當我們要給客戶們郵寄信函時需要將他們的省份城市地址郵編連成在一起打印出來然而這些信息是分開存儲的即存在不同的字段這時我們就可以利用PowerBuiler提供的在數據窗口添加計算域(Compute Field)來實現字符字段的組合顯示
現在假設客戶的省份城市地址郵編分別存放在不同的字段中它們是ProvinceCityAddressPC我們要得到郵編+省份+城市+地址的格式如()江蘇省無錫市人民路號具體實現如下
在需要顯示的位置添加一個計算域(Compute Field)
在它的表達式欄中寫上 ( + PC + ) + Province + City + Address
單擊確定完成
很容易是不是需要提醒大家的是計算域只能用來顯示不能對它進行修改因為它沒有TAB屬性不能得到焦點
三數據窗口中的條碼顯示
在數據窗口中顯示條碼是不是很神秘?這對於沒有接觸過條碼的人來說也許是這樣其實它簡單的不能再簡單了別忘了我們在寫文稿時是如何使文稿看上去更有藝術化沒錯我們會給它用上各種字體問題不就解決了嗎?條碼也是種字體只不過我們看不懂罷了我們只要將需要用條碼顯示的字段的字體換上相應的條碼字體就行了比如常用的 of 條碼字庫等這些字體大多數是免費的可以到網上去下載然後安裝就行了
四數據窗口的自動刷新技術
在我們編寫諸如像庫存銷售等應用系統時總希望程序能動態的自動刷新庫存量或銷售量比如說每隔秒刷新一次要實現這樣的功能只要我們利用數據窗口的時間間隔屬性(Timer Interval)當該值為時數據窗口不進行刷新如果要使數據窗口以每一秒鐘的頻率刷新的話只要將該值設為即毫秒
我們還可以為應用程序添加閃爍報警的功能就拿庫存量來說吧最常用的是當某貨物的庫存量達到一個最低庫存量時程序應能自動判別並用警告色顯示通常是紅色此時我們只要在運用了上述的方法後再在需要閃爍的字段上比如庫存量在它的顏色屬性中寫上相應的語句下面這段代碼實現當某一物品的庫存量小於的時候程序以紅色閃爍顯示警告
if ( Store_Num < &
if mod( Second(Now()) ) <> & // 每秒一次偶數顯示紅色奇數顯示白色即底色
RGB( ) RGB( ) )
From:http://tw.wingwit.com/Article/program/SQL/201311/16246.html