Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共16 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:感谢管理员一直以来的帮助,虽然半桶水也不到,我也要发一个教程。

1楼
yacity 发表于:2011/8/9 17:08:00

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

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

 

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

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

 

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

 


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

 

以下是库存表

 


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

 

 

[此贴子已经被作者于2011-8-9 17:33:52编辑过]
2楼
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编辑过]
3楼
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编辑过]
4楼
yacity 发表于:2011/8/9 17:46:00

案例如下:

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

 

但是在实际使用过程中

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

 


图片点击可在新窗口打开查看此主题相关图片如下:14.jpg
图片点击可在新窗口打开查看
5楼
一滴水 发表于:2011/8/21 11:44:00
这个教程绝对比狐表的帮助里的强大,我先顶起来。学习了,很好,图文并茂。赞一个。
6楼
c 发表于:2011/8/23 14:37:00
Dim txt As String = e.Form.Controls("TextBox1").Text 原来控件的值是这样读取的啊,学习了!谢谢!!
7楼
xiaosa5173 发表于:2012/8/15 10:59:00
这才是我们要的实用教程. 
8楼
gqywf 发表于:2012/11/26 11:52:00
好贴,赞一个。
9楼
sunbrain 发表于:2012/12/1 11:48:00
顶贴一个
10楼
zerov 发表于:2012/12/27 17:10:00

有图有真相,顶一个

共16 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 3 queries.