以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口中的下拉目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73428)

--  作者:猩猩与土豆
--  发布时间:2015/8/19 11:11:00
--  [求助]窗口中的下拉目录树
1
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

如图,我在此窗口的供应商编号旁边的Combobox控件中以客户信息表的公司编号列生成了一个下拉目录树,窗口中间那一排的公司信息绑定了客户信息表,右边那一排绑定了关联表“客户信息表.联系人表”。
我想要的效果是当我点击新增订单时,窗口中所有信息清空,选择供应商编号时,相应的公司信息和联系人信息能自动跳转出来,现在供应商编号一栏的下拉目录树已设置好,但是当我新增订单时,公司信息和联系人信息一直固定一家公司的信息,更换供应商编号不能跳转显示我选择的那家公司的信息


图片点击可在新窗口打开查看此主题相关图片如下:客户信息表.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:联系人表.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:采购订单表.png
图片点击可在新窗口打开查看

以下是TreeView(目录树)的NodeMouseClick事件的代码:
If e.Node.Level = 2 Then \'如果单击的是第二层节点
    Dim tr As Row
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    If e.Form.DropTable IsNot Nothing Then \'如果下拉窗口是从表中打开
        tr = e.Form.DropTable.Current \'获取此表的当前行
    Else \'如果下拉窗口是通过DropdownBox打开
        Dim nm As String = e.Form.DropDownBox.BindingField \'获取绑定的字段
        nm = nm.Split(".")(0) \'获取绑定的表名
        tr = Tables(nm).Current \'获取此表的当前行
    End If
    tr("供应商编号") = dr("公司编号")
       e.Form.DropDownBox.Value = tr("供应商编号") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
End If
到底错哪了??
[此贴子已经被作者于2015/8/19 11:27:20编辑过]

--  作者:大红袍
--  发布时间:2015/8/19 11:46:00
--  

If e.Node.Level = 2 Then \'如果单击的是第二层节点
    Dim tr As Row
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    If e.Form.DropTable IsNot Nothing Then \'如果下拉窗口是从表中打开
        tr = e.Form.DropTable.Current \'获取此表的当前行
    Else \'如果下拉窗口是通过DropdownBox打开
        Dim nm As String = e.Form.DropDownBox.BindingField \'获取绑定的字段
        nm = nm.Split(".")(0) \'获取绑定的表名
        tr = Tables(nm).Current \'获取此表的当前行
    End If
    tr("供应商编号") = dr("公司编号")
    e.Form.DropDownBox.Value = tr("供应商编号") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    Tables("供应商").Position = Tables("供应商").findRow(dr)
    e.Form.DropDownBox.CloseDropdown()
End If

 

http://www.foxtable.com/help/topics/0553.htm

 


--  作者:猩猩与土豆
--  发布时间:2015/8/19 12:05:00
--  
加了那一句代码之后随便选择一个供应商编码都可以跳转到相应信息了,可是点击新增的时候公司信息和联系人信息都不能清空,还保留上一个订单的信息,要怎么设置才能在增加新订单的时候清空原来的信息呢
--  作者:大红袍
--  发布时间:2015/8/19 12:07:00
--  

新增按钮,直接置空

 

e.Form.Controls("TextBox1").Text = nothing

e.Form.Controls("TextBox2").Text = nothing

e.Form.Controls("TextBox3").Text = nothing


--  作者:猩猩与土豆
--  发布时间:2015/8/19 15:36:00
--  
那个公司信息和联系人信有时能跳转,有时又只能固定为一个公司信息,而且还将公司信息表的其他公司信息都改成了这个公司信息,这是什么原因啊??
--  作者:大红袍
--  发布时间:2015/8/19 16:00:00
--  
上传实例说明具体问题。
--  作者:猩猩与土豆
--  发布时间:2015/8/20 9:31:00
--  
比如像下图,刚开始从下拉目录树中选择皮埃尔这家公司时还是好的,公司信息和联系人信息也自动跳转


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

而更换选择另一家公司时,公司信息和联系人信息全是空白,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

然后客户信息表(也就是公司信息的表)和联系人表的这家公司在窗口中的信息也被清空,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


这是下拉目录树的代码:
If e.Node.Level = 2 Then \'如果单击的是第二层节点
    Dim tr As Row
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    If e.Form.DropTable IsNot Nothing Then \'如果下拉窗口是从表中打开
        tr = e.Form.DropTable.Current \'获取此表的当前行
    Else \'如果下拉窗口是通过DropdownBox打开
        Dim nm As String = e.Form.DropDownBox.BindingField \'获取绑定的字段
        nm = nm.Split(".")(0) \'获取绑定的表名
        tr = Tables(nm).Current \'获取此表的当前行
    End If
    tr("供应商编号") = dr("公司编号")
       e.Form.DropDownBox.Value = tr("供应商编号") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
       Tables("客户信息表").Position = Tables("客户信息表").findRow(dr)
       e.Form.DropDownBox.CloseDropdown()
End If

请问是哪里有问题啊??

--  作者:大红袍
--  发布时间:2015/8/20 9:58:00
--  

 下拉目录树代码没有问题。

 

 清空操作肯定是你datacolchanged事件或者textChanged事件有清除的代码。

 

 具体上传项目


--  作者:猩猩与土豆
--  发布时间:2015/8/20 10:11:00
--  
0
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验.table


还有那个采购信息录入窗口中关联表的产品编号列的下拉树有时有,有时没有是怎么回事??
[此贴子已经被作者于2015/8/20 10:25:57编辑过]

--  作者:大红袍
--  发布时间:2015/8/20 10:34:00
--  

新增按钮有问题。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验.table