以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]计算挂零天数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143473)

--  作者:sansan
--  发布时间:2019/11/26 11:07:00
--  [求助]计算挂零天数
表格大概这样:
                                                            当日销售业绩
姓名        挂零天数               11月1日    11月2日     11月3日    11月4日………………………………11月30日
张三            ——                       0         20000           0              0
李四     (计算0的个数)              0            0                0              0

计算挂零天数,只要有业绩挂零那列就变成——符号,没有业绩就自动计算0的个数
能不能实现以上这种情况,拜托了!!!!



--  作者:有点蓝
--  发布时间:2019/11/26 11:38:00
--  
datacolchanged事件

If e.DataCol.name.contains("当日销售业绩")
    Dim sum As Integer = -1
    For Each dc As DataCol In e.DataTable.datacols
        If dc.name.StartsWith("当日销售业绩")
            If e.DataRow( dc.name) = 0
                sum += 1
            Else
                sum = -1
                Exit For
            End If
        End If
    Next
    e.DataRow("挂零天数") = iif(sum = -1,"----",sum) 
End If

--  作者:sansan
--  发布时间:2019/11/26 14:30:00
--  
除了有业绩变——情况是对的,计算0的个数不对啊,都是显示29,减个0加个0也不变 T^T


--  作者:有点蓝
--  发布时间:2019/11/26 14:41:00
--  
没看懂,截图或者上传实例说明
--  作者:sansan
--  发布时间:2019/11/26 14:53:00
--  

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

--  作者:有点蓝
--  发布时间:2019/11/26 15:14:00
--  
……
If dc.name.StartsWith("当日销售业绩")
    If e.DataRow.isnull( dc.name) = False
        If e.DataRow( dc.name) = 0
            sum += 1
        Else
            sum = -1
            Exit For
        End If
    End If
End If
……

--  作者:sansan
--  发布时间:2019/11/26 15:47:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:问题.png
图片点击可在新窗口打开查看
蓝大大!这次算出来终于不是一个数了,而且加减零也有变化,但是总比实际少数一个啊??

--  作者:有点蓝
--  发布时间:2019/11/26 16:15:00
--  
If e.DataCol.name.contains("当日销售业绩")
    Dim sum As Integer = 0
    For Each dc As DataCol In e.DataTable.datacols
If dc.name.StartsWith("当日销售业绩")
    If e.DataRow.isnull( dc.name) = False
        If e.DataRow( dc.name) = 0
            sum += 1
        Else
            sum = -1
            Exit For
        End If
    End If
End If
    Next
    e.DataRow("挂零天数") = iif(sum = -1,"----",sum) 
End If

--  作者:sansan
--  发布时间:2019/11/26 16:19:00
--  
完美!!感谢蓝大大的耐心解答!爱您!图片点击可在新窗口打开查看