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


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

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

帅哥哟,离线,有人找我吗?
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  3楼 | 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编辑过]

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  5楼 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  6楼 | 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编辑过]

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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/10 13:50:00 [显示全部帖子]

老师,怎么横向统计字符列呢?比如我在每月最后增加一列出勤天数合计,怎么统计一个人当月出勤的天数,前面的√是字符列。

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


加好友 发短信
等级:狐精 帖子:3209 积分:21331 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/4/10 14:27:00 [显示全部帖子]

知道怎么统计了

If e.DataCol.Name Like "日*" Then
    Dim sum As Integer = 0
    For i As Integer = 1 To 31
        If e.DataRow("日" & i) = "√" Then
            sum += 1
        End If
    Next
    e.DataRow("出勤天数") = sum
End If


 回到顶部