赛迪网 > IT技术 数据库 > Sybase
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Powerbuilder编程过程中的数据窗口函数 (2)

发布时间:2008.06.12 04:46     来源:赛迪网    作者:Alizze

六、获取选择行

如果想要获取当前DataWindow中加亮显示的行,可以使用GetSelectRow()函数。

语法格式:

dw_control.GetSelectRow(rownumber)

其中,rownumber为开始查找的行的行号,0表示从头开始查找。该函数返回一个长整数,表示从rownumber开始查找第一个加亮显示的行的行号。如果失败返回0。

七、滚动行

如果在DataWindow的末尾插入一行数据,而当前行是在DataWindow的中央,那么这种插入可能不会被用户觉察。为了改变这种情况,可以滚动行到DataWindow的末尾,这样用户就能发现新的改变。要滚动行,可以使用ScrollToRow()函数。

语法格式:

dw_control.ScrollToRow(rownumber)

该函数返回1时表示成功,返回-1时表示失败。

与ScrollToRow()函数据功能相关的还有如下几个函数:

ScrollPriorRow():向上滚动一行

ScrollNextRow():向下滚动一行

列操作

列操作类的函数主要是选择指定的列和获取列的信息。

一、获取列

如果要获取当前的列号,可以使用GetColumn()函数,如果要获取当前的列名,可以使用GetColumnName()函数。

语法格式:

dw_control.GetColumn()

dw_control.GetColumnName()

这两个函数都没有参数,GetColumn()函数返回一个长整型值,代表当前的列号,GetColumnName()函数返回当前列的列名。如果返回0,表示当前没有任何列被选择返回-1表示失败。

二、设置列

要设置某一列为DataWindow中的当前列,可以使用SetColumn()函数。

语法格式:

dw_control.SetColumn(column)

其中column既可以是列号,也可以是列名。当该函数返回1时表示成功,返回-1时表示失败。

数据操作

数据操作类的函数主要是对DataWindow中的数据进行获取、设置。

一、获取数据

如果要从DataWindow的指定行和列中获取数据,就要使用GetItem系列的函数。这个系列的函数共有五个,分别是对字符串、数字、日期、日期时间和小数。

语法格式:

dw_control.GetItemString(rownumber,column)

dw_control.GetItemNumber(rownumber,column)

dw_control.GetItemDate(rownumber,column)

dw_control.GetItemDateTime(rownumber,column)

dw_control.GetItemDecimal(rownumber,column)

其中,rownumber参数表示行号,column可以是列号或列名。

二、设置数据

与获取数据所用的函数不同,设置DataWindow内指定行列处的数据只要使用一个SetItem()函数就可以了。

语法格式:

dw_control.SetItem(rownumber, column, value)

其中rownumber表示行号,column可以是列号,也可以是列名,value表示要设置的值。但是该必须与DataWindow中指定的行列处的数据类型一致,不然PowerBuilder会报错。

SetItem()函数返回1时表示成功,返回-1时表示失败。

三、数据排序

如果希望对DataWindow内的数据进行重新排序,而又不想重新从数据库中检索数据,可以使用SetSort()和Sort()函数。这两个函数一起完成对DataWindow进行排序的功能。其中SetSort()函数用于设置如何排序,Sort()函数用于对DataWindow实际进行排序。

语法格式:

dw_control.SetSort(expression)

dw_control.Sort()

其中expression是一个字符串,表示排序的表达式,它的具体值是一个列名后面加一个空格,然后是"A",表示升序,或"D",表示降序。如果有多个列要同时进行排序,它们之间用逗号隔开。

例:dw_1.SetSort("name A,xh D")

这两个函数都是返回1表示成功,返回-1表示失败。

四、数据过滤

如果希望对DataWindow内的数据进行过滤而不重新从数据库中检索数据,可以使用SetFilter()和Filter()函数。它们一起完成对数据的过滤功能。其中SetFilter()函数用来设置过滤条件,Filter()函数用于对DataWindow进行过滤。

语法格式:

dw_control.SetFiter(expression)

dw_control.Fiter()

其中expression是一个字符串,表示过滤的条件,它实际是一个逻辑表达式。

例:

dw_1.SetFilter("id>\'003\' AND name like\'王%\'")

dw_1.Filter()

这两个函数都是返回1表示成功,返回-1表示失败。

五、数据检查

PowerBuilder提供了两个函数用于数据的检查,它们是DeleteCount()和ModifiedCount(),其作用分别是检查DataWindow中的数据自上一次更新到现在,被删除的行数和被修改的行数。它们一般在窗口的CloseQuery事件中使用,用来检查该窗口的DataWindow中的数据是否有尚未保存的修改。

语法格式:

dw_control.DeleteCount()

dw.control.ModifiedCount()

它们分别返回从上一次更新到现在,DataWindow中被删除和被修改的行数。如果没有行被删除或被修改,那么它们返回0。如果出现错误则返回-1。

一般情况下,如果窗口中含有可供修改的数据窗口对象,那么在窗口的CloseQuery事件中通常使用如下代码检查数据窗口对象中是否有尚未保存的数据:

Int li_return

IF dw_1.ModifiedCount() > 0 OR dw_1.DeletedCount() >0 THEN

li_return = MessageBox("提示","数据尚未保存,是否保存?",Question!,YesNoCancel!,3)

CHOOSE CASE li_return

CASE 1

TriggerEvent(\'ue_save\')

RETURN 0

CASE 2

RETURN 0

CASE 3

RETURN 1

END CHOOSE

END IF

(责任编辑:卢兆林)

<<上一页 1 2


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统