以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  发展建议  (http://foxtable.net/bbs/list.asp?boardid=11)
----  感谢管理员一直以来的帮助,虽然半桶水也不到,我也要发一个教程。  (http://foxtable.net/bbs/dispbbs.asp?boardid=11&id=11733)

--  作者:yacity
--  发布时间:2011/8/9 17:08:00
--  感谢管理员一直以来的帮助,虽然半桶水也不到,我也要发一个教程。

感谢管理员一直以来 专业、热情、周到的服务。做到了有问必答。通过最近几天的了解,

感觉foxtable确实很强大。更强大的是我们的管理员呢!

 

好了进入正题。我这个教程是 标准教程“自定义录入界面之一” 的 进一步修改。个人感觉比标准教程更快捷。

快捷在于省掉了 鼠标操作。全键盘操作。

 

看一下图吧,这是生产记录表

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

以下是库存表

 


图片点击可在新窗口打开查看此主题相关图片如下:12.jpg
图片点击可在新窗口打开查看

 

 

[此贴子已经被作者于2011-8-9 17:33:52编辑过]

--  作者:yacity
--  发布时间:2011/8/9 17:16:00
--  

1、在 生产记录表 新建一个窗口

 


图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

 

窗口类型为模式,窗口插入一个TextBox和一个Table控件,Table控件的“作为副本”属性设置为True,

“允许编辑”属性设置为False,并绑定到绑定到仓库表。

 


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

 

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

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("窗口1_Table1")
tbl.Filter= ""
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.filter = "(产品名称 Like " & txt & " Or 规格 Like " & txt & " Or 单位 Like " &  txt & ")"
End If

 

这样我们在文本框中输入任何内容,Table就会自动进行模糊筛选,显示产品名称,规格,单位 这三列中,

任何一列包括输入内容的行。

 

 

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
        Tables("生产记录表").Current("产品id") = tbl.Current("产品id")
        Tables("生产记录表").Current("产品名称") = tbl.Current("产品名称")
        Tables("生产记录表").Current("规格") = tbl.Current("规格")
        Tables("生产记录表").Current("单位") = tbl.Current("单位")
    End If
    e.Cancel = True   
    e.Form.Close()
End If

 

 

这样在文本框中按上下箭头键,可以在Table中选择不同的行,按回车键会将选定行的产品名称,规格,

单位等输入到生产记录表的当前行中,并关闭窗口。
为了避免按上下箭头键的时候,文本框的光标会移动,下面的代码是必须的:   
e.Cancel =
True

 

 


图片点击可在新窗口打开查看此主题相关图片如下:6.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-8-9 17:36:10编辑过]

--  作者:yacity
--  发布时间:2011/8/9 17:31:00
--  

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

 

 

Dim tbl As Table = Tables("窗口1_Table1")
If tbl.Current IsNot Nothing Then
    Tables("生产记录表").Current("产品ID") = tbl.Current("产品ID")
    Tables("生产记录表").Current("产品名称") = tbl.Current("产品名称")
    Tables("生产记录表").Current("规格") = tbl.Current("规格")
    Tables("生产记录表").Current("单位") = tbl.Current("单位")
End If
Forms("窗口1").Close()

 

 

这样在窗口的Table中回车,即可将该行的相关数据填充入生产记录表的当前行中,并关闭窗口。
提示:由于Table的Keydown事件的e参数不包括Form属性,所以代码中不能使用e.Form来引用窗口,

只能直接使用窗口名:Forms("窗口1")。


图片点击可在新窗口打开查看此主题相关图片如下:7.jpg
图片点击可在新窗口打开查看

 

 

保存 并关闭窗口设计器。

打开生产记录表 的表属性-事件

将 keydownedit 设置为:

If e.Col.Name = "产品名称" Then
    e.Cancel = True
    Forms("窗口1").Open()
End If

这样当 用键盘 编辑 产品名称列 的时候 会打开 窗口1

 

 


图片点击可在新窗口打开查看此主题相关图片如下:9.jpg
图片点击可在新窗口打开查看

 

最后 锁定 产品ID ,规格,单位 这三列,产品名称不用锁定。这样 可以避免不小心带来的录入错误。

 

好了 完成了!该功能实现了全键盘输入。比标准教程少了键盘到鼠标之间来回切换,这样可以提高录入效率。

效果如下:


 


图片点击可在新窗口打开查看此主题相关图片如下:10.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-8-9 18:47:50编辑过]

--  作者:yacity
--  发布时间:2011/8/9 17:46:00
--  

案例如下:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自定义录入界面-yacity.zip

 

但是在实际使用过程中

按键盘 方向键 有时候会 程序出错。一摸一样的方法,有些项目做出来就不出错,有些项目就会出错。不知道是不是某些细节没有处理好 还是 foxtable 的问题。

 


图片点击可在新窗口打开查看此主题相关图片如下:14.jpg
图片点击可在新窗口打开查看

--  作者:一滴水
--  发布时间:2011/8/21 11:44:00
--  
这个教程绝对比狐表的帮助里的强大,我先顶起来。学习了,很好,图文并茂。赞一个。
--  作者:c
--  发布时间:2011/8/23 14:37:00
--  
Dim txt As String = e.Form.Controls("TextBox1").Text 原来控件的值是这样读取的啊,学习了!谢谢!!
--  作者:xiaosa5173
--  发布时间:2012/8/15 10:59:00
--  
这才是我们要的实用教程. 
--  作者:gqywf
--  发布时间:2012/11/26 11:52:00
--  
好贴,赞一个。
--  作者:sunbrain
--  发布时间:2012/12/1 11:48:00
--  
顶贴一个
--  作者:zerov
--  发布时间:2012/12/27 17:10:00
--  

有图有真相,顶一个