以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]想做一个职工来访登记 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46994) |
||||
-- 作者:zhuzhi -- 发布时间:2014/3/3 9:34:00 -- [求助]想做一个职工来访登记 希望来访者输入工号,就可以在职工基础数据表中找到对应的其他数据,自动在来访登记表上显示出来。 在帮助里找到了代码,可以用: If e.DataCol.Name = "工号" Then Dim nms() As String = {"部门"} If e.NewValue Is Nothing Then For Each nm As String In nms e.DataRow(nm) = Nothing Next Else Dim dr As DataRow dr = DataTables("职工基础表").Find("[工号] = \'" & e.NewValue & "\'") If dr IsNot Nothing For Each nm As String In nms e.DataRow(nm) = dr(nm) Next End If End If End If 但是 ,我还希望: 1、当我打开来访登记表这张表时,鼠标光标自动放在新记录工号列上; 2、如果来访者不记得工号,就在键盘输入0,光标自动放在身份证号列上,以身份证号列来获得信息; 3、输入工号或身份证号后,按键盘回车键,光标自动放在来访类型列上,来访者可以按下1—3选择来访类型。 1为工资,2为职称,3为考勤。 这 该如何修改代码呢? 求指教! 非常感谢 !
|
||||
-- 作者:Bin -- 发布时间:2014/3/3 9:53:00 -- 1.利用FINDROWhttp://www.foxtable.com/help/topics/0553.htm 2.加入第三列是身份证列 KeyDownEdit 事件 If e.KeyCode =Keys.NumPad0 Then e.Cancel=True e.Table.Select(e.Table.Position,2) End If 3.按回车跳转代码同上 1-3设置类型 KeyDownEdit 事件 If e.Col.name="第二列" Then e.Cancel=True If e.KeyCode=Keys.NumPad1 Then e.Text="工资" End If If e.KeyCode=Keys.NumPad2 Then e.Text="职称" End If If e.KeyCode=Keys.NumPad3 Then e.Text="考勤" End If End If |
||||
-- 作者:zhuzhi -- 发布时间:2014/3/3 9:58:00 -- 非常感谢!我去学习一下! |
||||
-- 作者:zhuzhi -- 发布时间:2014/3/3 10:21:00 -- 代码改成了这样 If e.KeyCode =Keys.NumPad0 Then e.Cancel=True e.Table.Select(e.Table.Position,2) End If If e.Col.name="来访事由" Then e.Cancel=True If e.KeyCode=Keys.NumPad1 Then e.Text="工资" End If If e.KeyCode=Keys.NumPad2 Then e.Text="职称" End If If e.KeyCode=Keys.NumPad3 Then e.Text="考勤" End If End If 但 好像没有效果。 我哪里做错了呢?
|
||||
-- 作者:Bin -- 发布时间:2014/3/3 10:22:00 -- YOU什么问题? 怎么没效果,请上例子. |
||||
-- 作者:zhuzhi -- 发布时间:2014/3/3 11:11:00 --
例子如上…… 输入数字,没有出现文本…… 我是哪里错了呢?
|
||||
-- 作者:Bin -- 发布时间:2014/3/3 11:18:00 -- 那个是小键盘的数字 如果希望 主键盘数值也有效果.可以加入 If e.KeyCode=Keys.NumPad1 OrElse e.KeyCode=Keys.D1 Then e.Text="工资" End If |