Foxtable(狐表)用户栏目专家坐堂 → 求助窗口筛选中的一个小错误


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

主题:求助窗口筛选中的一个小错误

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 13:47:00 [显示全部帖子]

没看懂你的意思。上传具体例子说明问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 15:04:00 [显示全部帖子]

Dim b As New sqlCrossTableBuilder("利润表附表","部门损益总账")  '定义变量利润表附表,并从部门损益总账统计数据
b.AddTable("部门损益总账","部门名称","部门档案","部门名称") '添加统计表
b.AddTable("部门损益总账","科目编号","科目档案","科目编码") '添加统计表
b.HGroups.AddDef("{部门档案}.所属单位") '添加所属单位列用于水平分组
b.HGroups.AddDef("部门类型") '添加部门类型列用于水平分组
b.HGroups.AddDef("上级部门","部门") '添加部门名称列用于水平分组,并将列名称重新命名为部门
b.HGroups.AddDef("所属日期",DateGroupEnum.year,"年")
b.HGroups.AddDef("所属日期",DateGroupEnum.month,"月")
b.VGroups.AddDef("一级科目") '添加一级科目名称列用于垂直分组
b.Totals.AddDef("借方发生","本月") '添加借方发生列用于统计
b.Totals.AddDef("借方发生","累计",True) '添加借方发生列用于统计且截止累计金额
b.Decimals = 2 '小数点取0位
b.Build '生成统计表

Dim dt1 As DataTable = DataTables("部门档案")
Dim dt2 As DataTable = DataTables("部门损益总账")
Dim dt3 As DataTable = DataTables("利润表附表")
dt3.DataRows.Clear
Dim min As Date = dt2.Compute("min(所属日期)")
Dim max As Date = dt2.Compute("max(所属日期)")
For Each dr As DataRow In dt1.Select("")
    Dim sd As Date = min
    Do While Format(sd, "yyyyMM") <= Format(max, "yyyyMM")
        Dim ndr As DataRow = dt3.AddNew
        ndr("所属单位") = dr("所属单位")
        ndr("部门类型") = dr("部门类型")
        ndr("部门") = dr("上级部门")
        ndr("年") = sd.year
        ndr("月") = sd.Month
        sd = sd.AddMonths(1)
    Loop
Next


Dim t3 As Table = Tables("利润表附表")
Dim drs As List(Of DataRow) = t3.DataTable.Select("", "部门,年")
For Each c As Col In t3.Cols
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        Dim by As String = c.name.Replace("_up", "")
        For Each dr As DataRow In drs
            If pdr Is Nothing OrElse dr("部门") <> pdr("部门") OrElse dr("年") <> pdr("年") Then
                dr(c.name) = dr(by)
            Else
                dr(c.name) = dr(by) + pdr(by)
            End If
            pdr = dr
        Next
    End If
Next

Dim dic As new Dictionary(of String, String) '循环每一列,把标题和列名存储在字典里,然后引用,哪里需要某列的列名,就直接引用标题,如dic("标题名")
For Each c As Col  In Tables("利润表附表").cols
    dic.add(c.Caption, c.name)
Next

If dic.ContainsKey("销售费用_本月") = False Then
    DataTables("利润表附表").dataCols.add("销售费用_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("销售费用_累计", Gettype(Double))
    dic.add("销售费用_本月", "销售费用_本月")
    dic.add("销售费用_累计", "销售费用_累计")
End If
If dic.ContainsKey("财务费用_本月") = False Then
    DataTables("利润表附表").dataCols.add("财务费用_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("财务费用_累计", Gettype(Double))
    dic.add("财务费用_本月", "财务费用_本月")
    dic.add("财务费用_累计", "财务费用_累计")
End If
If dic.ContainsKey("其他业务成本_本月") = False Then
    DataTables("利润表附表").dataCols.add("其他业务成本_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("其他业务成本_累计", Gettype(Double))
    dic.add("其他业务成本_本月", "其他业务成本_本月")
    dic.add("其他业务成本_累计", "其他业务成本_累计")
End If
If dic.ContainsKey("营业外支出_本月") = False Then
    DataTables("利润表附表").dataCols.add("营业外支出_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("营业外支出_累计", Gettype(Double))
    dic.add("营业外支出_本月", "营业外支出_本月")
    dic.add("营业外支出_累计", "营业外支出_累计")
End If
If dic.ContainsKey("其他业务收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("其他业务收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("其他业务收入_累计", Gettype(Double))
    dic.add("其他业务收入_本月", "其他业务收入_本月")
    dic.add("其他业务收入_累计", "其他业务收入_累计")
End If
If dic.ContainsKey("营业外收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("营业外收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("营业外收入_累计", Gettype(Double))
    dic.add("营业外收入_本月", "营业外收入_本月")
    dic.add("营业外收入_累计", "营业外收入_累计")
End If
If dic.ContainsKey("主营业务收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("主营业务收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("主营业务收入_累计", Gettype(Double))
    dic.add("主营业务收入_本月", "主营业务收入_本月")
    dic.add("主营业务收入_累计", "主营业务收入_累计")
End If
If dic.ContainsKey("主营业务成本_本月") = False Then
    DataTables("利润表附表").dataCols.add("主营业务成本_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("主营业务成本_累计", Gettype(Double))
    dic.add("主营业务成本_本月", "主营业务成本_本月")
    dic.add("主营业务成本_累计", "主营业务成本_累计")
End If
If dic.ContainsKey("营业费用_本月") = False Then
    dic.add("营业费用_本月", "营业费用_本月")
    dic.add("营业费用_累计", "营业费用_累计")
End If
If dic.ContainsKey("资产减值损失_本月") = False Then
    DataTables("利润表附表").dataCols.add("资产减值损失_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("资产减值损失_累计", Gettype(Double))
    dic.add("资产减值损失_本月", "资产减值损失_本月")
    dic.add("资产减值损失_累计", "资产减值损失_累计")
End If
If dic.ContainsKey("其他支出_本月") = False Then
    dic.add("其他支出_本月", "其他支出_本月")
    dic.add("其他支出_累计", "其他支出_累计")
End If

DataTables("利润表附表").dataCols.add("营业费用_本月", Gettype(Double), "isnull(" & dic("销售费用_本月") & ",0)+isnull(" & dic("财务费用_本月") & ",0)") '通过Add方法,动态增加临时列,并给临时列设置表达式,表达式引用字典的方式同直接引用有所区别
DataTables("利润表附表").dataCols.add("营业费用_累计", Gettype(Double), "isnull(" & dic("销售费用_累计") & ",0)+isnull(" & dic("财务费用_累计") & ",0)")
DataTables("利润表附表").dataCols.add("其他支出_本月", Gettype(Double), "isnull(" & dic("其他业务成本_本月") & ",0)+isnull(" & dic("营业外支出_本月") & ",0)-isnull(" & dic("其他业务收入_本月") & ",0)-isnull(" & dic("营业外收入_本月") & ",0)")
DataTables("利润表附表").dataCols.add("其他支出_累计", Gettype(Double), "isnull(" & dic("其他业务成本_累计") & ",0)+isnull(" & dic("营业外支出_累计") & ",0)-isnull(" & dic("其他业务收入_累计") & ",0)-isnull(" & dic("营业外收入_累计") & ",0)")
DataTables("利润表附表").dataCols.add("利润_本月", Gettype(Double), "isnull(" & dic("主营业务收入_本月") & ",0)-isnull(" & dic("主营业务成本_本月") & ",0)-isnull(" & dic("资产减值损失_本月") & ",0)-[营业费用_本月]-[其他支出_本月]")   
DataTables("利润表附表").dataCols.add("利润_累计", Gettype(Double), "isnull(" & dic("主营业务收入_累计") & ",0)-isnull(" & dic("主营业务成本_累计") & ",0)-isnull(" & dic("资产减值损失_累计") & ",0)-[营业费用_累计]-[其他支出_累计]")
With Tables("利润表附表") '改变统计表的列的位置
    .Cols("所属单位").Move(2)
    .Cols("部门类型").Move(3)
    .Cols("部门").Move(4)
    .Cols("利润_本月").Move(5)
    .Cols("利润_累计").Move(6)
    .Cols(dic("主营业务收入_本月")).Move(7)
    .Cols(dic("主营业务收入_累计")).Move(8)
    .Cols(dic("主营业务成本_本月")).Move(9)
    .Cols(dic("主营业务成本_累计")).Move(10)
    .Cols("营业费用_本月").Move(11)
    .Cols("营业费用_累计").Move(12)
    .Cols(dic("资产减值损失_本月")).Move(13)
    .Cols(dic("资产减值损失_累计")).Move(14)
    .Cols("其他支出_本月").Move(15)
    .Cols("其他支出_累计").Move(16)
End With
With Tables("利润表附表") '设置各列的宽度
    .AutoSizeCols(15) '统一设置统计列的宽度
    .Cols("所属单位").PrintWidth = 20
    .Cols("部门").PrintWidth = 35
    .Cols("部门类型").PrintWidth = 20
End With
With Tables("利润表附表") '隐藏部分列
    .Cols(dic("销售费用_本月")).Visible = False
    .Cols(dic("销售费用_累计")).Visible = False
    .Cols(dic("财务费用_本月")).Visible = False
    .Cols(dic("财务费用_累计")).Visible = False
    .Cols(dic("其他业务收入_本月")).Visible = False
    .Cols(dic("其他业务收入_累计")).Visible = False
    .Cols(dic("其他业务成本_本月")).Visible = False
    .Cols(dic("其他业务成本_累计")).Visible = False
    .Cols(dic("营业外收入_本月")).Visible = False
    .Cols(dic("营业外收入_累计")).Visible = False
    .Cols(dic("营业外支出_本月")).Visible = False
    .Cols(dic("营业外支出_累计")).Visible = False
End With
Dim t As Table = Tables("利润表附表")
Dim g As Subtotalgroup '以下为设置自定义汇总模式,b.Subtotal = True 不适用通过表达式生成的列
Dim cs As String = ""
For Each c As Col In Tables("利润表附表").cols
    If c.IsNumeric AndAlso c.Name <> "年" AndAlso c.Name <> "月" Then
        cs &= c.name & ","
    End If
Next
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = False

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "部门类型"
g.TotalOn = cs.trim(",")
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = cs.trim(",")
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
Dim r As Row
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup Then
    r(dic("主营业务收入_累计")) = 0
    r(dic("主营业务成本_累计")) = 0
    r("营业费用_累计") = 0
    r(dic("资产减值损失_累计")) = 0
    r("其他支出_累计") = 0
    r("利润_累计") = 0
    End If
Next

MainTable = Tables("利润表附表") '打开生成的统计表
CurrentTable.Cols.Frozen = 5 '冻结前四列

DataTables("利润表附表").SysStyles("Subtotal0").BackColor = Color.pink '设置报表样式
DataTables("利润表附表").SysStyles("Subtotal0").FontBold = True
DataTables("利润表附表").SysStyles("GrandTotal").FontBold = True


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 15:18:00 [显示全部帖子]

是。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 16:50:00 [显示全部帖子]

 

Dim jb As New SQLJoinTableBuilder("利润表附表","部门损益总账")
jb.AddTable("部门损益总账","部门名称","部门档案","部门名称",JoinModeEnum.inner) '添加统计表
jb.AddTable("部门损益总账","科目编号","科目档案","科目编码",JoinModeEnum.inner) '添加统计表
jb.AddCols("{部门档案}.所属单位", "部门类型", "所属日期", "上级部门", "一级科目","借方发生")
jb.Build
Dim dt1 As DataTable = DataTables("部门档案")
Dim dt2 As DataTable = DataTables("部门损益总账")
Dim dt3 As DataTable = DataTables("利润表附表")
Dim dt4 As DataTable = DataTables("科目档案")
'dt3.DataRows.Clear
Dim kms As List(Of String) = dt3.GetValues("一级科目")
Dim min As Date = dt2.Compute("min(所属日期)")
Dim max As Date = dt2.Compute("max(所属日期)")
For Each dr As DataRow In dt1.Select("")
    Dim sd As Date = min
    Do While Format(sd, "yyyyMM") <= Format(max, "yyyyMM")
        For Each km As String In kms
            Dim ndr As DataRow = dt3.AddNew
            ndr("一级科目") = km
            ndr("所属单位") = dr("所属单位")
            ndr("部门类型") = dr("部门类型")
            ndr("上级部门") = dr("上级部门")
            ndr("所属日期") = sd
        Next
        sd = sd.AddMonths(1)
    Loop
Next
Dim b As New CrossTableBuilder("利润表附表", dt3)  '定义变量利润表附表,并从部门损益总账统计数据
b.HGroups.AddDef("所属单位") '添加所属单位列用于水平分组
b.HGroups.AddDef("部门类型") '添加部门类型列用于水平分组
b.HGroups.AddDef("上级部门","部门") '添加部门名称列用于水平分组,并将列名称重新命名为部门
b.HGroups.AddDef("所属日期",DateGroupEnum.year,"年")
b.HGroups.AddDef("所属日期",DateGroupEnum.month,"月")
b.VGroups.AddDef("一级科目") '添加一级科目名称列用于垂直分组
b.Totals.AddDef("借方发生","本月") '添加借方发生列用于统计
b.Totals.AddDef("借方发生","累计",True) '添加借方发生列用于统计且截止累计金额
b.Decimals = 2 '小数点取0位
b.Build '生成统计表

Dim t3 As Table = Tables("利润表附表")
Dim drs As List(Of DataRow) = t3.DataTable.Select("", "部门,年")
For Each c As Col In t3.Cols
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        Dim by As String = c.name.Replace("_up", "")
        For Each dr As DataRow In drs
            If pdr Is Nothing OrElse dr("部门") <> pdr("部门") OrElse dr("年") <> pdr("年") Then
                dr(c.name) = dr(by)
            Else
                dr(c.name) = dr(by) + pdr(by)
            End If
            pdr = dr
        Next
    End If
Next

Dim dic As new Dictionary(of String, String) '循环每一列,把标题和列名存储在字典里,然后引用,哪里需要某列的列名,就直接引用标题,如dic("标题名")
For Each c As Col  In Tables("利润表附表").cols
    dic.add(c.Caption, c.name)
Next

If dic.ContainsKey("销售费用_本月") = False Then
    DataTables("利润表附表").dataCols.add("销售费用_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("销售费用_累计", Gettype(Double))
    dic.add("销售费用_本月", "销售费用_本月")
    dic.add("销售费用_累计", "销售费用_累计")
End If
If dic.ContainsKey("财务费用_本月") = False Then
    DataTables("利润表附表").dataCols.add("财务费用_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("财务费用_累计", Gettype(Double))
    dic.add("财务费用_本月", "财务费用_本月")
    dic.add("财务费用_累计", "财务费用_累计")
End If
If dic.ContainsKey("其他业务成本_本月") = False Then
    DataTables("利润表附表").dataCols.add("其他业务成本_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("其他业务成本_累计", Gettype(Double))
    dic.add("其他业务成本_本月", "其他业务成本_本月")
    dic.add("其他业务成本_累计", "其他业务成本_累计")
End If
If dic.ContainsKey("营业外支出_本月") = False Then
    DataTables("利润表附表").dataCols.add("营业外支出_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("营业外支出_累计", Gettype(Double))
    dic.add("营业外支出_本月", "营业外支出_本月")
    dic.add("营业外支出_累计", "营业外支出_累计")
End If
If dic.ContainsKey("其他业务收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("其他业务收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("其他业务收入_累计", Gettype(Double))
    dic.add("其他业务收入_本月", "其他业务收入_本月")
    dic.add("其他业务收入_累计", "其他业务收入_累计")
End If
If dic.ContainsKey("营业外收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("营业外收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("营业外收入_累计", Gettype(Double))
    dic.add("营业外收入_本月", "营业外收入_本月")
    dic.add("营业外收入_累计", "营业外收入_累计")
End If
If dic.ContainsKey("主营业务收入_本月") = False Then
    DataTables("利润表附表").dataCols.add("主营业务收入_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("主营业务收入_累计", Gettype(Double))
    dic.add("主营业务收入_本月", "主营业务收入_本月")
    dic.add("主营业务收入_累计", "主营业务收入_累计")
End If
If dic.ContainsKey("主营业务成本_本月") = False Then
    DataTables("利润表附表").dataCols.add("主营业务成本_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("主营业务成本_累计", Gettype(Double))
    dic.add("主营业务成本_本月", "主营业务成本_本月")
    dic.add("主营业务成本_累计", "主营业务成本_累计")
End If
If dic.ContainsKey("营业费用_本月") = False Then
    dic.add("营业费用_本月", "营业费用_本月")
    dic.add("营业费用_累计", "营业费用_累计")
End If
If dic.ContainsKey("资产减值损失_本月") = False Then
    DataTables("利润表附表").dataCols.add("资产减值损失_本月", Gettype(Double))
    DataTables("利润表附表").dataCols.add("资产减值损失_累计", Gettype(Double))
    dic.add("资产减值损失_本月", "资产减值损失_本月")
    dic.add("资产减值损失_累计", "资产减值损失_累计")
End If
If dic.ContainsKey("其他支出_本月") = False Then
    dic.add("其他支出_本月", "其他支出_本月")
    dic.add("其他支出_累计", "其他支出_累计")
End If

DataTables("利润表附表").dataCols.add("营业费用_本月", Gettype(Double), "isnull(" & dic("销售费用_本月") & ",0)+isnull(" & dic("财务费用_本月") & ",0)") '通过Add方法,动态增加临时列,并给临时列设置表达式,表达式引用字典的方式同直接引用有所区别
DataTables("利润表附表").dataCols.add("营业费用_累计", Gettype(Double), "isnull(" & dic("销售费用_累计") & ",0)+isnull(" & dic("财务费用_累计") & ",0)")
DataTables("利润表附表").dataCols.add("其他支出_本月", Gettype(Double), "isnull(" & dic("其他业务成本_本月") & ",0)+isnull(" & dic("营业外支出_本月") & ",0)-isnull(" & dic("其他业务收入_本月") & ",0)-isnull(" & dic("营业外收入_本月") & ",0)")
DataTables("利润表附表").dataCols.add("其他支出_累计", Gettype(Double), "isnull(" & dic("其他业务成本_累计") & ",0)+isnull(" & dic("营业外支出_累计") & ",0)-isnull(" & dic("其他业务收入_累计") & ",0)-isnull(" & dic("营业外收入_累计") & ",0)")
DataTables("利润表附表").dataCols.add("利润_本月", Gettype(Double), "isnull(" & dic("主营业务收入_本月") & ",0)-isnull(" & dic("主营业务成本_本月") & ",0)-isnull(" & dic("资产减值损失_本月") & ",0)-[营业费用_本月]-[其他支出_本月]")   
DataTables("利润表附表").dataCols.add("利润_累计", Gettype(Double), "isnull(" & dic("主营业务收入_累计") & ",0)-isnull(" & dic("主营业务成本_累计") & ",0)-isnull(" & dic("资产减值损失_累计") & ",0)-[营业费用_累计]-[其他支出_累计]")
With Tables("利润表附表") '改变统计表的列的位置
    .Cols("所属单位").Move(2)
    .Cols("部门类型").Move(3)
    .Cols("部门").Move(4)
    .Cols("利润_本月").Move(5)
    .Cols("利润_累计").Move(6)
    .Cols(dic("主营业务收入_本月")).Move(7)
    .Cols(dic("主营业务收入_累计")).Move(8)
    .Cols(dic("主营业务成本_本月")).Move(9)
    .Cols(dic("主营业务成本_累计")).Move(10)
    .Cols("营业费用_本月").Move(11)
    .Cols("营业费用_累计").Move(12)
    .Cols(dic("资产减值损失_本月")).Move(13)
    .Cols(dic("资产减值损失_累计")).Move(14)
    .Cols("其他支出_本月").Move(15)
    .Cols("其他支出_累计").Move(16)
End With
With Tables("利润表附表") '设置各列的宽度
    .AutoSizeCols(15) '统一设置统计列的宽度
    .Cols("所属单位").PrintWidth = 20
    .Cols("部门").PrintWidth = 35
    .Cols("部门类型").PrintWidth = 20
End With
With Tables("利润表附表") '隐藏部分列
    .Cols(dic("销售费用_本月")).Visible = False
    .Cols(dic("销售费用_累计")).Visible = False
    .Cols(dic("财务费用_本月")).Visible = False
    .Cols(dic("财务费用_累计")).Visible = False
    .Cols(dic("其他业务收入_本月")).Visible = False
    .Cols(dic("其他业务收入_累计")).Visible = False
    .Cols(dic("其他业务成本_本月")).Visible = False
    .Cols(dic("其他业务成本_累计")).Visible = False
    .Cols(dic("营业外收入_本月")).Visible = False
    .Cols(dic("营业外收入_累计")).Visible = False
    .Cols(dic("营业外支出_本月")).Visible = False
    .Cols(dic("营业外支出_累计")).Visible = False
End With
Dim t As Table = Tables("利润表附表")
Dim g As Subtotalgroup '以下为设置自定义汇总模式,b.Subtotal = True 不适用通过表达式生成的列
Dim cs As String = ""
For Each c As Col In Tables("利润表附表").cols
    If c.IsNumeric AndAlso c.Name <> "年" AndAlso c.Name <> "月" Then
        cs &= c.name & ","
    End If
Next
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = False

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "部门类型"
g.TotalOn = cs.trim(",")
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = cs.trim(",")
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
Dim r As Row
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup Then
    r(dic("主营业务收入_累计")) = 0
    r(dic("主营业务成本_累计")) = 0
    r("营业费用_累计") = 0
    r(dic("资产减值损失_累计")) = 0
    r("其他支出_累计") = 0
    r("利润_累计") = 0
    End If
Next

MainTable = Tables("利润表附表") '打开生成的统计表
CurrentTable.Cols.Frozen = 5 '冻结前四列

DataTables("利润表附表").SysStyles("Subtotal0").BackColor = Color.pink '设置报表样式
DataTables("利润表附表").SysStyles("Subtotal0").FontBold = True
DataTables("利润表附表").SysStyles("GrandTotal").FontBold = True
 


 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 18:10:00 [显示全部帖子]

报什么错?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/14 9:39:00 [显示全部帖子]

Dim dt2 As DataTable = DataTables("部门损益总账")
Dim kms As List(of String())
kms = dt2.GetValues("所属单位|科目编号|科目名称|部门名称")
For Each km As String() In kms
    Dim s  = String.Format("所属单位='{0}' and 科目编号='{1}' and 科目名称='{2}' and 部门名称='{3}'",km(0),km(1),km(2),km(3))
   
    Dim min As Date = dt2.Compute("min(所属日期)", s)
    Dim max As Date = dt2.Compute("max(所属日期)")
    Dim sd As Date = min
    Do While Format(sd, "yyyyMM") <= Format(max, "yyyyMM")
        s  = String.Format("所属单位='{0}' and 科目编号='{1}' and 科目名称='{2}' and 部门名称='{3}' and substring(convert(所属日期,'System.String'),1,7) = substring(convert(#{4}#,'System.String'),1,7)",km(0),km(1),km(2),km(3),sd)
        If dt2.Find(s) Is Nothing Then
            Dim ndr As DataRow = dt2.AddNew
            ndr("所属单位") = km(0)
            ndr("科目编号") = km(1)
            ndr("科目名称") = km(2)
            ndr("部门名称") = km(3)
            ndr("所属日期") = sd
        End If
        sd = sd.AddMonths(1)
    Loop
   
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 9:56:00 [显示全部帖子]

是不是新增行都有问题?你自己能否新增行并赋值?

 

Dim ndr As DataRow = DataTables("部门损益总账").AddNew
ndr("所属单位") = 1
ndr("科目编号") = 2
ndr("科目名称") = 3
ndr("部门名称") = 4
ndr("所属日期") = Date.today


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 10:15:00 [显示全部帖子]

那就加入msgbox看为什么不弹出。代码没问题。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 10:23:00 [显示全部帖子]

填充的代码就是根据当前表查询的啊。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 10:39:00 [显示全部帖子]

代码,没,问,题。填充就是根据你当前表的数据填充的啊,有可能根本就不需要填充啊。

 回到顶部
总数 13 1 2 下一页