前言
在PowerBuilder中數據窗口(DataWindow)技術可以說是PB的核心以至於Sybase公司甚至為它申請了專利對數據庫中數據的所有操作幾乎都是通過DataWindow對象來完成的數據窗口對象創建的好壞直接影響到應用程序本身的優劣
對於許多新接觸PowerBuilder的程序員來說DataWindow控件和DataWindow對象之間的差別常常讓人混淆不清其實DataWindow控件就是一個類似於CheckBoxCommandButton控件的控件而DataWindow對象則是用畫板創建在PBL庫中的對象DataWindow控件相對於DataWindow對象來說就像是一個容器一樣將之包含在控件裡
實際使用過程中經常會用到的一些數據窗口的使用技巧現在我們就說說數據窗口中記錄顏色的隔層顯示這個大家常用的技巧
功能說明
數據窗口在Retrieve後往往會返回很多條記錄而這些記錄中的數據復雜通常會造成視覺上的不便因此如果能夠使行與行之間用不同的顏色進行區分例如第一行記錄的背景色是淺白色第二行記錄的背景色是淺灰色第三行又是淺白色第四行又是淺灰色……依次類推既能極大地方便使用者又能讓您的應用程序增色不少同時當使用者點擊當前行時顏色就會變成淺黃色這樣的效果誰都會喜歡
實現方法
要想讓顯示的數據達到上述效果我們首先應該知道的是這些表現形式應該在數據窗口對象的什麼地方體現出來很顯然數據窗口中的所有數據是在細目帶(Detail)中列出的因此只要在細目帶中設置列對象(Column)的某項屬性就會影響到它的顯示效果具體實現如下
打開數據窗口選擇所有的列(Column)
在Properties窗口中翻到Font標簽頁單擊Background Color屬性旁邊的一個帶有紅色圖標的小按鈕
在Expression表達式一欄中輸入
if(currentrow()=getrow()rgb()if(mod(getrow())= &rgb() rgb()))
注表達式中rgb()為淺黃色rgb()為淺白色rgb()為淺黃色
效果展示
返回預覽窗口看看效果相當不錯
相關函數說明
CurrentRow()與GetRow()函數是數據窗口信息函數
CurrentRow()
功能描述得到數據窗口當前得到輸入焦點的行的行號
語法CurrentRow()
返回值Long函數執行成功時返回當前行的行號無當前行時返回
GetRow()
功能描述返回數據窗口相應帶中的當前行行號
語法GetRow()
返回值Long函數執行成功時返回相應帶中當前行的行號如果數據窗口中無數據則返回發生錯誤時返回
From:http://tw.wingwit.com/Article/program/PB/201311/24650.html