以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  横向统计字符  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=141788)

--  作者:15666282205
--  发布时间:2019/10/10 21:45:00
--  横向统计字符
老师,请看实例,怎样实现自动统计上班天数。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计字符.table


--  作者:zto001
--  发布时间:2019/10/11 9:02:00
--  
增加一列表达式=每天相加,休息为0,上班为1不就行了么。如果想要显示出休的字样,可以用数字字典,或者在绘制写代码:数据0显示休
--  作者:有点蓝
--  发布时间: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
--  发布时间:2019/10/13 19:45:00
--  
老师,我运行上面的代码时,表输入数字或文字都提示以下错误:
调用的目标发生了异常。
从字符串“休班”到类型“Double”的转换无效。
输入字符串的格式不正确。

--  作者:有点蓝
--  发布时间:2019/10/13 19:58:00
--  
1楼的项目我测试没有问题。如果自己的项目改了列类型,重新截图看看表结构和数据,或者根据列类型自己相应改改代码。如果不会改,上传有问题的项目说明
--  作者:15666282205
--  发布时间:2019/10/13 20:27:00
--  
老师,我重新完善了一下实例,这个更接近实际用途。里面的加班时间我解决了,关键是统计一、二、三班和休班事假。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计考勤.table


--  作者:有点蓝
--  发布时间:2019/10/13 23:15:00
--  
按什么规则计算?正确的结果应该是怎么样的,手工填入正确结果,截图看看
--  作者:15666282205
--  发布时间:2019/10/14 8:25:00
--  
老师,您看看现在的实例,逻辑列可以统计吗?如果这样可行的话,打印也是个问题,需要转换成竖版,怎样解决?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



--  作者:有点蓝
--  发布时间: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

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