以文本方式查看主题

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

--  作者:xxfoxtable
--  发布时间:2019/12/5 2:02:00
--  汇总统计问题

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

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

由图1生成图2报表,怎么生成?帮助中分组字段只能是一个,现在分组字段是二个房间号和品名,不知道怎么做了


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

[此贴子已经被作者于2019/12/5 2:03:14编辑过]

--  作者:有点蓝
--  发布时间:2019/12/5 8:42:00
--  
参考:http://www.foxtable.com/webhelp/topics/1964.htm
--  作者:xxfoxtable
--  发布时间:2019/12/5 8:56:00
--  
 参考了,不是一个类型的,品名是变动的,不是静态的 ,如果品名静态的,就和那个一样了
[此贴子已经被作者于2019/12/5 8:57:05编辑过]

--  作者:有点蓝
--  发布时间:2019/12/5 9:12:00
--  
没有区别,既然知道那就改为平时会使用的动态用法。帮助仅仅是帮助,帮助不是条条框框

Dim t As Table = Tables("表A")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
g = New Subtotalgroup
g.GroupOn = "房间号"
g.Caption = "{0}"
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 \'如果是分组行
        Dim f As String = "房间号 = \'" & r("房间号") & "\'"
        Dim v As String = ""
        For Each pm As String In DataTables("表A").GetValues("品名",f)
            v = v & "," &  pm & " :" & t.Compute("sum(数量)",f & " and 品名=\'" & pm & "\'")
        Next
        r("房间号") = f & v
    End If
Next

--  作者:xxfoxtable
--  发布时间:2019/12/5 9:15:00
--  
 我们不是很专业,请老师谅解
--  作者:有点蓝
--  发布时间:2019/12/5 9:16:00
--  
这个不是专业不专业的问题,是解决问题的思维、思路。代码都是死的,脑子是活的....
[此贴子已经被作者于2019/12/5 9:16:04编辑过]

--  作者:xxfoxtable
--  发布时间:2019/12/5 11:34:00
--  

Dim cnt As  Integer
Dim tbl As Table =  Tables("表A")
Dim drs As  List(Of DataRow)
Dim pds As  List(Of String) = tbl.DataTable.GetValues("")
rt.Style.Font = New Font("宋体", 11, FontStyle.Bold) \'设置字体
rt.Style.GridLines.All = New prt.LineDef(0.3,Color.black)
rt.CellStyle.Spacing.All = 1
rt.Style.Font = tbl.Font
For c As Integer = 0 To tbl.Cols.Count - 1  \'生成列标题
    rt.Cells(0,c).Text = tbl.Cols(c).Name
    rt.Cols(c).Width = tbl.Cols(c).PrintWidth
    rt.Style.TextAlignVert = prt.AlignHorzEnum.Center
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
Next
For Each pd As String In pds \'分产品打印
    For Each dr As DataRow In drs \'逐行打印此产品的订单
        cnt = rt.Rows.Count


            For c As Integer = 0 To tbl.Cols.Count - 1
                rt.Cells(cnt, c).Text = dr(tbl.Cols(c).Name)
            Next
    Next
    cnt = rt.Rows.Count
Next

 

这样的报表,能用这种方法打印吗?如果能,怎么改一下?


--  作者:有点蓝
--  发布时间:2019/12/5 11:46:00
--  

For Each pd As String In pds \'分产品打印
    For Each dr As DataRow In drs \'逐行打印此产品的订单
        cnt = rt.Rows.Count


            For c As Integer = 0 To tbl.Cols.Count - 1
                rt.Cells(cnt, c).Text = dr(tbl.Cols(c).Name)
            Next
    Next
    cnt = rt.Rows.Count

加统计代码?在这里加即可?方法参考上面的用法
Next


--  作者:xxfoxtable
--  发布时间:2019/12/5 11:57:00
--  
 不行,会报错,找不到该列,老师帮忙写一下呗
[此贴子已经被作者于2019/12/5 12:26:30编辑过]

--  作者:有点蓝
--  发布时间:2019/12/5 13:38:00
--  
写了什么代码,贴出来