max_column= integer(dw.Describe("DataWindow.Column.Count"))
FOR i=1 TO max_column
dw.SetTabOrder(i,0)
NEXT
可将所有列TabOrder置为0
可是如何还原呢
4 个解决方案
#1
没有办法还原
除非你把原始的TabOrder保存起来,才能还原
比如说你把每个列的TabOrder保存在列的Tag里,还原的时候从Tag里取出来设置
除非你把原始的TabOrder保存起来,才能还原
比如说你把每个列的TabOrder保存在列的Tag里,还原的时候从Tag里取出来设置
#2
方法一:重新设置数据窗口的dataobject,TabOrder自动就恢复原状了。
dw_1.dataobject = 'dw_xxx'
dw_1.settransobject(sqlca)
方法二:如果原始所有列的TabOrder都不为0,就按照你代码中设为0的方式自己去加好了。
integer max_column,i,j=10
max_column= integer(dw.Describe("DataWindow.Column.Count"))
FOR i=1 TO max_column
dw.SetTabOrder(i,j)
j = j + 10
NEXT
方法三:你可以换个思路,既然是将所有列的TabOrder都设为0,你还不如直接设置ReadOnly属性。
dw_1.Modify("DataWindow.ReadOnly=Yes")
等需要恢复的时候dw_1.Modify("DataWindow.ReadOnly=No")
方法四:也可以用列的protect的属性来操作。
integer i
string ls_protect
for i=1 to integer(dw.Describe("DataWindow.Column.Count")) step 1
ls_protect = "#"+String(i)+".protect = 1"
this.modify(ls_protect)
next
恢复的时候将protect设为0即可
dw_1.dataobject = 'dw_xxx'
dw_1.settransobject(sqlca)
方法二:如果原始所有列的TabOrder都不为0,就按照你代码中设为0的方式自己去加好了。
integer max_column,i,j=10
max_column= integer(dw.Describe("DataWindow.Column.Count"))
FOR i=1 TO max_column
dw.SetTabOrder(i,j)
j = j + 10
NEXT
方法三:你可以换个思路,既然是将所有列的TabOrder都设为0,你还不如直接设置ReadOnly属性。
dw_1.Modify("DataWindow.ReadOnly=Yes")
等需要恢复的时候dw_1.Modify("DataWindow.ReadOnly=No")
方法四:也可以用列的protect的属性来操作。
integer i
string ls_protect
for i=1 to integer(dw.Describe("DataWindow.Column.Count")) step 1
ls_protect = "#"+String(i)+".protect = 1"
this.modify(ls_protect)
next
恢复的时候将protect设为0即可
#3
作一个循环,使用tabsequence这个属性来实现。例如:object.column.tabsequence=0
#4
记下来!
#1
没有办法还原
除非你把原始的TabOrder保存起来,才能还原
比如说你把每个列的TabOrder保存在列的Tag里,还原的时候从Tag里取出来设置
除非你把原始的TabOrder保存起来,才能还原
比如说你把每个列的TabOrder保存在列的Tag里,还原的时候从Tag里取出来设置
#2
方法一:重新设置数据窗口的dataobject,TabOrder自动就恢复原状了。
dw_1.dataobject = 'dw_xxx'
dw_1.settransobject(sqlca)
方法二:如果原始所有列的TabOrder都不为0,就按照你代码中设为0的方式自己去加好了。
integer max_column,i,j=10
max_column= integer(dw.Describe("DataWindow.Column.Count"))
FOR i=1 TO max_column
dw.SetTabOrder(i,j)
j = j + 10
NEXT
方法三:你可以换个思路,既然是将所有列的TabOrder都设为0,你还不如直接设置ReadOnly属性。
dw_1.Modify("DataWindow.ReadOnly=Yes")
等需要恢复的时候dw_1.Modify("DataWindow.ReadOnly=No")
方法四:也可以用列的protect的属性来操作。
integer i
string ls_protect
for i=1 to integer(dw.Describe("DataWindow.Column.Count")) step 1
ls_protect = "#"+String(i)+".protect = 1"
this.modify(ls_protect)
next
恢复的时候将protect设为0即可
dw_1.dataobject = 'dw_xxx'
dw_1.settransobject(sqlca)
方法二:如果原始所有列的TabOrder都不为0,就按照你代码中设为0的方式自己去加好了。
integer max_column,i,j=10
max_column= integer(dw.Describe("DataWindow.Column.Count"))
FOR i=1 TO max_column
dw.SetTabOrder(i,j)
j = j + 10
NEXT
方法三:你可以换个思路,既然是将所有列的TabOrder都设为0,你还不如直接设置ReadOnly属性。
dw_1.Modify("DataWindow.ReadOnly=Yes")
等需要恢复的时候dw_1.Modify("DataWindow.ReadOnly=No")
方法四:也可以用列的protect的属性来操作。
integer i
string ls_protect
for i=1 to integer(dw.Describe("DataWindow.Column.Count")) step 1
ls_protect = "#"+String(i)+".protect = 1"
this.modify(ls_protect)
next
恢复的时候将protect设为0即可
#3
作一个循环,使用tabsequence这个属性来实现。例如:object.column.tabsequence=0
#4
记下来!