以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  报表循环打印不成功,应该怎么改呢?谢谢帮助  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=161042)

--  作者:erdbeer
--  发布时间:2021/3/3 22:21:00
--  报表循环打印不成功,应该怎么改呢?谢谢帮助
  Dim doc As New PrintDoc() \'定义一个报表
  doc.PageSetting.Width = 76 \'纸张宽度为76毫米
  doc.PageSetting.Height = 106 \'纸张高度为102毫米
  doc.PageSetting.LeftMargin = 2 \'设置左边距
  doc.PageSetting.TopMargin = 1 \'设置上边距
 \' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 报表页面设定
  Dim rt As New prt.RenderTable()  \'定义一个表格对象
  rt.Style.GridLines.All = New prt.LineDef  \'将网格线类型设为默认类型
  rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'避免垂直换页的时候,表格被分割成两部分
  rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
  rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
  rt.Rows(5).Style.TextAlignVert = prt.AlignVertEnum.Top  \'唯独第6行是备注,内容靠上对齐
  rt.Rows(1).Style.TextAlignVert =prt.AlignHorzEnum.Justify  \'两端对齐
 
  rt.Width = 72   \'表格宽度为 72mm
  rt.Height = 104  \'设置表格的高度 95mm
  rt.Rows.Count = 6 \'设置总行数  0为第一行
  rt.Cols.Count = 8 \'设置总列数  0为第一列
  rt.Rows(0).Height = 20 \'设置第6行的高度为20毫米 
  rt.Rows(1).Height = 12 \'设置第6行的高度为20毫米 
  rt.Rows(2).Height = 20 \'设置第6行的高度为20毫米 
  rt.Rows(3).Height = 14 \'设置第6行的高度为20毫米 
  rt.Rows(4).Height = 22 \'设置第6行的高度为20毫米 
 
  \'设置合并单元格
  rt.Cells(0,0).SpanCols = 8 
  rt.Cells(1,0).SpanCols = 8 
  rt.Cells(2,0).SpanCols = 8 
  rt.Cells(3,0).SpanCols = 4 
  rt.Cells(3,4).SpanCols = 4 
  rt.Cells(4,0).SpanCols = 8 
  rt.Cells(4,1).SpanCols = 7 
  rt.Cells(5,0).SpanCols = 8 
 \' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 报表表格元素设定
  Dim rx As New prt.RenderText \'定义一个文本对象
  Dim ra As New prt.RenderArea  \'定义一个容器
  Dim rm As prt.RenderImage     \'定义一个图片对象
 \' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - -  - - - - - - - 报表基本变量设定
 \' - - - - - - - - - - - - - - - - - - - - - -- - - - -- - - - -- - - - -- - - - - -  - - - - 开始循环
 
  Dim rmk As new prt.RenderEmpty \'定义一个新的空对象
  For i As Integer = 1 To 2    
     Dim rep As New prt.RenderEmpty \'定义一个新的空对象
     rep.BreakBefore = prt.BreakEnum.Page \'打印前换页
     doc.Body.Children.Add(rep ) \'加入到报表中

      ra = rt.Cells(0,0).Area \'引用单元格的容器,第一行
      rx =   New prt.RenderText 
      rx.Text = "感谢帮忙"
      rx.Style.Font = New Font("宋体",26)
      rx.Style.TextIndent = 3    \'缩进
      rx.Style.Spacing.Bottom = 1  \'下间隔
      ra.Children.Add(rx) \'加入文本到RenderArea中

      rx =  New prt.RenderText 
      rx.Text = "0086-xxx-xxxxxxxx"
      rx.Style.Font = New Font("宋体",12)
      rx.Style.TextIndent = 2  \'缩进
      ra.Children.Add(rx) \'加入文本到RenderArea中

      rm = New prt.RenderImage \'创建一个图片
      rm.Image = GetImage("D:\\q.jpg")
      rm.height = 17
      rm.Width = 17
      rm.x = 48
      rm.y = 1
      ra.Children.Add(rm) \'加入文本到RenderArea中
   
      ra = rt.Cells(1,0).Area \'引用单元格的容器,第一行
      rx =   New prt.RenderText 
      rx.Text = "感谢帮忙"
      rx.Style.Font = New Font("宋体",18)
      rx.Style.TextIndent = 3    \'缩进
      ra.Children.Add(rx) \'加入文本到RenderArea中
 
Next

 doc.Body.Children.Add(rt)

doc.Preview() \'预览报表


目标是想要打印两张标签,结果是打印到一张上面了,该怎么修改代码呢?



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


--  作者:有点蓝
--  发布时间:2021/3/4 9:06:00
--  
参考这种:http://www.foxtable.com/webhelp/topics/1239.htm

把生成表格代码放到循环里面