以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]使用筛选窗口时会改变表信息  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16217)

--  作者:lixuefei
--  发布时间:2012/2/6 12:18:00
--  [求助]使用筛选窗口时会改变表信息

我做个2个窗口,

分别是录入窗口(可以填表和改表)

筛选窗口(不能修改表中信息);

 

当我使用筛选窗口选择表中某个值时,鼠标当前所在那行的值也会随之改变;

 

附件中有截图和程序,请帮我看看,谢谢;

 

 

--------------------------------------------------------------------------------------

筛选窗口:

ComboBox类型 不会改变表的信息;

而DropDownBox类型,并且下拉窗口中嵌入了一个“目录树”,选择树中内容时会同时改变表的内容;

 

以下是DropDownBox的详细属性

类型:DropDownBox

绑定到:    [空]

初始值:    [空]

只读:Default    [若是 Ture,那么在筛选窗口中无法点开下拉框]

下拉窗口:目录树 - 资产分类

允许直接输入:True

-------------------------------

目录树 - 资产分类  详细信息

类型:DropDownForm

名称:TreeView1

 

Afterload

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("固定资产","资产分类|资产名称")

 

 

 

 If e.Node.Level = 1 Then

    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("固定资产").Current
    Dim dr As DataRow = DataTables("固定资产").Find("资产分类 = \'" & ps(0) & "\' And 资产名称 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then

        tr("资产分类") = dr("资产分类")
        tr("资产名称") = dr("资产名称")
        e.Form.DropDownBox.Value = tr("资产名称") 

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

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


--  作者:狐狸爸爸
--  发布时间:2012/2/6 13:35:00
--  

窗口“目录树 - 资产分类“中下拉窗口中的Treeview事件的代码是,红色加粗的部分,修改就是固定资产选定行的值。

 

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("固定资产").Current
    Dim dr As DataRow = DataTables("固定资产").Find("资产分类 = \'" & ps(0) & "\' And 资产名称 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("资产分类") = dr("资产分类")
        tr("资产名称") = dr("资产名称")
        e.Form.DropDownBox.Value = tr("资产名称") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()
End If

 

你把代码改为:

 

If e.Node.Level = 1 Then \'如果单击的是第二层节点
      e.Form.DropDownBox.Value = e.node.text

      e.Form.DropDownBox.CloseDropdown()
End If

 

就行了。

 

 


--  作者:lixuefei
--  发布时间:2012/2/6 14:15:00
--  

非常感谢狐狸爸爸!

专业,细心,周到,迅速;

 

原本我还在担心我表达不佳,且代码繁多,但没预料到这么快就帮我找到问题了,而且还帮助我修正了代码; 太感谢了

 

也感谢其他预想帮助我的人;