Foxtable(狐表)用户栏目专家坐堂 → [求助]自定义录入界面之二


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

主题:[求助]自定义录入界面之二

帅哥,在线噢!
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1393 积分:10723 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]自定义录入界面之二  发帖心情 Post By: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"


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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 20:33:00 [只看该作者]

"汇总表"是一开始就加载的还是后来才加载的?"窗口1"是下拉窗口类型吗?确定是"窗口1"这个名称?

 回到顶部
帅哥,在线噢!
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1393 积分:10723 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/18 9:12:00 [只看该作者]

您电脑输入法或者键盘的问题吧

 回到顶部