以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表-分组打印(按月分组)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47687)

--  作者:mamuaiqing
--  发布时间:2014/3/14 22:59:00
--  专业报表-分组打印(按月分组)
分组打印的代码如下: 

Dim doc As New PrintDoc
Dim
rt As Prt.RenderTable
Dim
rx As prt.RenderText
Dim
tbl As Table = Tables("客户")
Dim
Rows As List(Of DataRow)
Dim
Regions As List(Of String) = tbl.DataTable.GetValues("地区")
doc
.Pagesetting.LandScape = True
For Each
Region As String In Regions
   
rx = New prt.RenderText
   
rx.Style.FontSize = 14
   
rx.Style.FontBold = True
    rx
.Style.Spacing.Bottom =
2
   
rx.Text = "地区: " & Region
   
doc.Body.Children.Add(rx)
    rt
= New prt.
RenderTable
   
rt.Style.Font = Tables("客户").Font
   
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
   
rt.Style.GridLines.All = New prt.LineDef(0.3,Color.LightGray)
    rt
.Style.Spacing.Bottom =
5
   
rt.CellStyle.Spacing.All = 1
    rt.Style.Font = tbl.Font
    Rows = tbl.Datatable.Select("[地区] = \'" & Region & "\'")
    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
        For
r As integer = 0 To Rows.Count -1
            rt
.Cells(r + 1, c).Text = rows(r)(tbl.Cols(c).Name
)
        Next
    Next

    rt.RowGroups(
0,1).Header = prt.TableHeaderEnum.All
   
doc.Body.Children.Add(rt)
Next

doc
.preview()

如果要按日期中的"月"分组的话,怎么获得日期中不重复的"月"?又怎么按照不同月份生成报表?


--  作者:Bin
--  发布时间:2014/3/15 9:24:00
--  
上例子.
--  作者:mamuaiqing
--  发布时间:2014/3/15 12:52:00
--  
就拿专业报表文件中的"订单"表为例,按日期中的月份进行分组,打印出每个月订单明细
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表.foxdb


--  作者:Bin
--  发布时间:2014/3/15 14:19:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表.foxdb


--  作者:mamuaiqing
--  发布时间:2014/3/15 14:42:00
--  

原来是增加了年月列,感谢BIN老师的帮助

 

相对数据绑定中的"按月分组统计"这章讲的,Fields!日期.Value.Month,绑定数据可以获得日期中的月份更简单点,但少了其他东西,再研究研究