Foxtable(狐表)用户栏目专家坐堂 → [求助]想做一个职工来访登记


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

主题:[求助]想做一个职工来访登记

帅哥哟,离线,有人找我吗?
zhuzhi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
[求助]想做一个职工来访登记  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
  发帖心情 Post By:2014/3/3 9:58:00 [只看该作者]

非常感谢!我去学习一下!

 回到顶部
帅哥哟,离线,有人找我吗?
zhuzhi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/3 10:22:00 [只看该作者]

YOU什么问题? 怎么没效果,请上例子.

 回到顶部
帅哥哟,离线,有人找我吗?
zhuzhi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4039 威望:0 精华:0 注册:2011/11/2 8:55:00
  发帖心情 Post By:2014/3/3 11:11:00 [只看该作者]

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


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

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/3 11:18:00 [只看该作者]

那个是小键盘的数字 如果希望 主键盘数值也有效果.可以加入

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

 回到顶部