当前位置: 代码迷 >> PB >> 怎么判别选定好的行
  详细解决方案

怎么判别选定好的行

热度:122   发布时间:2016-04-29 10:12:41.0
如何判别选定好的行?
在数据窗口中,我选定了多行,使用用方法如下:
1、在Instance Variables中写:
long il_priorrow

2、在dw_1的clicked事件中写:
Long ll_j //循环变量
Long ll_currentrow //当前行
ll_currentrow = row
if ll_currentrow=0 then return
IF KeyDown(KeyShift!) THEN
 IF il_priorrow = 0 THEN
  This.SelectRow(ll_currentrow,True)
  il_priorrow = ll_currentrow
 ELSE
  This.SelectRow(0,False)
  IF ll_currentrow > il_priorrow THEN
  FOR ll_j = il_priorrow To ll_currentrow
  This.SelectRow(ll_j,True)
  NEXT
  ELSE
  FOR ll_j = il_priorrow To ll_currentrow Step -1
  This.SelectRow(ll_j,True)
  NEXT
  END IF
 END IF
ELSE
 IF KeyDown(KeyControl!) THEN
  SelectRow(row,Not IsSelected(ll_currentrow))
 ELSE
  This.SelectRow(0,False)
  This.SelectRow(ll_currentrow,True)
 END IF
 il_priorrow = ll_currentrow
END IF


在数据窗口里有一列名CHOOSED,是CHECKBOX类型,现我想把以上选定好的行,在窗体有一下按钮,点这按钮时,把这些选定了的行的CHOOSED的值变为TRUE。
请问这个按钮的语句如何写?


------解决方案--------------------
long ll_row
long i

for i = 1 to dw_1.rowcount()
if dw_1.isselected(i) then
dw_1.setitem(i,"CHOOSED",1)
end if
next
------解决方案--------------------
或者在dw中的detail域里增加一个不可见的计算列(假设列名为com),表达式为:if(isselected(), 1, 0)

然后按钮里就这样写:
dw_1.object.choosed.primary = dw_1.object.com.primary
即可
  相关解决方案