以文本方式查看主题

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

--  作者:zsslly
--  发布时间:2017/10/16 13:27:00
--  跨表统计的问题?
如图如代码,以前我的表中没有“部门”这一列,代码如下:

If e.DataCol.name = "年度" OrElse e.DataCol.name = "设计师" Then
    If e.DataRow.Isnull("年度") = False AndAlso e.DataRow.Isnull("设计师") = False Then
        Dim filter As String = "设计师 = \'" & e.DataRow("设计师") & "\'"
        For i As Integer = 1 To 12
            Dim d As Date = new Date(val(e.DataRow("年度")), i, 1)
            Dim sum As Integer = DataTables("峰和设计部").compute("sum(签单金额)", filter & " and 事件日期 >= #" & d & "# and 事件日期 < #" & d.addmonths(1) & "#")
            e.DataRow("M" & i) = sum
        Next
    Else
        For i As Integer = 1 To 12
            e.DataRow("M" & i) = Nothing
        Next
    End If
End If

现在添加了“部门”列,原被统计表有“设计师”以及“业务员”两例,如何分开统计?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171016144310.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/10/16 14:47:49编辑过]

--  作者:有点甜
--  发布时间:2017/10/16 16:12:00
--  

 加条件?

 

Dim filter As String = "设计师 = \'" & e.DataRow("设计师") & "\' and 部门 = \'" & e.dataRow("部门") & "\'"

 

 没看懂你问题,上传实例说明。


--  作者:zsslly
--  发布时间:2017/10/16 16:40:00
--  
如案例,求“业务员”的跨表统计?之前的跨表统计保留。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:引用单元格内容.table

[此贴子已经被作者于2017/10/16 16:40:33编辑过]

--  作者:zsslly
--  发布时间:2017/10/16 16:57:00
--  
案例中的代码为:
If e.DataCol.name = "年份" OrElse e.DataCol.name = "操作人" Then
    If e.DataRow.Isnull("年份") = False AndAlso e.DataRow.Isnull("操作人") = False Then
        Dim filter As String = "姓名 = \'" & e.DataRow("操作人") & "\'"
        For i As Integer = 1 To 12
            Dim d As Date = new Date(val(e.DataRow("年份")), i, 1)
            Dim sum As Integer = DataTables("表A").compute("sum(成交额)", filter & " and 成单日期 >= #" & d & "# and 成单日期 < #" & d.addmonths(1) & "#")
            e.DataRow("M" & i) = sum
        Next
    Else
        For i As Integer = 1 To 12
            e.DataRow("M" & i) = Nothing
        Next
    End If
End If

我想达到这样,
Dim filter As String = 如果“部门”为"设计部"则"姓名 = \'" & e.DataRow("操作人") & "\'" ,如果“部门”为"业务员"则"业务员 = \'" & e.DataRow("操作人") & "\'"
不知可否实现,求解?

--  作者:有点蓝
--  发布时间:2017/10/16 21:20:00
--  
        Dim filter As String
        If e.DataRow("部门") = "设计部"
            filter  = "姓名 = \'" & e.DataRow("操作人") & "\'"
        Else
            filter  = "业务员 = \'" & e.DataRow("操作人") & "\'"
        End If
[此贴子已经被作者于2017/10/16 21:24:28编辑过]

--  作者:zsslly
--  发布时间:2017/10/16 23:49:00
--  
跪谢!