PowerBuilder數據窗口中記錄顏色的隔層顯示
2024-07-21 02:13:30
供稿:網友
powerbuilder數據窗口中記錄顏色的隔層顯示
1. 前言
在powerbuilder中數據窗口(datawindow)技術可以說是pb的核心,以至于sybase公司甚至為它申請了專利。對數據庫中數據的所有操作幾乎都是通過datawindow對象來完成的,數據窗口對象創建的好壞直接影響到應用程序本身的優劣。
對于許多新接觸powerbuilder的程序員來說,datawindow控件和datawindow對象之間的差別常常讓人混淆不清。其實,datawindow控件就是一個類似于checkbox、commandbutton控件的控件。而datawindow對象則是用畫板創建在pbl庫中的對象。datawindow控件相對于datawindow對象來說就像是一個容器一樣將之包含在控件里。
在實際使用過程中經常會用到的一些數據窗口的使用技巧。現在我們就說說數據窗口中記錄顏色的隔層顯示這個大家常用的技巧。
2. 功能說明
數據窗口在retrieve后往往會返回很多條記錄,而這些記錄中的數據復雜,通常會造成視覺上的不便。因此如果能夠使行與行之間用不同的顏色進行區分,例如第一行記錄的背景色是淺白色,第二行記錄的背景色是淺灰色,第三行又是淺白色,第四行又是淺灰色……依次類推,既能極大地方便使用者,又能讓您的應用程序增色不少。同時當使用者點擊當前行時,顏色就會變成淺黃色,這樣的效果誰都會喜歡。
3. 實現方法
要想讓顯示的數據達到上述效果,我們首先應該知道的是這些表現形式應該在數據窗口對象的什么地方體現出來。很顯然,數據窗口中的所有數據是在細目帶(detail)中列出的,因此只要在細目帶中設置列對象(column)的某項屬性就會影響到它的顯示效果。具體實現如下:
打開數據窗口,選擇所有的列(column)。
在properties窗口中翻到font標簽頁,單擊background color屬性旁邊的一個帶有紅色圖標的小按鈕。見圖7.1。
圖7.1 點取紅色小按鍵
在expression表達式一欄中輸入(見圖7.2):
if(currentrow()=getrow(),rgb(255,240,194),if(mod(getrow(),2)=1, &rgb(255,254,249) , rgb(247,247,239)))
圖7.2 輸入表達式
注:
表達式中rgb(255,240,194)為淺黃色,rgb(255,254,249)為淺白色,rgb(247,247,239)為淺黃色。
4.效果展示
返回預覽窗口看看,效果相當不錯!見圖7.3。
}
圖7.3 顏色效果
5. 相關函數說明
currentrow()與getrow()函數是數據窗口信息函數。
1. currentrow()
功能描述:得到數據窗口當前得到輸入焦點的行的行號。
語法:currentrow()
返回值:long。函數執行成功時返回當前行的行號,無當前行時返回0。
2. getrow()
功能描述:返回數據窗口相應帶中的當前行行號。
語法:getrow()
返回值:long。函數執行成功時返回相應帶中當前行的行號,如果數據窗口中無數據則返回0,發生錯誤時返回-1。