Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
cmd.CommandText = "Select * from dbo.ufn_rb_hgx10('" & pr("单据编号") & "') order by 姓名"
Dim dt As DataTable = cmd.ExecuteReader
If dt.datarows.count > 0 Then '如果有值
dim tb as table = tables(dt.name)
'设置明细表标题列--------------------------------- ---------2
rt.Rows(rt.Rows.Count).Height = 8
rt.Rows(rt.Rows.Count - 1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本水平居中
Dim ColNames As String() = cs1.split("|")
Dim MergeCols As Integer = 1 '指定要合并的列数
tb.Sort = "姓名,合计金额" '根据合并列排序
For c As Integer = 0 To ColNames.Length - 1
rt.Cells(rt.Rows.Count - 1, c).Text = ColNames(c)
Next
rt.RowGroups(0, 1).Header = prt.TableHeaderEnum.Page '指定表头行(注意如果只有一行表头设置多了会重复)
For c As Integer = 0 To ColNames.Length - 1 '逐列设置和填入内容
Dim lr As Integer ' 用于保存合并区域的起始行
rt.Cells(0, c).Text = ColNames(c)
rt.Cells(0, c).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Cols(c).Width = tb.Cols(ColNames(c)).PrintWidth '列宽等于实际列宽
rt.Cols(c).Width = 50 '列宽等于实际列宽
If tb.dataCols(ColNames(c)).IsNumeric OrElse tb.dataCols(ColNames(c)).IsDate Then '如果是数值或日期列
rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right
End If
...
Next
上面通用的打印功能都是要用到table的属性,如果打印的来源表是从查询得到的临时表dt,如果获取其table?上面红色不行
谢谢!