在数据窗口中,我选定了多行,使用用方法如下:
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
即可