1项目结构
2.引用的文件
3.app.config文件内容
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
4.common.vb内容
Imports MySql.Data.MySqlClient
Public Class Common
Public Const m_strConn As String = "database=activereport;server=localhost;Uid=root;Pwd=123456;charset=utf8"
End Class
5.创建ReportForm.vb
6.reportform内容如下Imports MySql.Data.MySqlClient
Imports System.Globalization
Public Class ReportForm
Dim conn As New MySqlConnection(Common.m_strConn)
#Region “帐票名”
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
Dim rpt As GrapeCity.ActiveReports.PageReport = New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo("创建的.rdlx路径"))
Dim runt As GrapeCity.ActiveReports.Document.PageDocument = New GrapeCity.ActiveReports.Document.PageDocument(rpt)
AddHandler runt.LocateDataSource, AddressOf runt_LocateDataSource
Dim pageToReport As PageToReport = New PageToReport
pageToReport.exportRdlPDF(runt, "pdf命名")
End Sub
Private Sub runt_LocateDataSource(ByVal sender As Object, ByVal args As GrapeCity.ActiveReports.LocateDataSourceEventArgs)
If args.DataSourceName = "activereport" Then
Select Case args.DataSetName
Case "绑定数据集1"
args.Data = Get数据集1名Data()
Case "绑定数据集2"
args.Data = Get数据集2名Data()
End Select
End If
End Sub
Private Function Get数据集1名Data() As DataTable
Dim resData As DataTable = New DataTable
resData.Columns.Add(New DataColumn("項目1"))
resData.Columns.Add(New DataColumn("項目2"))
resData.Columns.Add(New DataColumn("項目3"))
Dim sqlAdapter As New MySqlDataAdapter("sql查询语句", conn)
Dim ds As New DataSet
Try
sqlAdapter.Fill(ds)
If IsDBNull(ds) = False AndAlso ds.Tables IsNot Nothing AndAlso ds.Tables.Count > 0 Then
resData = ds.Tables(0)
End If
Catch ex As Exception
End Try
Return resData
End Function
Private Function Get数据集2名Data() As DataTable
Dim resData As DataTable = New DataTable
resData.Columns.Add(New DataColumn("項目1"))
resData.Columns.Add(New DataColumn("項目2"))
resData.Columns.Add(New DataColumn("項目3"))
Dim sqlAdapter As New MySqlDataAdapter("sql文查询语句", conn)
Dim ds As New DataSet
Try
sqlAdapter.Fill(ds)
If IsDBNull(ds) = False AndAlso ds.Tables IsNot Nothing AndAlso ds.Tables.Count > 0 Then
resData = ds.Tables(0)
End If
Catch ex As Exception
End Try
Return resData
End Function
#End Region
End Class
7.创建.rdlx文件
8.在rdlx文件中使用tablix控件
9.绑定数据源
10.添加数据集
11.绑定数据元素
12.reportform数据与.rdlx数据间的绑定
创建PageToreport.vb
Public Class PageToReport
Public Sub exportRdlPDF(_reportDef As GrapeCity.ActiveReports.Document.PageDocument, filename As String)
Dim filePath As String = "创建的数据源路径"
If (False = System.IO.Directory.Exists(filePath)) Then
System.IO.Directory.CreateDirectory(filePath)
End If
Dim pdf As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
pdf.Export(_reportDef, filePath & filename & ".PDF")
MessageBox.Show("保存成功)
End Sub
End Class
流程完成