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)
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.0.25
rt.Style.GridLines.Bottom = new Prt.LineDef(0.25,Color. Black) '定义底网格线为0.0.25
Dim rx As New prt.RenderText '定义一个文本对象用于加表头
Dim ra As New prt.RenderArea '定义一个容器
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止容器因为分页而被垂直分割
'设置页眉
Dim ym As New prt.RenderTable
ym.Cells(0,0).Text = rw("机构名称")
ym.Cells(0,2).Text = "D105-01" '等于表格编码
ym.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left '左页眉左对齐
ym.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right '右页眉右对齐
ym.Style.Borders.Bottom = New prt.LineDef(1, Color.DarkRed) '设置底边框1的宽度,深红色
ym.CellStyle.Spacing.Bottom = 0.5 '底端内容缩进0.5毫米
ym.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
Doc.PageHeader = ym '作为页眉使用
'设置页脚
Dim yj As New prt.RenderTable
yj.Cells(0,0).Text = "本人签名:"
yj.Cells(0,1).Text = "日期: 年 月 日"
yj.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left '左页眉左对齐
yj.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right '右页眉右对齐
yj.CellStyle.Spacing.Top = 0.5 '顶部内容缩进0.5毫米
yj.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
Doc.PageFooter = yj '作为页脚使用
'加入标题
rx.text = "员工履历表"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 18 '大体大小为18磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Padding.Top = 1 '上边距1毫米
rx.Style.Spacing.Bottom = 0 '和下面的对象(表格)距离1毫米
ra.Children.Add(rx) '加入到容器中
'设置副标题
rt.Rows(0).Style.GridLines.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线
rt.Cells(0,0).SpanCols = 9 '合并第一行全部单元格,用于显示副标题
rt.Cells(0,0).text = " NO:JD0302-" & rw("工号") '通过左边空格数量来调整副标题位置
rt.Cells(0,0).Style.Font = New Font("宋体", 11, FontStyle.Bold) '副标题11号宋体加粗(五号)
rt.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Left '副标题内容居左
rt.Rows(0).Style.GridLines.Bottom = New prt.Linedef(0.5,Color. Black) '恢复第一行底端的网格线
rt.Rows(0).Height = 5 '设置第一行的高度,拉开和表格主体的距离
'设置表格行数?列数?行高?列宽及网格线及字体
rt.Width = 170 '表宽为170毫米
rt.Height = 86 '表高为94毫米
rt.Rows.Count = 9 '设置行数为9
rt.Cols.Count = 9 '设置列数为8
rt.Cells(1,5).SpanCols = 3 ' 横向合并
rt.Cells(2,5).SpanCols = 3
rt.Cells(3,0).SpanCols = 2
rt.Cells(3,2).SpanCols = 6
rt.Cells(4,0).SpanCols = 2
rt.Cells(4,2).SpanCols = 2
rt.Cells(4,5).SpanCols = 3
rt.Cells(5,0).SpanCols = 2
rt.Cells(5,2).SpanCols = 2
rt.Cells(5,5).SpanCols = 2
rt.Cells(6,2).SpanCols = 3
rt.Cells(6,7).SpanCols = 2
rt.Cells(7,2).SpanCols = 3
rt.Cells(7,7).SpanCols = 2
rt.Cells(8,2).SpanCols = 3
rt.Cells(8,7).SpanCols = 2
rt.Cells(1,8).SpanRows = 4 '竖向合并
rt.Cells(6,0).SpanRows = 3
rt.Cells(6,5).SpanRows = 3
'设置字体及对齐方式
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Cells(3,2).Style.TextAlignHorz = prt.AlignHorzEnum.Left '家庭住址直居中靠左
rt.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
rt.Cols(0).Width = 12 '设置前列的宽度
rt.Cols(1).Width = 20
rt.Cols(2).Width = 20
rt.Cols(3).Width = 15
rt.Cols(4).Width = 20
rt.Cols(5).Width = 12
rt.Cols(6).Width = 20
rt.Cols(7).Width = 20
'下面很简单,指定每一个单元格的内容
rt.Cells(1,0).Text= "姓名"
rt.Cells(1,1).Text = rw("姓名")
rt.Cells(1,2).Text= "性别"
rt.Cells(1,3).Text = rw("性别")
rt.Cells(1,4).Text= "出生年月"
rt.Cells(1,5).Text = Format(rw("出生日期"),"yyyy年MM月")
Dim fp As String = ProjectPath & "Attachments/" & rw("照片")
msgbox(fp)
rt.Cells(1,8).Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
rt.Cells(1,8).Image = GetImage(fp)
rt.Cells(2,0).Text= "民族"
rt.Cells(2,1).Text = rw("民族")
rt.Cells(2,2).Text= "文化程度"
rt.Cells(2,3).Text = rw("文化程度")
rt.Cells(2,4).Text= "身份证号"
rt.Cells(2,5).Text = rw("身份证号")
rt.Cells(3,0).Text= "家庭住址"
rt.Cells(3,2).Text = rw("家庭住址")
rt.Cells(4,0).Text= "职称或技术等级"
rt.Cells(4,2).Text = rw("技术职称")
rt.Cells(4,4).Text= "技术专长"
rt.Cells(4,5).Text = rw("技术专长")
rt.Cells(5,0).Text= "入职时间"
rt.Cells(5,2).Text = Format(rw("入职时间"),"yyyy年MM月dd日")
rt.Cells(5,4).Text= "任职部门"
rt.Cells(5,5).Text = rw("所在部门")
rt.Cells(5,7).Text= "担任职务"
rt.Cells(5,8).Text = rw("担任职务")
rt.Cells(6,0).Text= "职业资格"
rt.Cells(6,1).Text= "证书名称"
rt.Cells(6,2).Text = rw("执业证书")
rt.Cells(7,1).Text= "发证部门"
rt.Cells(7,2).Text = rw("发证部门")
rt.Cells(8,1).Text= "证书编号"
rt.Cells(8,2).Text = rw("证书编号")
rt.Cells(6,5).Text= "学历情况"
rt.Cells(6,6).Text= "毕业院校"
rt.Cells(6,7).Text = rw("毕业院校")
rt.Cells(7,6).Text= "毕业时间"
rt.Cells(7,7).Text = Format(rw("毕业时间"),"yyyy年MM月")
rt.Cells(8,6).Text= "所学专业"
rt.Cells(8,7).Text = rw("所学专业")
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.GridLines.Top = new Prt.LineDef("0mm", Color.white) '定义顶网格线为0
rt.Style.GridLines.Bottom = new Prt.LineDef(0.25,Color. Black) '定义底网格线为0.25
rt.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Left '第三列左对齐
rt.Cells(0,2).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行第三列水平居中
rt.Width = 170 '表宽为170毫米
rt.Height = 40 '表高为40毫米
rt.Cols.Count = 4 '设置列数为4列
rt.Rows.Count = 4 '设置行数为10行
rt.Cells(0,0).SpanRows = 4 '第一列向下合并
rt.Cols(0).Width = 12 '设置前列的宽度
rt.Cols(1).Width = 45
rt.Cols(2).Width = 80
rt.Cells(0,0).Text = "培训简历"
rt.Cells(0,1).Text = "起止年限"
rt.Cells(0,2).Text = "培训内容"
rt.Cells(0,3).Text = "证书号"
With Tables("人事档案.培训简历")
For r As Integer = 0 To .Rows.Count - 1 '遍历关联表每一行
rt.Cells(r+1,1).Text = .rows(r)("起止年限")
rt.Cells(r+1,2).Text = .rows(r)("培训内容")
rt.Cells(r+1,3).Text = .rows(r)("证书号")
Next
End With
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.GridLines.Top = new Prt.LineDef("0mm", Color.white) '定义顶网格线为0
rt.Style.GridLines.Bottom = new Prt.LineDef(0.25,Color. Black) '定义底网格线为0.25
rt.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Left '第三列左对齐
rt.Cells(0,2).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行第三列水平居中
rt.Width = 170 '表宽为170毫米
rt.Height = 110 '表高为110毫米
rt.Cols.Count = 4 '设置列数为4列
rt.Rows.Count = 11 '设置行数为10行
rt.Cells(0,0).SpanRows = 11 '第一列向下合并
rt.Cols(0).Width = 12 '设置前列的宽度
rt.Cols(1).Width = 45
rt.Cols(2).Width = 80
rt.Cells(0,0).Text = "工作简历"
rt.Cells(0,1).Text = "起止年限"
rt.Cells(0,2).Text = "单位及岗位"
rt.Cells(0,3).Text = "表彰简历"
With Tables("人事档案.工作简历")
For r As Integer = 0 To .Rows.Count - 1 '遍历关联表每一行
rt.Cells(r+1,1).Text = .rows(r)("起止年限")
rt.Cells(r+1,2).Text = .rows(r)("单位及岗位")
rt.Cells(r+1,3).Text = .rows(r)("表彰简历")
Next
End With
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.GridLines.Top = new Prt.LineDef("0mm", Color.white) '定义顶网格线为0
rt.Style.GridLines.Bottom = new Prt.LineDef(0.5,Color. Black) '定义底网格线为0.5
rt.Style.Font = New Font("宋体", 11) '设置字体为宋体11号
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.RowGroups(0,1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
rt.Cells(0,1).Style.TextAlignHorz = prt.AlignHorzEnum.Left '备注内容垂直居中靠左
rt.Width = 170 '表宽为170毫米
rt.Height = 8 '表高为6毫米
rt.Cols.Count = 2 '设置列数为2列
rt.Rows.Count = 1 '设置行数为1行
rt.Cols(0).Width = 12 '设置前列的宽度
rt.Cells(0,0).Text = "备注"
rt.Cells(0,1).Text = rw("备注")
ra.Children.Add(rt) '加入到容器中
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表