PB RowsMove函数详解

函数作用:将一个数据窗口控件中指定的行移动到另一个数据窗口,或将同一个数据窗口控 件中一个缓冲区的指定行移动到另一个缓冲区中。
函数语法:dwcontrol.RowsMove ( startrow, endrow, buffer, targetdw,beforerow,targetbuffer )
 dwcontrol:数据窗口控件名
 startrow:long 类型,指定要移动的一组数据行的第一行的行号
 endrow:long 类型,指定要移动的一组数据行的最后一行的行号
 buffer:dwBuffer 枚举类型,指定从哪个缓冲区中移动行。有效取值为:
 Primary!主缓冲区
 Delete!删除缓冲区
 Filter!过滤缓冲区
 targetdw :要把数据移动到的目的数据窗口名称。Targetdw  可以是与
dwcontrol 相同的数据窗口控件,也可以是不同的数据窗口控件
 beforerow:long  类型,指定移动的数据行插入到目的数据窗口的哪一行 前面。如果要把数据插入到最后一行后面,那么使用大于目的数据窗口中 数据行数的任何数字均可
 targetbuffer:dwBuffer 枚举类型,指定移动的数据放置到目的数据窗口控 件的哪个缓冲区中。有效取值为:
 Primary!主缓冲区
 Delete!删除缓冲区
 Filter!过滤缓冲区
返 回 值:Integer。函数执行成功时返回 1,发生错误时返回-1。如果任何参数的值为 NULL, 则 RowsMove()函数返回 NULL。
使用说明: 使用 RowsMove()函数把某些行复制到目的数据窗口控件的主缓冲区中之后这 些行的修改状态为 NewModified!。此时,如果应用程序更新使用 Update()函数 更新目的数据窗口控件对应的表,那么 PowerBuilder  将对新插入的行生成 SQLINSERT 语句,并把这些 SQL INSERT 语句发送给数据库管理系统。
如果在同一个数据窗口控件的不同缓冲区之间移动行,PowerBuilder 能够自 动地改变这些行的状态。例如,如果把未修改过的行从主缓冲区移动到同一个 数据窗口的删除缓冲区,那么这些行将被标记为删除状态。如果你又把这些行 从删除缓 冲 区中又移 动 到主缓冲 区 中,则这 些 行的状态 恢 复为原来 的 NotModified!。需要注意的是,当把一个数据窗口中的某些行移动到另一个数据 窗口之后,又把它们移动回原来的数据窗口,那么这些行的状态将变为 NewModified!。
使用 RowsMove()函数移动数据行时,对目的数据窗口控件来说,下拉数据 窗口风格的列中的数据并不会自动检索出来,应用程序必须对目的数据窗口中 的这些列明确执行 Retrieve()函数。RowsMove()函数通常用于:
 从数据窗口的主缓冲区中移动多行数据到删除缓冲区,以此代替一次删除 一行数据。
 把删除缓冲区中的数据移动到主缓冲区中,这样就可以在应用程序中实现 恢复(Undo)功能。
代码实例:
例 1.  下面的代码把数据窗口控件 dw_1  删除缓冲区中的所有行移动到主缓冲区 中,这样应用程序就取消了以前对数据窗口控件所做的删除操作:
dw_1.RowsMove(1, dw_1.DeletedCount(), Delete!, dw_1, 1, Primary!)


欢迎转载,但请保留出处,本文章转自[华软源码],原文链接:http://www.hur.cn/Article/2011/123184.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值