以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]标签分组打印  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86933)

--  作者:xietan417
--  发布时间:2016/6/29 10:53:00
--  [求助]标签分组打印
Dim doc As New PrintDoc
doc.PageSetting.Width = 102 \'纸张宽度为100毫米
doc.PageSetting.Height = 75 \'纸张高度为120毫米

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("PLTNO") 
doc.Pagesetting.LandScape = False
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 = "ITEM NO.:" & e.Form.Controls("name").text
    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 \'内容距离网格线1毫米
    rt.Style.Font = tbl.Font
    Rows = tbl.DataTable.Select("[PLTNO] = \'" & Region & "\'")
    For c As Integer = 1 To tbl.Cols.Count - 1   \'从第二列起
        rt.Cells(1,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
rx = New prt.RenderText
rx.Style.FontBold = True
rx.Style.Spacing.Top = 3
rx.Text = "C/NO.:" & Region
rx.Style.TextAlignHorz = prt.AlignHorzEnum.left
doc.Body.Children.Add(rx)

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


doc.preview()



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


本想做个标签分组打印,以图上数据,本应只打印两页的标签,却分了7页打!求指点!


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




[此贴子已经被作者于2016/6/29 10:53:31编辑过]

--  作者:大红袍
--  发布时间:2016/6/29 11:05:00
--  

加上代码

 

doc.PageSetting.LeftMargin = 10
doc.PageSetting.RightMargin = 10
doc.PageSetting.topMargin = 10
doc.PageSetting.BottomMargin = 10


--  作者:xietan417
--  发布时间:2016/6/29 11:35:00
--  
我要的时候分页效果啊!C/NO.:2的数据应该在第二页才行!我要打印出来的!
图片点击可在新窗口打开查看此主题相关图片如下:x1.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/6/29 11:38:00
--  

分页,加上代码

 

 rt.BreakAfter = prt.BreakEnum.Page


--  作者:xietan417
--  发布时间:2016/6/29 11:45:00
--  
OK!搞定!这个专业报表的代码,算是啃完了!学习学习!谢谢!