Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.Width = 80 '纸张宽度为80毫米
doc.PageSetting.Height = 50 '纸张高度为50毫米
Doc.PageSetting.LeftMargin = 2 '设置左边距
Doc.PageSetting.RightMargin = 2 '设置右边距
Doc.PageSetting.TopMargin = 2 '设置上边距
Doc.PageSetting.BottomMargin = 2 '设置下边距
'rt.Width = "Parent.Width" '对象宽度等于页面宽度
'rt.Height = "Parent.Height" '对象高度等于页面高度
'rt.Style.Borders.All = New prt.Linedef(1, Color.Red) '设置边框
'doc.Body.Children.Add(rt) '将文本对象加入到报表
'doc.PageSetting.Landscape = True '横向打印
'doc.Preview() '预览
Dim rg As prt.RenderGraphics
Dim Bar As New BarCodeBuilder
Dim tbl As Table = Tables("资产管理表")
tbl.Filter=""
'For i As Integer = tbl.TopRow To tbl.BottomRow
For i As Integer = 0 To tbl.Rows.Count
'For Each rw As Row In Tables("资产管理表").Rows
'Dim Filter As String
'Filter = "项目 = '" & dr1("项目") & "' And 日期 <= #" & dr1("日期") & "#"
Dim rw As Row = tbl.Rows(i)
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea '定义一个容器
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止容器因为分页而被垂直分割
'加入标题
rx.text = "资产标签"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
ra.Children.Add(rx) '加入到容器中
'指定行数?列数?列宽?行高
'rt.Rows.Count = 4 '设置总行数 感觉要不要都差不多,因为下面的cells 多了这里设置的数字不起作用
rt.Cols.Count = 3 '设置总列数
rt.Height = 44 '设置表格的高度 太大就撑出去
rt.Cols(0).Width = 25 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 48
rt.Cols(2).Width = 30
' rt.Cols(3).Width = 40
'设置合并单元格
rt.Cells(0,1).SpanCols = 2 '第1行第2个单元格向右合并2列
rt.Cells(1,1).SpanCols = 2 '第2行第3个单元格向右合并2列
'rt.Cells(2,1).SpanCols = 2 '第3行第2个单元格向右合并2列
rt.Cells(2,2).SpanRows = 3 '第4行第3个单元格向下合并2行(用于显示二维码)
'rt.Cells(4,1).SpanCols = 2 '第5行第2个单元格向右合并2列(用于显示备注)
'设置二维码
bar.Symbology = Barpro.Symbology.QRCode
bar.Code = rw("资产卡片号")
rg = new prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,0.8)
'设置表格样式
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.Spacing.Bottom = 5 '和下一个资料卡的距离是5毫米
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
'下面很简单,指定每一个单元格的内容
rt.Cells(0,0).Text= "资产编号:"
rt.Cells(0,1).Text = rw("资产卡片号")
rt.Cells(1,0).Text= "所在位置:"
rt.Cells(1,1).Text =rw("所在楼") & " " & rw("所在科室") & " " & rw("所在房间")
rt.Cells(2,0).Text= "资产名称:"
rt.Cells(2,1).Text = rw("资产名称") & " " & rw("资产型号")
rt.Cells(3,0).Text= "资产归属:"
rt.Cells(3,1).Text = rw("资产归属")
rt.Cells(4,0).Text= "IP地址:"
rt.Cells(4,1).Text = rw("IP地址")
rg = new prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,0.8)
rt.Cells(2,2).RenderObject = rg '在第2行,第3列显示二维码
'rg.Style.TextAlignVert = .AlignVertEnum.Center 这里要怎么写?
ra.Children.Add(rt) '加入到容器中
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表