概述
报表打印的方法有很多种,比如说先导出 office 软件中然后进行排版布局,这样和方便,可是需要导入组件,而且必须安装 office 。下面我们看一种很实在的方法。提供全部源代码。以供朋友们学习交流。 这种方法也很简单,是使用 GDI+ 把数据写到 PrintDoucument 中的 第一步 先引入命名空间 Imports System Imports System.Drawing I
报表打印的方法有很多种,比如说先导出 office 软件中然后进行排版布局,这样和方便,可是需要导入组件,而且必须安装 office 。下面我们看一种很实在的方法。提供全部源代码。以供朋友们学习交流。 这种方法也很简单,是使用 GDI+ 把数据写到 PrintDoucument 中的 第一步 先引入命名空间 imports System imports System.Drawing imports System.Drawing.Text 第二步 编写 PrintDoucument 的 Printpage 事件 Private Sub Printdocument1_PrintPage(ByVal sender As System.Object,ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Printdocument1.PrintPage 下面 我们将数据表 mytab 中的数据写进 PrintDoucument 先定义画笔 Dim arialFont As FontFamily = New FontFamily("arial") Dim Font As Font = New Font(arialFont,10,FontStyle.Regular) 然后定义页边距 Dim rleft As Single = 10 Dim rtop As Single = e.marginBounds.top - 20 获取每一行的高度 Dim lineheight As Single = Font.GetHeight(e.Graphics) 获取 Mytab 的行数和列数 Dim col As Integer = Mytab.Columns.Count Dim row As Integer = Mytab.Rows.Count 获取 Mytab 的字段名称 Dim headline As String = "" For i As Integer = 1 To col - 1 Dim coltext As String = Mytab.Columns(i).Columnname.ToString headline = headline & coltext & Space(1) Next 获取要打印的数据 Dim ListvIEwrows As String() ReDim ListvIEwrows(Me.ListVIEw1.Items.Count + 1) For i As Integer = 0 To row - 1 Dim lentext As String = "" For j As Integer = 1 To col - 1 Dim maxlen As Integer = lIEwIDth(j - 1) Dim coltext As String coltext = Mytab.Rows(i).item(j).ToString lentext = lentext & coltext & Space(3) Next ListvIEwrows(i) = lentext Next 接下来就是真正的写入数据 Do e.Graphics.DrawString(ListvIEwrows(counts),Font,Brushes.Black,rleft,rtop) counts = counts + 1 rtop = rtop + lineheight Loop Until rtop > e.marginBounds.Bottom Or counts >= Mytab.Rows.Count - 1 If counts < Mytab.Rows.Count - 1 Then e.HasMorePages = True Else e.HasMorePages = False End If END Sub 写好以后,就可以打印了 PrintDoucument.print() 到此就可以把数据表 Mytab 中的所有数据打印出来了 总结
以上是内存溢出为你收集整理的Vb.net 如何实现报表打印全部内容,希望文章能够帮你解决Vb.net 如何实现报表打印所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)