以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  跨表统计编码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=95108)

--  作者:feixianzhi
--  发布时间:2017/1/10 15:43:00
--  跨表统计编码问题

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实例.table

 

 

实例中有需求说明,请各位老师帮忙编码怎么写,谢谢。


--  作者:feixianzhi
--  发布时间:2017/1/10 15:53:00
--  
请各位老师帮忙,急用,谢谢
--  作者:有点色
--  发布时间:2017/1/10 16:03:00
--  

DataColChanged事件

 

If e.DataCol.name = "财务编码" OrElse e.DataCol.name = "类别" Then
    Dim dr As DataRow = e.DataRow
    Dim dt As DataTable
    If dr("类别") = "按入库" Then
        dt = DataTables("入库表")
    ElseIf dr("类别") = "按销售" Then
        dt = DataTables("销售表")
    End If
    Dim yearin1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\'")
    Dim yearin2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\'")
    Dim yearout1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\' and 财务1结清 = true")
    Dim yearout2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\' and 财务2结清 = true")
    dr("全年数量") = yearin1 + yearin2 - yearout1 - yearout2
End If


--  作者:feixianzhi
--  发布时间:2017/1/10 16:10:00
--  
有点色老师,这是全年数量的统计,那每个季度的编码怎么写呀,谢谢。
--  作者:feixianzhi
--  发布时间:2017/1/10 16:21:00
--  
有点色老师帮忙呀,急用,谢谢。
--  作者:有点色
--  发布时间:2017/1/10 16:23:00
--  

If e.DataCol.name = "财务编码" OrElse e.DataCol.name = "类别" Then
    Dim dr As DataRow = e.DataRow
    Dim dt As DataTable
    If dr("类别") = "按入库" Then
        dt = DataTables("入库表")
    ElseIf dr("类别") = "按销售" Then
        dt = DataTables("销售表")
    End If
    Dim yearin1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\'")
    Dim yearin2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\'")
    Dim yearout1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\' and 财务1结清 = true")
    Dim yearout2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\' and 财务2结清 = true")
    dr("全年数量") = yearin1 + yearin2 - yearout1 - yearout2
   
    Dim cs() As String = {"第一季度数量","第二季度数量","第三季度数量","第四季度数量"}
    For i As Integer = 0 To cs.Length - 1
        Dim filter As String = ""
        Dim d As Date
        d = new Date(2016, 3*i+1, 1)
        filter = " and 日期 >= #" & d & "# and 日期 < #" & d.AddMonths(3) & "#"
        Dim quarin1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\'" & filter)
        Dim quarin2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\'" & filter)
        Dim quarout1 As Double = dt.Compute("sum(数量)", "财务编码1 = \'" & dr("财务编码") & "\' and 财务1结清 = true" & filter)
        Dim quarout2 As Double = dt.Compute("sum(数量)", "财务编码2 = \'" & dr("财务编码") & "\' and 财务2结清 = true" & filter)
        dr(cs(i)) = quarin1 + quarin2 - quarout1 - quarout2
    Next
End If


--  作者:feixianzhi
--  发布时间:2017/1/10 16:25:00
--  
非常感谢有点色老师。