扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51cto.com整理 来源:51cto.com 2007年9月15日
关键字: 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属性旁边的一个带有红色图标的小按钮。
在Expression表达式一栏中输入:
if(currentrow()=getrow(),rgb(255,240,194),if(mod(getrow(),2)=1, &rgb(255,254,249) , rgb(247,247,239)))
注:表达式中rgb(255,240,194)为浅黄色,rgb(255,254,249)为浅白色,rgb(247,247,239)为浅黄色。
4.效果展示
返回预览窗口看看,效果相当不错
5. 相关函数说明
CurrentRow()与GetRow()函数是数据窗口信息函数。
1. CurrentRow()
功能描述:得到数据窗口当前得到输入焦点的行的行号。
语法:CurrentRow()
返回值:Long。函数执行成功时返回当前行的行号,无当前行时返回0。
2. GetRow()
功能描述:返回数据窗口相应带中的当前行行号。
语法:GetRow()
返回值:Long。函数执行成功时返回相应带中当前行的行号,如果数据窗口中无数据则返回0,发生错误时返回-1。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者