Foxtable(狐表)用户栏目专家坐堂 → 求助


  共有1492人关注过本帖树形打印复制链接

主题:求助

帅哥哟,离线,有人找我吗?
168448704
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:47 积分:449 威望:0 精华:0 注册:2013/7/7 20:49:00
求助  发帖心情 Post By:2017/11/24 0:53:00 [只看该作者]

本人专业报表中编写代码如下, 绑定关联表,现在要求关联表每页打印15行后换页,代码该如何完善,编写的代码如下:
'1.页面设置
Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.PaperKind = 9 '纸张类型改为A4
Doc.PageSetting.LeftMargin = 25 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置上边距
Doc.PageSetting.BottomMargin = 15 '设置下边距
Dim tbl As Table = Tables("案卷目录")'指定表和打印范围从当前行到选定行
For i As Integer = tbl.TopRow To tbl.BottomRow 
    Dim rw As Row = tbl.Rows(i)
tbl.Position = i
'2.表头设计
Dim rx As New prt.RenderText '定义一个文本对象用于加表头
Dim ra As New prt.RenderArea '定义一个容器
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
rx.text = "卷内目录" '加入标题
rx.Style.Font = New Font("仿宋", 22, FontStyle.Bold) '设置字体为仿宋22号(二号)加粗
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Padding.Top = 1 '上边距1毫米
rx.Style.Spacing.Bottom = 1 '和下面的对象(表格)距离1毫米
ra.Children.Add(rx) '加入到容器中
'3.表格设计
Dim rt As New prt.RenderTable() '定义一个表格对象
rt.Style.GridLines.All = New Prt.LineDef(0.5, Color.Black) '定义外外边框线为0.5
rt.Style.GridLines.Horz = new Prt.LineDef(0.25,Color. Black) '定义内水平网格线为0.25
rt.Style.GridLines.Vert = new Prt.LineDef(0.25,Color. Black) '定义内竖直网格线为0.25
'设置表格行数?列数?行高?列宽及网格线及字体
rt.Width = 170 '表宽为170毫米
rt.Height = 7 '表高为7毫米
rt.Cols.Count = 7 '设置列数为4
rt.Rows.Count = 1 '设置行数为1
'设置字体及对齐方式
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.Font = New Font("仿宋", 12) '12号仿宋
rt.Cols(0).Width = 8 '设置前列的宽度
rt.Cols(1).Width = 20
rt.Cols(2).Width = 22
rt.Cols(4).Width = 22
rt.Cols(5).Width = 12
rt.Cols(6).Width = 12
'4副表头页眉?页脚设置
'副表头设计
rt.Rows(0).Style.GridLines.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线
rt.Cells(0,0).SpanCols = 7 '合并第一行全部单元格,用于显示副标题
rt.Cells(0,0).text = " 档  号: GL." & rw("档号") '通过左边空格数量来调整副标题位置
rt.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Left '副标题内容居左
rt.Rows(0).Height = 7 '设置第一行的高度,拉开和表格主体的距离.
ra.Children.Add(rt) '将表格对象加入到容器中
'卷内目录
rt = New prt.RenderTable '定义一个新的表格对象
rt.Style.GridLines.All = New Prt.LineDef(0.5, Color.Black) '定义外边框线为0.5
rt.Style.GridLines.Horz = new Prt.LineDef(0.25,Color. Black) '定义内水平网格线为0.25
rt.Style.GridLines.Vert = new Prt.LineDef(0.25,Color. Black) '定义内竖直网格线为0.0.25
rt.Style.Font = New Font("仿宋", 12) '设置字体为仿宋12号
rt.Style.FontBold = False '字体不加粗
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Cols(3).Style.TextAlignHorz = prt.AlignHorzEnum.Left '第四列左对齐
rt.Cells(0,3).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Cols(3).CellStyle.Spacing.Left = 1 '文件题名列单元格左内边距设为1毫米
rt.Cols(3).Style.LineSpacing = 125 '简要描述1.2倍行距
rt.Width = 170 '表宽为170毫米
rt.Height = 245 '表高为110毫米
rt.Cols.Count = 7 '设置列数为4列
rt.Rows.Count = 16 '设置行数为16行
rt.Cols(0).Width = 8 '设置前列的宽度
rt.Cols(1).Width = 20
rt.Cols(2).Width = 22
rt.Cols(4).Width = 22
rt.Cols(5).Width = 12
rt.Cols(6).Width = 12
rt.Cells(0,0).Text = "序号"
rt.Cells(0,1).Text = "文件编号"
rt.Cells(0,2).Text = "责任者"
rt.Cells(0,3).Text = "文件题名"
rt.Cells(0,4).Text = "日期"
rt.Cells(0,5).Text = "页次"
rt.Cells(0,6).Text = "备注"
With Tables("案卷目录.卷内目录")
    For r As Integer = 0 To .Rows.Count - 1  '遍历关联表每一行
        rt.Cells(r+1,0).Text = .rows(r)("序号")
        rt.Cells(r+1,1).Text = .rows(r)("文件编号")
        rt.Cells(r+1,2).Text = .rows(r)("责任者")
        rt.Cells(r+1,3).Text = .rows(r)("文件题名")
        rt.Cells(r+1,4).Text = .rows(r)("日期")
        rt.Cells(r+1,5).Text = .rows(r)("页次")
        rt.Cells(r+1,6).Text = .rows(r)("备注") 
Next 
End With
ra.Children.Add(rt) '加入到容器中
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/24 9:32:00 [只看该作者]

每一页,生成一个table,才行的,参考

 

http://www.foxtable.com/webhelp/scr/2241.htm

 

如果不会改,上传具体项目测试。


 回到顶部