以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]自定义录入界面之二  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144352)

--  作者:lgj716330
--  发布时间:2019/12/17 19:01:00
--  [求助]自定义录入界面之二

我科目表的编号列名称是“科目编号”,汇总表的编号列名称是“科目编码”

1、首先在汇总表新增一个窗口,窗口类型为"DropDownForm",窗口插入一个TextBox和一个Table控件,Table控件的“作为副本”属性设置为True,“允许编辑”属性设置为False,并绑定到科目表

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("窗口1_Table1")

If
 txt = "" Then
    tbl.Filter = ""

Else

    txt = 
"\'%" & txt & "%\'"
    tbl.Filter = 
"科目编号 Like " & txt & " Or 科目名称 Like " & txt
End
 If


3、将TextBox1的KeyDown事件代码设为:

Dim tbl As Table = Tables("窗口1_Table1")
If
 e.KeyCode = Keys.Up Then
    tbl.Position = tbl.Position - 
1
    e.Cancel = 
True
Elseif
 e.KeyCode = Keys.Down Then
    tbl.Position = tbl.Position + 
1
    e.Cancel = 
True
Elseif
 e.KeyCode = Keys.Enter Then
    
If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current(
"科目编号")
    End
 
If
    e.Cancel = 
True
    e.Form.DropDownBox.CloseDropDown()

End
 If


4、将Table控件的DoubleClick事件设置为:

Dim tbl As Table = Tables("窗口1_Table1")
If
 tbl.Current IsNot Nothing Then
    e.Form.DropDownBox.Value = tbl.Current("科目编号")

End
 If
e
.Form.DropDownBox.CloseDropDown()


5、将窗口的DropDownClosed事件代码设置为:

If
 e.Form.DropTable IsNot Nothing Then \'如果是通过表下拉的
    e.Form.DropTable.FinishEditing()

Else
 \'如果是通过窗口下拉的
    
e.Form.DropDownBox.WriteValue()
End
 If


6、在项目事件AfterOpenProject事件中加入代码:

Tables("汇总表").Cols("科目编码").DropForm = "窗口1"


结果在汇总表科目编码列录入的时候窗口没跳出来,没任何影响


--  作者:有点蓝
--  发布时间:2019/12/17 20:33:00
--  
"汇总表"是一开始就加载的还是后来才加载的?"窗口1"是下拉窗口类型吗?确定是"窗口1"这个名称?
--  作者:lgj716330
--  发布时间:2019/12/18 8:59:00
--  
最后发现开发的那里不可以,客户端升级了是可以的
Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("窗口1_Table1")

If
 txt = "" Then
    tbl.Filter = ""

Else

    txt = 
"\'%" & txt & "%\'"
    tbl.Filter = 
"科目编号 Like " & txt & " Or 科目名称 Like " & txt
End
 If

就是这里TextBox1里只能录编号,录不了中文,但复制进去又可以
[此贴子已经被作者于2019/12/18 9:11:45编辑过]

--  作者:有点蓝
--  发布时间:2019/12/18 9:12:00
--  
您电脑输入法或者键盘的问题吧