以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态加载数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5887)

--  作者:wqc360
--  发布时间:2010/1/29 9:32:00
--  动态加载数据问题
我现在开始玩动态加载数据,有一些问题还没搞懂,请求帮助:
有一表,我原来在项目属性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.文本框代码应怎么写。
谢谢



--  作者:wqc360
--  发布时间:2010/1/29 10:09:00
--  
表视图现在又没问题了,还有,我的窗口有3个表,由以下视图代码可以看出,如果关联表也用动态加载数据,代码应该怎么写。谢谢
Tables("产品目录").OpenView("车间主管")
Tables("产品目录.产品工序").OpenView("车间主管")
Tables("产品目录.产品工序.产品工艺").OpenView("车间主管")

现在3个表都是用Normal类型绑定表非副本,但是非副本用行颜色时,一定要选突出,这样不好看,有没有其他解决方案,谢谢
[此贴子已经被作者于2010-1-29 10:13:13编辑过]

--  作者:wqc360
--  发布时间:2010/1/29 10:26:00
--  
关联表动态加载筛选行思路:筛选光标所在产品目录表图号的行,代码应怎么写,放哪里,谢谢
--  作者:wqc360
--  发布时间:2010/1/29 11:07:00
--  
想在产品工序表动态加载数据,我在父表的PositionChanged事件加入代码:
With DataTables("产品工序")
    .LoadFilter = "[图号] = Forms("工艺查询")Controls("图号") "
    .Load()
End With

报错,不知代码应怎样改。谢谢
--  作者:狐狸爸爸
--  发布时间:2010/1/29 11:32:00
--  
With DataTables("产品工序")
    .LoadFilter = "[图号] = " & Forms("工艺查询").Controls("图号").Value
    .Load()
End With


--  作者:wqc360
--  发布时间:2010/1/29 11:44:00
--  
多谢狐爸提供代码,但是不成功,我是在窗口中加以组合框,并绑定到产品目录表图号中,这样不行,能不能提供一个加载关联行的代码,谢谢
--  作者:wqc360
--  发布时间:2010/1/29 11:53:00
--  
6楼的要求不能满足我的要求,还是做当选定主表产品目录时,两个关联表子表都加载图号列相同的行,谢谢
--  作者:狐狸爸爸
--  发布时间:2010/1/29 12:20:00
--  
1、逻辑问题要自己处理,我只是帮你修改了语法问题。
2、提问题要抓住重点,要让人容易理解,最好是有简单的例子。