分享一下,树形数据窗口双击那一层自动展开或收缩(数据窗口DoubleClicked事件中处理)
//TreeView Datawindow 双击收缩
//双击那一层对象则自带收缩(不用去点 + / - )
string ls_dwProcessing,ls_band
//树型dw的展开收缩处理
ls_dwProcessing=this.describe('DataWindow.Processing')
If ls_dwProcessing='8' or ls_dwProcessing='9' Then
ls_band=this.describe(dwo.Name+".band")
//tree.level.1
//n_cst_string
If pos(ls_band,'tree.level.') >0 Then
n_cst_string lstr_c
string ls_parstr[],ls_bandrow[]
int li_level
long ll_row
lstr_c.of_parsetoarray(ls_band,'.',ls_parstr)//PFC 对象 把字串 分配成数组(也可以自行写)
If upperbound(ls_parstr[])>=3 Then
If isnumber(ls_parstr[3])Then
li_level=integer(ls_parstr[3])
//describe("evaluate(' first( getrow() for group 1 )',"+string(getrow())+")")
//describe("evaluate(' first( getrow() for group 1 )',"+first( getrow() for group 1 )+")")
//ll_row= this.getrow()//long(describe("evaluate(' first( getrow() for group "+string(li_level)+" )',compute_3)"))
//取双击的所在 band 的行
ls_band=GetBandAtPointer()
lstr_c.of_parsetoarray(ls_band,'~t',ls_bandrow)
If upperbound(ls_bandrow[])>=2 Then
ll_row=long(ls_bandrow[2])
If ll_row=0 Then ll_row= this.getrow()
Else
ll_row= this.getrow()
End If
If this.isexpanded( ll_row, li_level) Then
this.CollapseAllChildren(ll_row,li_level)
//this.CollapseAll()
Else
this.ExpandAllChildren(ll_row,li_level)
//this.ExpandAll()
End If
End If
End If
End If
End If