您现在的位置: 中国IT实验室 >> 数据库技术 >> 数据库技术 >> 文章正文
Power Builder中数据窗口技巧十则

ChinaITLab收集整理  2005-9-16  保存本文  推荐给好友  QQ上看本站  收藏本站



  PowerBuilder取得巨大成就的原因就是有Datawindow对象,DataWindow是具有功能强大和灵活多变的特点,本人用PowerBuilder开发过一段时间后,,总结出一些技巧,以供广大的PB开发者借鉴使用。
  
  一.如何创建一个报表,如下形式 Quantity Running Total 5,000 5,000 2,500 7,500 3,000 10,500 12,000 22,500  对于Running Total列,我们可使用计算列:CumulativeSum(Quantity for all),即可达到逐渐递增求和的功能。
  
  二.数据窗口的数据送缓冲区之前确认的四个步骤 判断数据类型是否正确。如不正确则触发ItemError事件。判断数据是否符合有效性规则。如不符合有效性规则,同样触发ItemError事件。判断是否有数据被改动。判断数据是否通过ItemChanged事件,如果数据和ItemChanged相斥,将触发ItemError事件。
  
  三.如何在DataWindow中用数据类型为Datetime的列为条件进行查找
  
  1.当要查找的日期条件是一常数时使用如下表达式:
  ls_Find = "datetime_col = DateTime ('1/1/1999')"
  
  2.当要查找的日期条件是一个变量时使用如下的表达式:
  ls_Find = "datetime_col = DateTime ('" + ls_Date + "')"
  
  3.当要查找的日期条件是一个DateTime数据类型时使用如下表达式:
  ls_Find = "datetime_col = DateTime ('" + String (ldt_DateTime) + "')"
  
  四.设置数据窗口Boolean型属性的三种方法
  
  PowerBuilder提供了三种方法设置数据窗口的布尔型属性,分别是True/False, 1/0, 'Yes'/'No'。
  
  例如: dw_1.Object.address.Visible = 0 dw_1.Object.address.Visible = False dw_1.Object.address.Visible = 'No'
  
  PowerBuilder在处理上以字符串的形式保存属性,而不考虑属性值是布尔型、长整型或是字符型。
  
  为了进一步理解,可以导出一个数据窗口并查看它的原码,可以发现即使是列的颜色属性它也是使用带双引号的数字来表达。
  
  五.如何在DataWindow中快速删除多行
  
  在开发过程中可能经常有要进行多行删除的操作,一般都使用循环语句进行操作:FOR ll_RowOn = 1 TO dw_1.RowCount() dw_1.DeleteRow(ll_RowOn) NEXT
  
  一个快速的删除方法是把要删除的行从主缓冲区中移到删除缓冲区中。
  
  例如,删除缓冲区中所有的行: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, RG




 相关文章  热门文章
WEB2.0到底是什么东东?三点来理解它!
数据库技巧之Dephi的DLL技巧汇集
学一个比较完美的spacer div技巧
eXtremeDB内存式实时数据库的简介
PB程序之间是怎样传递字符串变量?
为什么Access会报错:显示密码无效?
浅议C语言中数组和指针的相互操作
疑难解答之ACCESS的数据极限
PB中可以动态创建浏览器的OLE对象
数据库前端开发:PB数据库表结构的技巧

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客