PowerBuilder数据窗口中记录颜色的隔层显示

原创 2004年09月02日 21:18:00
  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。

jt-2002-10-28-image001.jpg
图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)))

jt-2002-10-28-image002.jpg
图7.2 输入表达式

  注:

  表达式中rgb(255,240,194)为浅黄色,rgb(255,254,249)为浅白色,rgb(247,247,239)为浅黄色。

  4.效果展示

  返回预览窗口看看,效果相当不错!见图7.3。

jt-2002-10-28-image003.jpg}
            图7.3 颜色效果

  5. 相关函数说明

  CurrentRow()与GetRow()函数是数据窗口信息函数。

  1. CurrentRow()

  功能描述:得到数据窗口当前得到输入焦点的行的行号。

  语法:CurrentRow()

  返回值:Long。函数执行成功时返回当前行的行号,无当前行时返回0。

  2. GetRow()

  功能描述:返回数据窗口相应带中的当前行行号。

  语法:GetRow()

  返回值:Long。函数执行成功时返回相应带中当前行的行号,如果数据窗口中无数据则返回0,发生错误时返回-1。

使用Powerbuilder中数据窗口表达式访问数据

1、从数组到数据窗口到数组This example resets the emp_name value in rows 11 through 20 to an empty string. Rows 1...
  • imperman
  • imperman
  • 2005年08月27日 15:58
  • 968

PB 数据窗口datawindow中的行改变颜色

在数据窗口datawindow内选中数据,在font内的background color内添加如下函数来改变颜色 选中改变红色 或者 在特定环境下改变颜色 if(getrow()=currentR...
  • xuejiayue1105
  • xuejiayue1105
  • 2013年04月25日 23:47
  • 7315

OLE在PB数据窗口中的实现

OLE在PB数据窗口中的实现---- OLE(Object linking and Embedding), 即 对 象 连 接 与 嵌 入 简 称, 是 在Windows 环 境 下 实 现不 同Wi...
  • flyloafer
  • flyloafer
  • 2006年05月18日 20:25
  • 2213

powerbuilder中datawindow数据源控件中添加查询参数

问题:如何在quick select类型的datawinow数据源控件中添加查询参数 首先在application上右键——new——datawindow——freedom/grid——OK——...
  • bjash
  • bjash
  • 2015年01月19日 01:21
  • 751

pb中数据窗口奇偶行显示不同颜色

选中数据窗口的detail区,在右边的general标签中找到color属性,点击其右边的红色标志进入expression_r对话框,输入下面代码: if(mod(getrow(),2)=1...
  • hanyf888
  • hanyf888
  • 2013年05月07日 10:35
  • 1371

数据窗口记录颜色的隔层显示

1、选中所有的列(column) 2、在Properties窗口中翻到Font标签页,单击Background Color属性旁边的一个带有红色图标的小按钮。如下图: 在下框添加代码: if...
  • klv091
  • klv091
  • 2012年09月28日 12:13
  • 285

PowerBuilder数据窗口实现单选与多选

1、实现多项选择:IF KeyDown(KeyControl!) THEN //按住ctrl键选择实现多选 IF THIS.GetSelectedRow(row - 1) = row THEN  TH...
  • caok
  • caok
  • 2009年03月31日 18:13
  • 2221

PB指定某行某列的颜色属性值uf_setcell_color

/*----------------------------------------------------------------------------------- 函数功能:指定某行某列的属性...
  • happymagic
  • happymagic
  • 2012年08月08日 13:14
  • 4116

在PB中插入、删除和修改数据

 1.插入数据 在数据库中插入一条数据使用INSERT语句,格式如下: INSERT INTO 表名 (字段列表) VALUES (值列表) {USING 事务对象}; 不同的字段使用逗号(“,”)分...
  • tisnly
  • tisnly
  • 2007年11月28日 15:27
  • 8323
收藏助手
不良信息举报
您举报文章:PowerBuilder数据窗口中记录颜色的隔层显示
举报原因:
原因补充:

(最多只允许输入30个字)