以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]不好意思,太菜,帖子都弄得乱七八糟,望谅  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63606)

--  作者:青鸟
--  发布时间:2015/1/24 17:15:00
--  [求助]不好意思,太菜,帖子都弄得乱七八糟,望谅

关于下拉目录树输入问题

1     基本情况:

Table(“合同类别”)

Table(“合同台账”)

2   目的:

希望利用Table(“合同类别”)的数据,建立下拉目录树窗口,在Table(“合同台账”).Col(合同类型)中调用该下拉目录树窗口,点击自动输入Col(合同类型)& Col(一级合同类别)& Col(二级合同类别)& Col(三级合同类别)

3    操作:

3.1    Table(“合同类别”)中,新建一个窗口,名为合同类别目录树,窗口类型设置为“DropDownForm”


3.2    该窗口中插入一个TreeView控件;


3.3    该窗口的AfterLoad事件设置为:

    Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

    trv.BuildTree("合同类别","合同类型名称|一级合同类别名称|二级合同类别名称|三级合同类别名称")


3.4    TreeViewNodeMouseClick事件代码设置为:

     If e.Node.Level = 3 Then

    Dim Vals() As String = e.Node.FullPath.Split("\\")

    Dim Filter As String = "[合同类型名称] = \'" & Vals(0) & "\' And [一级合同类别名称] = \'" & Vals(1) & "\' And [二级合同类别名称] = \'" & Vals(2) & "\' And [三级合同类别名称] = \'" & Vals(3) & "\'"

    Dim dr As DataRow = DataTables("合同类别").Find(Filter)

    Dim r As Row = Tables("合同台账").Current

    If dr IsNot Nothing Then

        r("合同类型") = dr("合同类型名称")

        r("一级合同类别") = dr("一级合同类别名称")

        r("二级合同类别") = dr("二级合同类别名称")

        r("三级合同类别") = dr("三级合同类别名称")

        e.Form.DropDownBox.Value = r("三级合同类别")

    End If

    e.Form.DropDownBox.CloseDropdown()

End If


3.5    Table(“合同台账”)CellButtonClick事件中设置:

Forms("合同类别目录树").Open()

e.Cancel = True


4     问题:

5.1    运行后,在Table(“合同台账”)内,没有反应,连下拉菜单标记都没有。

5.2    将窗口属性修改成“模式”,应用后窗口内的目录树正常:

5.3    命令窗口测试调用“模式”窗口,目录树也正常


5     请教高手问题出在哪里?



--  作者:jiangyong
--  发布时间:2015/1/24 17:51:00
--  
帮助请查找 自定义录入界面之四

DropDownForm的使用有很多参数控制窗口的打开,详情请自己看

3、将Table控件的DoubleClick事件代码设置为:

Forms("窗口1").DropDownBox.CloseDropDown()

这样在下拉窗口双击某个客户,就会关闭下拉窗口。

4、将Table控件的KeyDown事件代码设置为:

If e.KeyCode = Keys.Enter Then
    Forms(
"窗口1").DropDownBox.CloseDropdown()
End
If


--  作者:青鸟
--  发布时间:2015/1/24 20:18:00
--  
谢谢!但我的问题不是关不了窗口,而是无法调用窗口。

Table(“合同台账”)CellButtonClick事件中设置:

Forms("合同类别目录树").Open()

e.Cancel = True

这段代码没有作用,不能在目标Table(“合同台账")里面调用目录树窗口来建立下拉菜单,再请教。



--  作者:jiangyong
--  发布时间:2015/1/24 21:42:00
--  
应该是你调用下拉窗口的方法错误
帮助有 ,请看  -----  可以多选的下拉目录树

你的想法应该是在在输入一列数据时,可以打开设定好的下拉窗口,
应该是下面这种调用

Tables("表A").Cols("第一列").DropForm  = "窗口1"


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

3.5    Table(“合同台账”)CellButtonClick事件中设置:

Forms("合同类别目录树").Open()

e.Cancel = True


应该错误是出在这

--  作者:jiangyong
--  发布时间:2015/1/24 21:46:00
--  
顺便说一句.其实你应该用 自定义界面一的方法,这里面才是在cellbuttonclick事件,你搞混了

5、将订单表客户ID列的列表项目设为“|...”最后并将订单表的CellButtonClick事件设为:

If e.Col.Name = "客户Id" Then
    e.Cancel =
True
    Forms(
"窗口1").Open()


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


下拉窗口看起来很漂亮和专业,但是用起来和调试麻烦,尽量少用

[此贴子已经被作者于2015-1-24 21:47:29编辑过]

--  作者:青鸟
--  发布时间:2015/1/24 22:08:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看还是调用不了窗口。但我在窗口设计中“应用”窗口,如何点击要输入的内容,就能输入,只是输入后要报错。本来有贴图的,但我不知道怎么贴进来,插入也好像没用。谢谢
--  作者:jiangyong
--  发布时间:2015/1/24 22:17:00
--  
兄弟,不要用下拉窗口了,就用普通的模式窗口,看看 帮助中的自定义界面一就好了,把你现在代码改改,分分秒秒的事情

想我当年装B用下拉窗口,为了一个小bug,调试的死去活来,这就是典型的死要面子活受罪.再说我自己用,界面搞这么漂亮干嘛

或者你把源代码传上来,看看有没有好心人直接给你改好,这要看你运气
[此贴子已经被作者于2015-1-24 22:24:45编辑过]

--  作者:青鸟
--  发布时间:2015/1/24 22:45:00
--  
谢谢
--  作者:青鸟
--  发布时间:2015/1/24 22:48:00
--  
最大的问题是我上传附件但告诉我的是文件类型不符合要求,我传了Table文件,为了不浪费大家的时间,传了问题相关的截了图的Word和Pdf文件,但都没传上来
--  作者:有点甜
--  发布时间:2015/1/25 9:17:00
--  

 看界面二、界面三,第五点

 

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

 

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