PowerBuilder數(shù)據(jù)窗口中記錄顏色的隔層顯示
發(fā)表時(shí)間:2024-06-14 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]1. 前言 在PowerBuilder中數(shù)據(jù)窗口(DataWindow)技術(shù)可以說(shuō)是PB的核心,以至于Sybase公司甚至為它申請(qǐng)了專(zhuān)利。對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的所有操作幾乎都是通過(guò)DataWindow對(duì)象來(lái)完成的,數(shù)據(jù)窗口對(duì)象創(chuàng)建的好壞直接影響到應(yīng)用程序本身的優(yōu)劣! (duì)于許多新接觸PowerBuil...
1. 前言
在PowerBuilder中數(shù)據(jù)窗口(DataWindow)技術(shù)可以說(shuō)是PB的核心,以至于Sybase公司甚至為它申請(qǐng)了專(zhuān)利。對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的所有操作幾乎都是通過(guò)DataWindow對(duì)象來(lái)完成的,數(shù)據(jù)窗口對(duì)象創(chuàng)建的好壞直接影響到應(yīng)用程序本身的優(yōu)劣。
對(duì)于許多新接觸PowerBuilder的程序員來(lái)說(shuō),DataWindow控件和DataWindow對(duì)象之間的差別常常讓人混淆不清。其實(shí),DataWindow控件就是一個(gè)類(lèi)似于CheckBox、CommandButton控件的控件。而DataWindow對(duì)象則是用畫(huà)板創(chuàng)建在PBL庫(kù)中的對(duì)象。DataWindow控件相對(duì)于DataWindow對(duì)象來(lái)說(shuō)就像是一個(gè)容器一樣將之包含在控件里。
在實(shí)際使用過(guò)程中經(jīng)常會(huì)用到的一些數(shù)據(jù)窗口的使用技巧,F(xiàn)在我們就說(shuō)說(shuō)數(shù)據(jù)窗口中記錄顏色的隔層顯示這個(gè)大家常用的技巧。
2. 功能說(shuō)明
數(shù)據(jù)窗口在Retrieve后往往會(huì)返回很多條記錄,而這些記錄中的數(shù)據(jù)復(fù)雜,通常會(huì)造成視覺(jué)上的不便。因此如果能夠使行與行之間用不同的顏色進(jìn)行區(qū)分,例如第一行記錄的背景色是淺白色,第二行記錄的背景色是淺灰色,第三行又是淺白色,第四行又是淺灰色……依次類(lèi)推,既能極大地方便使用者,又能讓您的應(yīng)用程序增色不少。同時(shí)當(dāng)使用者點(diǎn)擊當(dāng)前行時(shí),顏色就會(huì)變成淺黃色,這樣的效果誰(shuí)都會(huì)喜歡。
3. 實(shí)現(xiàn)方法
要想讓顯示的數(shù)據(jù)達(dá)到上述效果,我們首先應(yīng)該知道的是這些表現(xiàn)形式應(yīng)該在數(shù)據(jù)窗口對(duì)象的什么地方體現(xiàn)出來(lái)。很顯然,數(shù)據(jù)窗口中的所有數(shù)據(jù)是在細(xì)目帶(Detail)中列出的,因此只要在細(xì)目帶中設(shè)置列對(duì)象(Column)的某項(xiàng)屬性就會(huì)影響到它的顯示效果。具體實(shí)現(xiàn)如下:
打開(kāi)數(shù)據(jù)窗口,選擇所有的列(Column)。
在Properties窗口中翻到Font標(biāo)簽頁(yè),單擊Background Color屬性旁邊的一個(gè)帶有紅色圖標(biāo)的小按鈕。見(jiàn)圖7.1。
圖7.1 點(diǎn)取紅色小按鍵
在Expression表達(dá)式一欄中輸入(見(jiàn)圖7.2):
if(currentrow()=getrow(),rgb(255,240,194),if(mod(getrow(),2)=1, &rgb(255,254,249) , rgb(247,247,239)))
圖7.2 輸入表達(dá)式
注:
表達(dá)式中rgb(255,240,194)為淺黃色,rgb(255,254,249)為淺白色,rgb(247,247,239)為淺黃色。
4.效果展示
返回預(yù)覽窗口看看,效果相當(dāng)不錯(cuò)!見(jiàn)圖7.3。
}
圖7.3 顏色效果
5. 相關(guān)函數(shù)說(shuō)明
CurrentRow()與GetRow()函數(shù)是數(shù)據(jù)窗口信息函數(shù)。
1. CurrentRow()
功能描述:得到數(shù)據(jù)窗口當(dāng)前得到輸入焦點(diǎn)的行的行號(hào)。
語(yǔ)法:CurrentRow()
返回值:Long。函數(shù)執(zhí)行成功時(shí)返回當(dāng)前行的行號(hào),無(wú)當(dāng)前行時(shí)返回0。
2. GetRow()
功能描述:返回?cái)?shù)據(jù)窗口相應(yīng)帶中的當(dāng)前行行號(hào)。
語(yǔ)法:GetRow()
返回值:Long。函數(shù)執(zhí)行成功時(shí)返回相應(yīng)帶中當(dāng)前行的行號(hào),如果數(shù)據(jù)窗口中無(wú)數(shù)據(jù)則返回0,發(fā)生錯(cuò)誤時(shí)返回-1。