Foxtable(狐表)用户栏目专家坐堂 → [求助]使用筛选窗口时会改变表信息


  共有9320人关注过本帖树形打印复制链接

主题:[求助]使用筛选窗口时会改变表信息

帅哥哟,离线,有人找我吗?
lixuefei
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:4 积分:102 威望:0 精华:0 注册:2011/9/14 15:20:00
[求助]使用筛选窗口时会改变表信息  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:4 积分:102 威望:0 精华:0 注册:2011/9/14 15:20:00
  发帖心情 Post By:2012/2/6 14:15:00 [只看该作者]

非常感谢狐狸爸爸!

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

 

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

 

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


 回到顶部