以文本方式查看主题

-  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
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:来访系统.table


例子如上……
输入数字,没有出现文本……
我是哪里错了呢?

--  作者:Bin
--  发布时间:2014/3/3 11:18:00
--  
那个是小键盘的数字 如果希望 主键盘数值也有效果.可以加入

If e.KeyCode=Keys.NumPad1 OrElse e.KeyCode=Keys.D1 Then
        e.Text="工资"
    End If