ehxz 发表于 2007-3-6 17:07:43

函数SelectRow详细解析(数据窗口数据多选时用)

<font size="2">函数作用:选中或者取消选中数据窗口、DataStore中的一行或者所有行数据。该函数的执行不会改变当前数据行。也就是说,如果第2行是当前数据行,执行完该函数,比如dw_1.SelectRow(5),第2行仍然是当前数据行。 <br/>函数语法:integer dwcontrol.SelectRow ( long row, boolean select ) <br/>ldwcontrol:数据窗口、DataStore或者子数据窗口。 <br/>lrow:long类型,要选中或者取消选中的数据行行号。如果该参数为0,表示对所有的数据行进行操作。 <br/>lselect:Boolean类型,取值为True表示要选中指定的数据行(不管在执行函数之前是否是选中的);取值为False表示要取消选中指定的数据行(不管执行函数之前是否没有选中)。 <br/>返 回 值:函数执行成功返回1,执行错误返回-1,任何参数为空则返回Null。 <br/>代码实例: <br/>例1:数据窗口中多行选中程序。 <br/>首先定义窗口实例变量: <br/>long il_LastSelectedRow = 1 <br/>然后开始编写多行选中程序。程序算法描述如下: <br/>1)、如果按下了Control键 <br/>如果是在选中行上,取消该行 <br/>&nbsp; &nbsp;否则,选中该行 <br/>记录当前到窗口实例变量中 <br/>2)、如果按下了Shift键 <br/>取消所有选中行 <br/>选中上次点击行和当前行之间的所有数据行 <br/>记录当前到窗口实例变量中 <br/>3)、如果没有按键 <br/>&nbsp;如果点击行为选中行,不执行任何操作 <br/>&nbsp;否则,取消所有选中行,选中当前行 <br/>&nbsp;记录当前到窗口实例变量中 <br/>比如,我们在窗口dw_1的Clicked事件中编写该脚本,程序如下: <br/>long ll_Start <br/>long ll_End <br/>long ll_index <br/><br/>if Row &lt; 1 then return <br/><br/>if KeyDown(KeyControl!) then <br/>&nbsp;if This.IsSelected(Row) then <br/>&nbsp; &nbsp;This.SelectRow(Row,False) <br/>&nbsp;else <br/>&nbsp; &nbsp;This.SelectRow(Row,True) <br/>&nbsp;end if <br/>elseif KeyDown(KeyShift!) then <br/>&nbsp;if Row &lt; il_LastSelectedRow then <br/>&nbsp; &nbsp;ll_Start = Row <br/>&nbsp; &nbsp;ll_End = il_LastSelectedRow <br/>&nbsp;else <br/>&nbsp; &nbsp;ll_Start = il_LastSelectedRow <br/>&nbsp; &nbsp;ll_End = Row <br/>&nbsp;end if <br/><br/>&nbsp;This.SelectRow(0,False) <br/>&nbsp;For ll_index = ll_Start to ll_End <br/>&nbsp; &nbsp;This.SelectRow(ll_index,True) <br/>&nbsp;next <br/>else <br/>&nbsp;if Not This.IsSelected(Row) then <br/>&nbsp; &nbsp;This.SelectRow(0,False) <br/>&nbsp; &nbsp;This.SelectRow(Row,True) <br/>&nbsp;end if <br/>end if <br/><br/>il_LastSelectedRow = Row </font><br/>
页: [1]
查看完整版本: 函数SelectRow详细解析(数据窗口数据多选时用)

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

Mail To:Admin@SybaseBbs.com