Dim tr As WinForm.TreeView = Forms("窗口2").Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
If e.Node.Level = 1 Or e.Node.Level = 2 Or e.Node.Level = 3 Or e.Node.Level = 4 Then
If e.Node.Level = 1
MessageBox.Show("请点击下一层节点!")
Return
Else
e.Form.Controls("Table1").Visible =True '*** !显示表 ,注意此处Table1不能用("窗口2_table1")***
Tables("窗口2_Table1").DataSource = DataTables(nd.name) '绑定数据表(DataTable)的名称(为节点名称).
e.form.controls("combobox1").Value = e.Node.Name '组合框1值等于所点击节点的名称
e.form.controls("label6").text = e.Node.Name '标签6值等于所点击节点的名称,(即表名)
e.Form.Controls(e.Node.Name ).Visible =True '显示等于节点名的显示
Tables("窗口2_Table1").DataSource = DataTables("现金表") ''主窗口则显示现金表
e.Form.Controls("Chart1").Visible =False '隐藏图表
Dim i As String = e.form.controls("combobox1").text
'在当前表显示新增行:
Dim dr As DataRow
dr = DataTables( i ).AddNew()
dr("日期") = Date.Today '将新增行的日期设为当天日期.
'打开窗口表后锁定该表当前选定行,不允许编辑
' Tables( i ).Current.locked = True
'****下面代码是获取表中的最后一行,并将日期填入到日期框中
e.Form.Controls("DateTimePicker1").value= Nothing
e.Form.Controls("DateTimePicker2").value=Nothing
If i IsNot Nothing Then
Dim r As Row = Tables(i).Rows(Tables(i).Rows.Count-1)
Tables("窗口2_Table1").DataSource = DataTables(i)
e.Form.Controls("DateTimePicker1").value=r("日期") 'Date.Today.Adddays(-90)
e.Form.Controls("DateTimePicker2").value=r("日期")
End If
If i="工资卡"
e.form.controls("label21").text ="支出"
Else If i="现金表"
e.form.controls("label21").text ="金额"
End If
'***
'****
End If
End If
'下面代码是限定先显示图表,隐藏表
If e.Node.Level = 0 Then '当点击主节点是,就显示图表,隐藏窗口表
' If e.form.controls("label6").text <> "图表" Or e.form.controls("label6").text = "表名"
e.Form.Controls("Chart1").Visible =True '显示图表
e.Form.Controls("Table1").Visible =False '隐藏表 ,注意此处Table1不能用("窗口1_table1")
End If
End If
'隐藏标签
Dim i1 As String = e.Form.Controls("label6").text '定义一个组合框,以供在窗口显示表名
Dim ss As String = "现金表|工资卡|银行存款|债权|水电费|电话费|债务" '
For Each s As String In ss.Split("|")
e.Form.Controls( s ).Visible =(i1 = s) '自动隐藏不等于标签6的窗口
Forms( s).Close() ' 自动关闭窗口
Next
'
''在窗口"现金表"【收支】列显示"现金树"目录树,没有下面的代码,现金表在窗口表【收支】列就不显示目录树
If i1 = "现金表" Then '如果标签6(label6)等于"现金表" ,这里引用上面定义的i1变量
Tables("窗口2_Table1").Cols("选择收支").DropForm = "收支项目" '在窗口的【收支】列显示"收支项目"
End If
'*********
'下面是根据日期框进行筛选
Dim Filter As String
With e.Form.Controls("DateTimePicker1") '起始日
If .Value IsNot Nothing Then
If Filter > "" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 >= #" & .Value & "#"
End If
End With
''日期结束
With e.Form.Controls("DateTimePicker2") '终止日
If .Value IsNot Nothing Then
If Filter > "" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 <= #" & .Value & "#"
End If
End With
'控制时间控件日期为当天日期
e.Form.Controls("DateTimePicker1").Value =Date.Today.Adddays(-30)
e.Form.Controls("DateTimePicker2").Value = Date.Today
''筛选后统计
'If Filter > "" Then '如果筛选条件为空
' Tables("窗口2_Table1").Filter = Filter '则不筛选
'End If
Dim i2 As String = e.form.controls("label6").text '定义变量i ,为表名,当点击树中的表名是,标签6显示该节点名
Tables("窗口2_table1").SetColVisibleWidth(Tables( i2 ).GetColVisibleWidth) '窗口表列宽及列顺序与实际表相同