祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 4697|回复: 2

[转帖]用鼠标选择数据窗口中的多行并进行处理

[复制链接]

[转帖]用鼠标选择数据窗口中的多行并进行处理

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
588551
贡献
在线时间
小时
2007-6-30 11:24:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×

昆明宇同思创系统集成有限公司(650031)
 
陈伟锋(e_mail:  ly_cwf@sohu.com )
 
  PB中selectrow()函数用来对数据窗口的行进行加亮显示。但不能对数据进行选择,笔者在进行数据库开发时,遇到需要对用户在数据窗口中的选定行进行操作,实现步骤介绍如下:
1、首先在window的instance variables中定义数组
//标识此行是否被选择(1:选择。0:未选择)
integer isselected[]
2、在window中的open事件中写进如下代码:
int i
long rowc//数据窗口总行数
DW_1.settransobject(sqlca)
dw_1.retrieve()
rowc=dw_1.rowcount()
for i=1 to rowc
    isselected=0
next   

以下3,4参考:https://www.sybasebbs.com/sybase/dispbbs.asp?boardid=33&id=2398&star=1&page=1 

3、在datawindow中的clicked中编写如下代码:
int i
if row<>0 then//当用户单击数据窗口标题时会选择全部行,这时row参数被置为0.
      this.SelectRow(row,true)//选择此行
      isselected[row]=1
end if
4、在datawindow中的doubleclicked中编写如下代码:
int i
if row<>0 then
       this.SelectRow(row, false)//取消选择
       isselected[row]=0
end if
5、"全部选定"和"全部不选定"按纽:
5.1"全部选定"按纽代码:
int i
long rowc//数据窗口总行数
rowc=dw_1.rowcount()
for i=1 to rowc
      dw_1.setrow(i)
      dw_1.selectrow(dw_1.getrow(),true)
      isselected=1
next
5.2"全部不选定"按纽代码:
int i
long rowc//数据窗口总行数
rowc=dw_1.rowcount()
for i=1 to rowc
      dw_1.setrow(i)
      dw_1.selectrow(dw_1.getrow(),false)
      isselected=0
next
6."确定"按纽代码(对所选择的数据进行处理):
int i
long rowc//数据窗口总行数
boolean ifnotselect//是否全部不选定
ifnotselect=false
rowc=dw_1.rowcount()
for i=1 to rowc
    if isselected=1 then
        ifnotselect=true
        exit
    end if
    if i=rowc and isselected=0 then
        close(parent)
    end if   
next
for i=1 to rowc
      if isselected=1 then
          dw_1.setrow(i)
             //在此处输入对已选定的行的处理代码
      end if
next
close(parent)
 
 
本技巧中的选择数据部分可以编写成user object ,作为用鼠标选择数据窗口中的多行的一个父类。

[此贴子已经被作者于2007-6-30 14:02:49编辑过]
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
ehxz 楼主

主题

0

回帖

58万

积分

管理员

积分
588551
贡献
在线时间
小时
2007-6-30 13:43:21 | 显示全部楼层

//在此处输入对已选定的行的处理代码

比如说我要修改dw_1里选中行的abcd字段的内容都为1如何改?

dw_1.setitem(i,"abcd","1")

dw_1.update()

[此贴子已经被作者于2007-6-30 14:05:15编辑过]
共享共进共赢Sharing And Win-win Results
lovelyni

主题

0

回帖

76

积分

注册会员

积分
76
贡献
在线时间
小时
2007-12-19 22:09:09 | 显示全部楼层
学习一下
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-22 15:57 , Processed in 0.031976 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表