以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  多条件统计数量  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=191508)

--  作者:wlj88868
--  发布时间:2024/4/20 15:14:00
--  多条件统计数量

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("销售资料")
If e.DataCol.Name = "管辖部门" Then
    dr("销售数量") = dt.Compute("Sum(数量)", "[管辖部门] = \'" & dr("管辖部门") & "\'")
End If

 

老师我想在开票月份输入4,,把销售资料的4月份的数量统计出来,,不管几号的是4月份的都统计出来,需要怎么做呀

现在就是不会分月统计麻烦指教一下


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

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

--  作者:有点蓝
--  发布时间:2024/4/20 15:36:00
--  
参考:http://www.foxtable.com/webhelp/topics/2720.htm

dim m as string = "4"
Dim y As Integer = Date.Today.Year
Dim 
dt1 As New Date(ym1)
Dim 
dt2 As New Date(ymDate.DaysInMonth(ym)) \'获取本月的最后一天
Dim 
Filter As String "[管辖部门] = \'" & dr("管辖部门") & "\' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
dr("销售数量") = dt.Compute("Sum(数量)", Filter )

--  作者:wlj88868
--  发布时间:2024/4/20 16:22:00
--  

是2个表的,,,是不是[开票月份]=\'"销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"

dim m as string = "4"  这个是不是意思就统计4月份,,开票月份输入是5月份是不是不可以的

dim m as string = e.datarow  这里是不是要这样才有用的啊


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

--  作者:有点蓝
--  发布时间:2024/4/20 16:29:00
--  
\'代码写完整啊,我只是改了和问题有关的一段

Select Case e.DataCol.Name
    Case "管辖部门", "开piao月份"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("管辖部门") OrElse dr.IsNull("开piao月份") Then
            dr("销售数量") = Nothing
        Else
            Dim m As integer = dr("开piao月份")
            Dim y As Integer = Date.Today.Year
            Dim dt1 As New Date(y, m, 1)
            Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
            Dim Filter As String = "[管辖部门] = \'" & dr("管辖部门") & "\' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
            Dim dt As DataTable = DataTables("销售资料")
            dr("销售数量") = dt.Compute("Sum(数量)", Filter)
        End If
End Select

--  作者:wlj88868
--  发布时间:2024/4/20 16:35:00
--  

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("销售资料")
\'If e.DataCol.Name = "管辖部门" Then
    \'dr("销售数量") = dt.Compute("Sum(数量)", "[管辖部门] = \'" & dr("管辖部门") & "\'")
\'End If
Dim m As String = e.DataRow("开票月份")
Dim y As Integer = Date.Today.Year
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
Dim Filter As String = "[管辖部门] = \'" & dr("管辖部门") & "\' and 销售日期 >= #" & dt1 & "# And 销售日期 <= #" & dt2 & "#"
dr("销售数量") = dt.Compute("Sum(数量)", Filter)

 

 

谢谢老师,,可以实现了


--  作者:有点蓝
--  发布时间:2024/4/20 16:41:00
--  
5楼这种不是合理地用法,请参考4路,学会写完整的逻辑,不然可能会导致程序崩溃:http://www.foxtable.com/webhelp/topics/1522.htm