Foxtable(狐表)用户栏目专家坐堂 → 如何才能让统计后的计算的列标题也可以合并


  共有2160人关注过本帖树形打印复制链接

主题:如何才能让统计后的计算的列标题也可以合并

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
如何才能让统计后的计算的列标题也可以合并  发帖心情 Post By:2016/7/26 16:34:00 [只看该作者]

 
此主题相关图片如下:微信截图_20160726163137.png
按此在新窗口浏览图片

如何才能让统计后的计算的列标题也可以合并。主要是中间的调整时间是动态的,没法:.Add("调整期间_{0}_销售折扣",

也不能直接在统计的时候计算,因为有的行没有销售金额,只有吊牌金额。

代码如下:

 

If e.Form.Controls("CheckBox12").checked   Then
    Dim bd5 As New SQLcrossTableBuilder("统计表1","库位销售分析")

    bd5.C
    bd5.HGroups.AddDef("门店") '添加客户列用于水平分组
    bd5.HGroups.AddDef("库位") '添加客户列用于水平分组
    bd5.HGroups.AddDef("销售日期",DateGroupEnum.year,"区间2") '添加客户列用于水平分组

    bd5.vGroups.AddDef("调整期间","调整期间_{0}") '添加客户列用于水平分组    
    bd5.Totals.AddDef("销售金额") '添加数量列用于统计
    bd5.Totals.AddDef("吊牌金额"") '添加数量列用于统计
    bd5.filter = filter
    bd5.CommandTimeOut = 600
    dt5 = bd5.BuildDataSource()
End If

 

Dim ls As new List(of String)
ls.add("门店")
ls.add("库位")
For Each c As Object In e.Form.controls("groupbox3").children  
    If c.checked Then
        ls.add(c.text)
    End If
Next
Dim nms As String() = ls.ToArray

Dim dts() As fxDataSource = {dt3,dt2,dt1,dt4,dt5}
Dim pdt As fxDataSource = Nothing
For Each dt As object In dts
    If pdt Is Nothing AndAlso dt IsNot Nothing Then
        pdt = dt
    Else
        If pdt IsNot Nothing AndAlso dt IsNot Nothing Then
            pdt.Combine(nms,dt,nms)
        End If
    End If
Next

Tables(e.Form.Name & "_table1").DataSource = pdt
For Each dc As DataCol In DataTables(e.Form.Name & "_table1").DataCols
messagebox.show(dc.name)
Next


If Tables(e.Form.Name & "_table1").Cols.Contains("区间") Then
    Tables(e.Form.Name & "_table1").Cols.Remove("区间")
End If

If Tables(e.Form.Name & "_table1").Cols.Contains("区间1") Then
    Tables(e.Form.Name & "_table1").Cols.Remove("区间1")
End If

If Tables(e.Form.Name & "_table1").Cols.Contains("区间2") Then
    Tables(e.Form.Name & "_table1").Cols.Remove("区间2")


With DataTables(e.Form.Name & "_table1").DataCols  '用表达式列计算库存数据
    .Add("销售折扣",Gettype(Double), "销售金额_1 / 吊牌金额_1")
    Tables(e.Form.Name & "_table1").Cols.Remove("销售金额_1")
    Tables(e.Form.Name & "_table1").Cols.Remove("吊牌金额_1")
End With

 

End If


[此贴子已经被作者于2016/7/26 16:38:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/26 16:38:00 [只看该作者]

 循环每一列,取出对应的列标题,得到值,再设置呗。

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/7/26 17:23:00 [只看该作者]

搞定,谢谢 红袍老师!

Dim c As Col = Tables(e.Form.Name & "_table1").Cols("吊牌金额_1")
Dim s1 As String = c.Caption.SubString(0,27)
    .Add(s1 & "销售折扣",Gettype(Double), "销售金额_1 / 吊牌金额_1")
    Tables(e.Form.Name & "_table1").Cols.Remove("销售金额_1")
    Tables(e.Form.Name & "_table1").Cols.Remove("吊牌金额_1")
End With


 回到顶部