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。

PB [Grid风格数据窗口改变线条颜色] 的变通实现方法(也可以成为 带表头的Grid数据窗口)

PB中Grid类型的数据窗口是用的最广泛的一种类型,特点:创建快速,位置调整方便,运行后用户也可以方便的调整列的宽度,列的位置, 运行效率也最高。         但是这个数据窗口类型的线条颜色是固...
  • zidielang
  • zidielang
  • 2016年11月18日 21:25
  • 1018

PowerBuilder 数据窗口实例四(用户信息查询)

1. 设计数据窗口   2.设置table order值与更新属性(详见之前博客)   3. 设计查询窗体,并保存为w_userinfo_find 4. 在查询按钮的clicked(...
  • zhang88lei
  • zhang88lei
  • 2013年01月28日 17:10
  • 1146

PB中数据窗口“Update Properties”的设置

Row changed between retrieve and update. No changes made to database. DELETE FROM "zbfxb" WHER...
  • tlammon
  • tlammon
  • 2015年01月15日 18:31
  • 1836

PB数据窗口对象之画板、band和层次

数据窗口画板 整个数据窗口画板由6个视窗构成,分别是: Design:设计数据窗口对象视窗,可以使用菜单Design-Options来改变Design窗口的外观 Preview:预览数据窗口的外...
  • u012369435
  • u012369435
  • 2014年07月04日 10:56
  • 1168

SDL2.0在mfc窗口中显示yuv 数据

转载 http://airmanisvip.blog.163.com/blog/static/18058158201261015741216/ SDL2.0在mfc窗口...
  • wumingzcj
  • wumingzcj
  • 2015年06月04日 15:56
  • 483

[OpenCV]在显示窗口中截图

介绍使用OpenCV实现简单的截图功能。首先阐述实现此功能的基本步骤,然后给出实现代码,最后贴出实验结果和一点点评。...
  • bendanban
  • bendanban
  • 2015年03月08日 13:29
  • 6070

使用 IntelliTrace(智能跟踪) 调试应用程序

1、工具--选项-IntelliTrace
  • alisa525
  • alisa525
  • 2014年08月21日 15:29
  • 4943

OpenCV在一个窗口中显示多个视频子窗口

在一个窗口中显示多个视频,并在每个子窗口左上角显示系统时间,函数cvShowManyImages是改写的#include #include #include #include #includ...
  • Augusdi
  • Augusdi
  • 2013年05月05日 17:38
  • 2759

PB数据窗口对象之Button

〓Button重要属性 *Action属性 该属性是Button控件最重要的一个属性。在数据窗口画板中,可以选择一个按钮有哪个动作。可选的动作都是事先定义好的,开发人员没有机会精确定义某个动作的执...
  • u012369435
  • u012369435
  • 2014年07月04日 13:04
  • 1480

NSProgressIndicator,单线程多线程运用范例

最近被这个进度条搞晕了,现在基本搞清楚了,写了个范例出来,如图 还剩下两个问题是: 即便setUsesThreadedAnimation:YES,setIndeterminate:NO,spi...
  • yuanya
  • yuanya
  • 2014年05月11日 18:43
  • 1305
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PowerBuilder数据窗口中记录颜色的隔层显示
举报原因:
原因补充:

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