以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于两个窗口共用一个目录树的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61360)

--  作者:ypp1420
--  发布时间:2014/12/11 10:55:00
--  关于两个窗口共用一个目录树的问题

各位大神好上午好,我想在“一车间材料领用表”和“二车间材料领用”两个窗口中公用一个下拉目录树,点击目录树后,目录树中的内容自动添加到相应的box和label中,下面代码执行的时候显示错误信息“.NET Framework 版本:2.0.50727.5472
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,作业区域树,区域树,NodeMouseClick
详细错误信息:
未将对象引用设置到对象的实例。

 

Dim kjmc As WinForm.textBox = Forms("一车间料领用表").Controls ("设备名称")
Dim sydd As WinForm.DropDownBox = Forms("一车间材料领用表").Controls ("使用地点")
Dim bz As WinForm.Label = Forms("一车间材料领用表").Controls ("Label1")
Dim kjmc1 As WinForm.textBox = Forms("二车间材料领用").Controls ("设备名称")
Dim sydd1 As WinForm.DropDownBox = Forms("二车间材料领用").Controls ("使用地点")
Dim bz1 As WinForm.Label = Forms("二车间材料领用").Controls ("Label1")
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
If e.Node.Level = 2 Then \'如果单击的是第三层节点
    sydd.text = dr("配件名称")
    kjmc.text = dr("设备名称")
    bz.text = dr("备注")
    sydd1.text = dr("配件名称")
    kjmc1.text = dr("设备名称")
    bz1.text = dr("备注")
    e.Form.DropDownBox.CloseDropdown()
End If

是不是语法错误?请指教,不胜感激!

ps:原来的代码在一车间执行完全正常,加上二车间后才出现的错误信息!

Dim kjmc As WinForm.textBox = Forms("一车间料领用表").Controls ("设备名称")
Dim sydd As WinForm.DropDownBox = Forms("一车间材料领用表").Controls ("使用地点")
Dim bz As WinForm.Label = Forms("一车间材料领用表").Controls ("Label1")

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
If e.Node.Level = 2 Then \'如果单击的是第三层节点
sydd.text = dr("配件名称")
kjmc.text = dr("设备名称")
bz.text = dr("备注")

 e.Form.DropDownBox.CloseDropdown()
End If


--  作者:有点甜
--  发布时间:2014/12/11 10:58:00
--  

 要额外特殊处理,请上传例子

 

 


--  作者:ypp1420
--  发布时间:2014/12/11 10:58:00
--  

我整理整理 ,谢谢甜大神!


--  作者:ypp1420
--  发布时间:2014/12/11 12:44:00
--  

大神:如果我只想在某个窗口的一个dropdownbox控件中点击目录树二级节点,该二级节点的内容自动输入到此dropdownbox中,把相应的区号和邮编自动添加到 textbox1和textbox2中,不往相应的表格中添加,如何改下面的代码:

 

If e.Node.Level = 1 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("省市")
    tr("县市") = dr("县市")
    tr("区号") = dr("区号")
    tr("邮编") = dr("邮编")
    e.Form.DropDownBox.Value = tr("县市") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
End If


--  作者:ypp1420
--  发布时间:2014/12/11 12:46:00
--  
这个是通用下拉目录树,我想实现几个窗口的dropdownbox 下拉窗口选中此目录树窗口后,都可以调用!谢谢!
--  作者:ypp1420
--  发布时间:2014/12/11 14:04:00
--  

为什么下面的编码不能实现下拉窗口的内容自动输入到指定的控件中,程序没有报错,点击第三层节点后控件内什么都不显示,但是把 这句代码  “ If Forms("皮带二队材料领用表").Opened AndAlso Forms.ActiveForm.Name = "皮带二队材料领用表" Then ”屏蔽掉后可以正常执行呢,请大神指点!

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
If e.Node.Level = 2 Then \'如果单击的是第三层节点Select Case e.Form.Name
 If Forms("二车间材料领用表").Opened AndAlso Forms.ActiveForm.Name = "二车间材料领用表" Then
       
   Dim kjmc As WinForm.textBox = Forms("二车间材料领用表").Controls ("设备名称")
        Dim sydd As WinForm.DropDownBox =Forms("二队材料领用表").Controls ("使用地点")
        Dim bz As WinForm.Label = Forms("二队材料领用表").Controls("Label1")
        sydd.text = dr("设备名称")
        kjmc.text = dr("使用地点")
        bz.text = dr("备注")


    End If
    e.Form.DropDownBox.CloseDropdown()
End If


--  作者:有点甜
--  发布时间:2014/12/11 14:05:00
--  

1、获取窗口 e.Form.DropDownBox.Form

 

2、赋值给TextBox1 如 e.Form.DropDownBox.Form.Controls("TextBox1").Text = "123456"


--  作者:ypp1420
--  发布时间:2014/12/11 14:32:00
--  


甜版主,我改 了后显示编译错误:属性item readonly 请费心帮一下忙吧!  谢谢了!

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
If e.Node.Level = 2 Then \'如果单击的是第三层节点Select Case e.Form.Name
If Forms("二队材料领用表").Opened AndAlso Forms.ActiveForm.Name = "二队材料领用表" Then

 e.Form.DropDownBox.Form.controls("设备名称")= dr("设备名称")
     e.Form.DropDownBox.Form.controls("使用地点")= dr("使用地点")
e.Form.DropDownBox.Form.controls("Label1")= dr("备注")

End If
e.Form.DropDownBox.CloseDropdown()
End If


--  作者:有点甜
--  发布时间:2014/12/11 14:41:00
--  
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
If e.Node.Level = 2 Then \'如果单击的是第三层节点
    If  e.Form.DropDownBox.Form.Name = "窗口1" Then
        e.Form.DropDownBox.Form.controls("设备名称")= dr("设备名称")
        e.Form.DropDownBox.Form.controls("使用地点")= dr("使用地点")
        e.Form.DropDownBox.Form.controls("Label1")= dr("备注")
        e.Form.DropDownBox.CloseDropdown()
    End If
End If

--  作者:ypp1420
--  发布时间:2014/12/11 14:52:00
--  
谢谢 甜版主的引导,问题圆满解决,真心感谢!