[转帖]用鼠标选择数据窗口中的多行并进行处理
<p>昆明宇同思创系统集成有限公司(650031)<br/> <br/>陈伟锋(e_mail: <a href="mailto:ly_cwf@sohu.com">ly_cwf@sohu.com</a> )<br/> <br/> PB中selectrow()函数用来对数据窗口的行进行加亮显示。但不能对数据进行选择,笔者在进行数据库开发时,遇到需要对用户在数据窗口中的选定行进行操作,实现步骤介绍如下:<br/>1、首先在window的instance variables中定义数组<br/>//标识此行是否被选择(1:选择。0:未选择)<br/>integer isselected[]<br/>2、在window中的open事件中写进如下代码:<br/>int i<br/>long rowc//数据窗口总行数<br/>DW_1.settransobject(sqlca)<br/>dw_1.retrieve()<br/>rowc=dw_1.rowcount()<br/>for i=1 to rowc<br/> isselected=0<br/>next </p><p>以下3,4参考:<a href="https://www.sybasebbs.com/sybase/dispbbs.asp?boardid=33&id=2398&star=1&page=1">https://www.sybasebbs.com/sybase/dispbbs.asp?boardid=33&id=2398&star=1&page=1</a> </p><p>3、在datawindow中的clicked中编写如下代码:<br/>int i<br/>if row<>0 then//当用户单击数据窗口标题时会选择全部行,这时row参数被置为0.<br/> this.SelectRow(row,true)//选择此行<br/> isselected=1<br/>end if <br/>4、在datawindow中的doubleclicked中编写如下代码:<br/>int i<br/>if row<>0 then<br/> this.SelectRow(row, false)//取消选择<br/> isselected=0<br/>end if <br/>5、"全部选定"和"全部不选定"按纽:<br/>5.1"全部选定"按纽代码:<br/>int i<br/>long rowc//数据窗口总行数<br/>rowc=dw_1.rowcount()<br/>for i=1 to rowc<br/> dw_1.setrow(i)<br/> dw_1.selectrow(dw_1.getrow(),true)<br/> isselected=1<br/>next<br/>5.2"全部不选定"按纽代码:<br/>int i<br/>long rowc//数据窗口总行数<br/>rowc=dw_1.rowcount()<br/>for i=1 to rowc<br/> dw_1.setrow(i)<br/> dw_1.selectrow(dw_1.getrow(),false)<br/> isselected=0<br/>next <br/>6."确定"按纽代码(对所选择的数据进行处理):<br/>int i<br/>long rowc//数据窗口总行数<br/>boolean ifnotselect//是否全部不选定<br/>ifnotselect=false<br/>rowc=dw_1.rowcount()<br/>for i=1 to rowc <br/> if isselected=1 then<br/> ifnotselect=true<br/> exit<br/> end if<br/> if i=rowc and isselected=0 then<br/> close(parent)<br/> end if <br/>next<br/>for i=1 to rowc<br/> if isselected=1 then<br/> dw_1.setrow(i)<br/> //在此处输入对已选定的行的处理代码<br/> end if<br/>next <br/>close(parent)<br/> <br/> <br/>本技巧中的选择数据部分可以编写成user object ,作为用鼠标选择数据窗口中的多行的一个父类。 </p>[此贴子已经被作者于2007-6-30 14:02:49编辑过]
<p>//在此处输入对已选定的行的处理代码<br/></p><p>比如说我要修改dw_1里选中行的abcd字段的内容都为1如何改?</p><p></p><p>dw_1.setitem(i,"abcd","1")</p><p>dw_1.update()</p>
[此贴子已经被作者于2007-6-30 14:05:15编辑过]
学习一下
页:
[1]