豆豆首页 > 技术教程 > 程序设计 > Powerbuilder

PowerBuilder数据窗口编程技巧十则

http://tech.ddvip.com 2006年08月05日 20:40:04    蔡伟龙
 
 
dw_1.RowsMove(dw_1, 1, dw_1.RowCount, Primary!, dw_1, 1, Delete!)

  不过不要忘了过滤的行在不同的缓冲区中。

  六.如何在DataWindow的SQL语法中不使用SELECT DISTINCT实现删除重复的行

  起先对你要显示唯一值的列进行排序:"city A",然后增加如下过滤字符串:" city < > city [-1] or GetRow () = 1"

  七.如何在分组形式的DataWindow中分别显示各组的行号

  当我们为Datawindow的每一行显示行号时,可以简单的放一个表达式为GetRow()计算列。但是对于分组的Datawindow,要分别显示各组的行号,则应使用表达式为GetRow() - First(GetRow() for Group 1) + 1的计算列。

  八.如何改变列的字体颜色,提醒用户此列已做修改

  在列的Color属性中,输入如下表达式

IF (column_name < >column_name.Original, RGB(255, 0, 0), RGB(0, 0, 0))

  在这个条件中,如果此列已改变,则显示红色字体,否则显示黑色字体。这个表达式主要用column_name < > column_name.Original比较当前列的值和原始列的值是否相同来达到判断的目的。

  九.在数据窗口中移走行,但不是去做过滤或删除操作

  RowsDiscard()函数可做到这一点,它在数据窗口中执行移除工作,但被移走的行它不可被删除或做任何修改性的保存。

  十.如何在多行显示的DataWindow 中的Footer Band中显示当前数据的首行和最后行的行号

  我们先看两个计算列的表达式: IF (GetRow() = First(GetRow() FOR Page), 1, 0) // 1 为当前页的第一行

IF (GetRow() < > 1 AND GetRow() = Last(GetRow() FOR Page), 1, 0) // 1 为当前页的最后一行

  由上面可知,在Footer Band中设置如下计算列表达式:

'Rows ' + String(First(GetRow() FOR Page)) + ' to ' + String(Last(GetRow() FOR Page)) + ' are displayed'

  即可达到这项功能。

[责任编辑:editorforddvip]

点击搜索更多"数据窗口"相关信息
正在加载评论...
请您留言
网友昵称: 匿名发表(无需注册)
 
请输入验证码:  
如果您还不是豆豆会员,欢迎注册
 
请您注意
· 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。
· 豆豆网拥有管理笔名和留言的一切权利。
 
 
专题文章推荐