以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]分组打印可否分组保存各自为图片?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84759)

--  作者:joe_xgp
--  发布时间:2016/5/10 9:10:00
--  [求助]分组打印可否分组保存各自为图片?

查看和学习专业报表的分组打印的例子,例子是讲客户分组打印,可否分组以客户名保存为各自的jpg图片格式?

 

请高手老师指教! 非常感谢!

 

 

打印客户表,按地区分组打印,代码如下:

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()


--  作者:大红袍
--  发布时间:2016/5/10 10:02:00
--  

参考

 


Dim tbl As Table = Tables("客户")
Dim Regions As List(Of String) = tbl.DataTable.GetValues("地区")
For Each Region As String In Regions
    Dim doc As New PrintDoc
    Dim rt As Prt.RenderTable
    Dim rx As prt.RenderText
    doc.Pagesetting.LandScape = True
    Dim Rows As List(Of DataRow)
    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)
    doc.preview()
Next


--  作者:大红袍
--  发布时间:2016/5/10 10:02:00
--  

 

http://www.foxtable.com/help/topics/2450.htm

 


--  作者:joe_xgp
--  发布时间:2016/5/10 10:08:00
--  

非常感激大红袍老师的不厌其烦的回复!太感激了!!!

 

感谢老师指点!!!