Foxtable(狐表)用户栏目专家坐堂 → 考勤垂直表转换为横表


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

主题:考勤垂直表转换为横表

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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
考勤垂直表转换为横表  发帖心情 Post By:2019/4/4 14:39:00 [只看该作者]

老师,考勤表转换为横表不对,代码如下,麻烦看看。

 

Dim  dtb As  New  DataTableBuilder("考勤表")
dtb.AddDef("姓名",  Gettype(String),  32)
For Each  v As  String In DataTables("实名制考勤").GetValues("考勤日期")
    dtb.AddDef(v, Gettype(String))
Next
dtb.Build()
For Each  v As  String In DataTables("实名制考勤").GetValues("姓名")
    Dim dr1  As  DataRow =  DataTables("考勤表").AddNew()
    dr1("姓名") = v
    For  Each dr2  As  DataRow  In  DataTables("实名制考勤").Select("姓名 = '" & v & "'")
        dr1(dr2("考勤日期")) = dr2("考勤状态")
    Next
Next
MainTable = Tables("考勤表")

[此贴子已经被作者于2019/4/4 14:39:16编辑过]

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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/4 16:00:00 [只看该作者]

 

[此贴子已经被作者于2019/4/4 16:29:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 16:43:00 [只看该作者]

报什么错?

 

是不是这个问题? For Each  v As  String In DataTables("实名制考勤").GetValues("考勤日期", "考勤日期 is not null")


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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/4 17:04:00 [只看该作者]

报错截图


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

 

实名制考勤  表截图:


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

 

生成的  考勤表截图


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

 

想要这样效果怎么实现


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

[此贴子已经被作者于2019/4/4 17:09:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 18:16:00 [只看该作者]

改成

 

Dim  dtb As  New  DataTableBuilder("考勤表")
dtb.AddDef("姓名",  Gettype(String),  32)
For Each  v As  String In DataTables("实名制考勤").GetValues("考勤日期")
    dtb.AddDef(v.replace(" 00:00:00", ""), Gettype(String))
Next
dtb.Build()
For Each  v As  String In DataTables("实名制考勤").GetValues("姓名")
    Dim dr1  As  DataRow =  DataTables("考勤表").AddNew()
    dr1("姓名") = v
    For  Each dr2  As  DataRow  In  DataTables("实名制考勤").Select("姓名 = '" & v & "'")
        dr1(dr2("考勤日期")) = dr2("考勤状态")
    Next
Next
MainTable = Tables("考勤表")


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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/4 20:00:00 [只看该作者]

老师,4楼最后那个效果怎么实现呢?

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/6 9:01:00 [只看该作者]


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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/9 16:55:00 [只看该作者]

老师,我换了一种方式,麻烦写一下这个代码,选择日期后,根据选择的日期和勾选的人员(勾选的在表中未到岗 为 √ ,没勾选的缺勤 为×)这样的效果

  


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


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

[此贴子已经被作者于2019/4/9 16:54:45编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 19:07:00 [只看该作者]

请上传具体的有数据,可以测试的实例上来。

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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/9 20:58:00 [只看该作者]

考试,8楼示例里面有数据,我就想点击考勤,选择考勤日期,出勤了的就勾选,没出勤的不勾选,确定后在实名制考勤表里面对应的显示 √ 或 ×

原来计划垂直表转横表的思路,不太直观,这样更直观,查询也方便,还节约数据,一个人一个月就一行数据。
[此贴子已经被作者于2019/4/9 21:00:11编辑过]

 回到顶部
总数 13 1 2 下一页