以文本方式查看主题 - 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=196568) |
-- 作者:zcgmxf -- 发布时间:2025/5/13 22:08:00 -- [求助] 专业报表换页 老师,希望班次不同时强制换页,水平有限,弄不好。请指教!谢谢 Dim tb As Table = Tables("学生体检信息导入_table1") Dim ColNames As String() = New String() {"班次", "姓名", "体检编号"} Dim doc As New PrintDoc \'定义一个新报表 \'添加标题 Dim rt1 As New prt.RenderText \'定义一个文本对象 Dim ra As New prt.RenderArea rt1.Text = tb.Current("班次") & "班体检名单" rt1.Style.Font = New Font("宋体", 14, FontStyle.Bold) \'设置标题字体 rt1.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'标题水平居中 rt1.Height = 8 \'高度等于容器高度 ra.Children.Add(rt1) \'加入到容器中 doc.Body.Children.Add(ra) \'将容器加入到报表 Dim rt As New prt.RenderTable \'定义一个新表格 rt.Cols.Count = 3 \'设置列数 \' 设置表格行高和列宽 For i As Integer = 0 To tb.Rows.Count - 1 rt.Rows(i).Height = 8 \'设置行高 Next If tb.Rows.Count > 30 Then rt.Cols(0).Width = 53 \'设置列宽 rt.Cols(1).Width = 20 \'设置列宽 rt.Cols(2).Width = 10 \'设置列宽 \' 设置表格样式 rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 rt.Width = "Auto" \'表格宽度为自动 rt.Style.Font = New Font("宋体", 11) \'设置表格字体 \' 设置分栏 doc.Columns.Add() \'第一栏 doc.Columns.Add() \'第二栏 Doc.Columns(0).Width = 80 \'第一栏的宽度为60毫米 Doc.Columns(1).Width = 80 \'第一栏的宽度为60毫米 Doc.Columns(0).Spacing = 10 \'栏间距1毫米 End If \' 强制换页 Dim drs As List(Of DataRow) = tb.DataTable.Select("班次 is not null") For ii As Integer = 1 To drs.Count - 1 If drs(ii)("班次") <> drs(ii - 1)("班次") Then Dim rm As New prt.RenderText \'定义一个文本对象y rm.BreakAfter = prt.BreakEnum.Column \'打印之后另起一栏 doc.Body.Children.Add(rm) \'加入到报表中 End If Next \' 逐列设置和填入内容 For c As Integer = 0 To ColNames.Length - 1 rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 For r As Integer = 0 To tb.Rows.Count - 1 \'开始填入该列内容 rt.Cells(r, c).Text = tb.Rows(r)(ColNames(c)) Next Next \' 设置表格样式 rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) \'灰色网格线 rt.CellStyle.Spacing.All = 0.5 \'单元格内距设为0.5毫米 rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'第一行内容水平居中 \' rt.RowGroups(0, 1).Header = prt.TableHeaderEnum.All \'利用行组,将第一行设为表头 doc.PageSetting.LeftMargin = 15 \'设置左边距 doc.PageSetting.RightMargin = 15\'设置右边距 doc.PageSetting.TopMargin = 15 \'设置上边距 doc.PageSetting.BottomMargin = 15 \'设置上边距 doc.Body.Children.Add(rt) \' 将表格加入到报表 doc.Preview() \' 预览报表 |
-- 作者:有点蓝 -- 发布时间:2025/5/13 23:13:00 -- 每个班次要单独一个表格,类似这种:http://www.foxtable.com/webhelp/topics/2409.htm 具体请上传实例测试
|