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