代码:'第一联:标题
Dim rx8 As prt.RenderText
Dim Rows8 As List(Of DataRow)
rx8 = New prt.RenderText
rx8.Style.Font = New Font("宋体", 14)
rx8.Style.Spacing.Bottom = 3
Dim dr As String = e.Form.controls("combobox7").value
rx8.text = dr & vbcrlf & "隐患整改通知单"
rx8.Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题水平居中
doc.Body.Children.Add(rx8)
'增加一个表
Dim rt1 As Prt.RenderTable
rt1 = New prt.RenderTable
rt1.Rows.Count = 3 '设置总行数
rt1.Cols.Count = 4 '设置总列数
rt1.Height = 30 '设置表格的高度
rt1.Style.Font = New Font("宋体", 12)
rt1.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)
'设置第一个表样式
rt1.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt1.Style.Spacing.Bottom = 0 '和下一个资料卡的距离是0毫米
rt1.Style.GridLines.All = New prt.Linedef '设置网格线
rt1.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt1.Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题水平居中
rt1.Cells(0,0).Text= "通知单编号"
rt1.Cells(0,1).Text= e.form.controls("combobox1").value
rt1.Cells(0,2).Text= "检查时间"
rt1.Cells(0,3).Text= e.form.controls("datetimepicker1").value
rt1.Cells(1,0).Text= "检查单位"
rt1.Cells(1,1).Text= e.form.controls("combobox2").value
rt1.Cells(1,2).Text= "检查人"
rt1.Cells(1,3).Text= e.form.controls("combobox3").value
rt1.Cells(2,0).Text= "检查类型"
rt1.Cells(2,1).Text= e.form.controls("combobox5").value
rt1.Cells(2,2).Text= "整改资金来源"
rt1.Cells(2,3).Text= "安全费用"
Doc.Body.ChildRen.Add(rt1) '将容器加入到报表中
'设置隐患排查表样式
Dim rt8 As Prt.RenderTable
rt8 = New prt.RenderTable
rt8.Style.TextAlignVert = prt.AlignVertEnum.Center
rt8.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)
rt8.Style.Spacing.Bottom = 0
rt8.CellStyle.Spacing.All = 1
rt8.Style.Font = New Font("宋体", 11)
'设置表格细节
Rows8 = tbl8.DataTable.Select("[企业名称] Like '*" & e.Form.controls("combobox7").value & "*' And 年度 Like '*" & e.Form.controls("combobox6").value & "*'And 所在部门 Like '*" & e.Form.controls("combobox8").value & "*'and 检查时间 >= #" & e.Form.controls("datetimepicker2").value & "# and 检查时间 <= #" & e.Form.controls("datetimepicker3").value & "#") '指定符合条件的行和排序方式
Dim nms8() As String = {"年度","所在部门","隐患内容","整改措施","隐患分级","完成时间","责任人"} '指定要显示的列即要打印的列
Dim caps() As String = {"序号","所在部门","隐患内容","整改措施","隐患分级","整改期限","责任人"} '自定义列名
For c As Integer = 0 To nms8.length - 1
Dim ary() As String = caps(c).split("|")
For i As Integer = 0 To ary.length-1
rt8.cells(i, c).text = ary(i)
Next '打印的列标题自定义
rt8.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题内容水平居中
'rt8.Cols(c).Width = tbl8.Cols(c).PrintWidth '根据原表格确定列宽
rt8.Cols(0).Width = 12 '设置各列宽度
rt8.Cols(1).Width = 23
rt8.Cols(2).Width = 55
rt8.Cols(3).Width = 35
rt8.Cols(4).Width = 28
rt8.Cols(5).Width = 23
rt8.Cols(6).Width = 15
For r As Integer = 0 To Rows8.Count -1
If c=0 Then
rt8.Cells(r + 1, c).Text = r+1 '增加了序号列,并自动填充
Else
rt8.Cells(r + 1, c).Text = rows8(r)(tbl8.Cols(nms8(c)).Name)
End If
Next
Next
rt8.RowGroups(0,1).Header = prt.TableHeaderEnum.All
doc.Body.Children.Add(rt8)
'再增加一个表,设置样式
Dim rt2 As Prt.RenderTable
rt2 = New prt.RenderTable
rt2.Rows.Count = 1 '设置总行数
rt2.Cols.Count = 4 '设置总列数
rt2.Height = 10 '设置表格的高度
rt2.Style.Font = New Font("宋体", 12)
rt2.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)
'设置表格样式
rt2.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt2.Style.Spacing.Bottom = 10 '和下一个资料卡的距离是10毫米
rt2.Style.GridLines.All = New prt.Linedef '设置网格线
rt2.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt2.Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题水平居中
rt2.Cells(0,0).Text= "备注"
rt2.Cells(0,1).Text= "此为第一联:安全部门留存"
rt2.Cells(0,2).Text= "接收人签字"
rt2.Cells(0,3).Text= ""
Doc.Body.ChildRen.Add(rt2) '将容器加入到报表中
预览时显示:
此主题相关图片如下:微信截图_20210920203543.jpg
请老师帮忙看一下错在哪里?怎么改?谢谢!