Foxtable(狐表)用户栏目专家坐堂 → 横向统计字符


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

主题:横向统计字符

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


加好友 发短信
等级:一尾狐 帖子:484 积分:3826 威望:0 精华:0 注册:2019/1/13 10:12:00
横向统计字符  发帖心情 Post By:2019/10/10 21:45:00 [只看该作者]

老师,请看实例,怎样实现自动统计上班天数。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计字符.table


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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 9:02:00 [只看该作者]

增加一列表达式=每天相加,休息为0,上班为1不就行了么。如果想要显示出休的字样,可以用数字字典,或者在绘制写代码:数据0显示休

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


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

datacolchanged事件

If e.DataCol.Name.StartsWith("D")
    Dim x,y As Integer
    For Each c As DataCol In e.DataTable.DataCols
        If c.Name.StartsWith("D")
            If e.DataRow(c.Name) = "1" Then
                y += 1
            ElseIf e.DataRow(c.Name) = "休班" Then
                x += 1
            End If
        End If
    Next
    e.DataRow("休班天数") = IIF(x > 0,x,Nothing)
    e.DataRow("一班天数") = IIF(y > 0,y,Nothing)
End If

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


加好友 发短信
等级:一尾狐 帖子:484 积分:3826 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/10/13 19:45:00 [只看该作者]

老师,我运行上面的代码时,表输入数字或文字都提示以下错误:
调用的目标发生了异常。
从字符串“休班”到类型“Double”的转换无效。
输入字符串的格式不正确。

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


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

1楼的项目我测试没有问题。如果自己的项目改了列类型,重新截图看看表结构和数据,或者根据列类型自己相应改改代码。如果不会改,上传有问题的项目说明

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


加好友 发短信
等级:一尾狐 帖子:484 积分:3826 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/10/13 20:27:00 [只看该作者]

老师,我重新完善了一下实例,这个更接近实际用途。里面的加班时间我解决了,关键是统计一、二、三班和休班事假。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计考勤.table


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


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

按什么规则计算?正确的结果应该是怎么样的,手工填入正确结果,截图看看

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


加好友 发短信
等级:一尾狐 帖子:484 积分:3826 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/10/14 8:25:00 [只看该作者]

老师,您看看现在的实例,逻辑列可以统计吗?如果这样可行的话,打印也是个问题,需要转换成竖版,怎样解决?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



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


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

逻辑列使用判断合计即可,比如

dim sum as integer
if e.datarow("逻辑列1") = true then sum = sum +1
if e.datarow("逻辑列2") = true then sum = sum +1
e.datarow("合计列") = sum

至于打印,上传模板或者截图说明要什么效果


 回到顶部