窗口的AfterLoad事件代码,[立案年份]、[立案月份]都是表达式列,我在打开窗口时将这两列作为目录树节点,没出现过错误,今天提示[立案年份]为只读,目录树无法打开,是何原因?
代码如下:
e.Form.Controls("CheckedComboBox筛选树").text = "立案年份|立案月份|立案日期|案号"
Dim s As String = e.Form.Controls("CheckedComboBox筛选树").text
If s = "" OrElse s = "选择筛选列" Then
Return
End If
'Dim t As Table = CurrentTable
Dim t As Table = Tables("数据表")
Dim r As Row
Dim c As String
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView筛选树")
Dim Colstr() As String
Colstr = s.Split("|")
For Each r In t.Rows
For Each c In Colstr
If r.IsNull(c) Then
If t.Cols(c).DataCol.IsDate Then
r(c) = #01/01/0001#
ElseIf t.Cols(c).DataCol.IsNumeric Then
r(c) = 0
ElseIf t.Cols(c).DataCol.IsBoolean
r(c) = False
Else
r(c) = "空"
End If
End If
Next
Next
tr.StopRedraw()
tr.Nodes.Clear
tr.BuildTree(t.DataTable.Name,s)
tr.ResumeRedraw()
If tr.AllNodes.Count > 0 Then
tr.Nodes.Insert("显示所有行",0)
End If
tr.Select()
If t.DataTable.Type = 5 Then
For Each r In t.Rows
For Each c In Colstr
If t.Cols(c).DataCol.IsDate Then
If r(c) = #01/01/0001#
r(c) = Nothing
End If
ElseIf t.Cols(c).DataCol.IsNumeric Then
If r(c) = 0 Then
r(c) = Nothing
End If
ElseIf t.Cols(c).DataCol.IsBoolean Then
If r(c) = False Then
r(c) = Nothing
End If
Else
If r(c) = "空" Then
r(c) = Nothing
End If
End If
Next
Next
Else
t.DataTable.RejectChanges
End If