我现在开始玩动态加载数据,有一些问题还没搞懂,请求帮助: 有一表,我原来在项目属性BeforeLoadOuterTable事件没有代码。 原窗口AfterLoad事件代码: Tables("产品目录").OpenView("车间主管") Tables("产品目录.产品工序").OpenView("车间主管") Tables("产品目录.产品工序.产品工艺").OpenView("车间主管") e.Form.Controls("TreeView1").BuildDataTree("产品目录", "", "客户", "机型", "所属部分","图号") 原目录树NodeMouseClick事件代码: Dim Value() As String Value = e.Node.FullPath.Split("\") Select Case e.Node.Level Case 0 Tables("产品目录").Filter = "[客户] = '" & Value(0) & "'" Case 1 Tables("产品目录").Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "'" Case 2 Tables("产品目录").Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "' And [所属部分] = '" & Value(2) & "'" Case 3 Tables("产品目录").Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "' And [所属部分] = '" & Value(2) & "'And [图号] = '" & Value(3) & "'" End Select 原已文本框TextChanged代码: with e.Form Dim dst As WinForm.Table = .Controls("Table1") Dim txb1 As WinForm.TextBox = .Controls("TextBox1") Tables("产品目录").Filter = "[图号] Like '*" & txb1.text & "*'or [名称] Like '*" & txb1.text & "*'" end with
修改后: 我在项目属性BeforeLoadOuterTable事件加入代码: If e.DataTableName = "产品目录" Then e.SelectString = "Select * From 产品目录 Where _Identify < 0" End If 在窗口AfterLoad代码修改成: Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 客户,机型,所属部分,图号 From 产品目录" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildDataTree(dt, "","客户", "机型","所属部分","图号") 在目录树NodeMouseClick事件代码修改成: Dim Value() As String Dim Filter As string Value = e.Node.FullPath.Split("-:special:1:-) Select Case e.Node.Level Case 0 Filter = "[客户] = '" & Value(0) & "'" Case 1 Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "'" Case 2 Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "' And [所属部分] = '" & Value(2) & "'" Case 3 Filter = "[客户] = '" & Value(0) & "' And [机型] = '" & Value(1) & "' And [所属部分] = '" & Value(2) & "'And [图号] = '" & Value(3) & "'" End Select DataTables("产品目录").LoadFilter = Filter DataTables("产品目录").Load() 以上目录树能正常执行,但是现在有2个问题: 1.在窗口AfterLoad怎样加表视图,原视图代码报错。 2.文本框代码应怎么写。 谢谢
|