activereport vb.net应用.rdlx项目

1项目结构

activereport vb.net应用.rdlx项目_第1张图片
2.引用的文件

activereport vb.net应用.rdlx项目_第2张图片
3.app.config文件内容



    
        
    

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
activereport vb.net应用.rdlx项目_第3张图片
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文件
activereport vb.net应用.rdlx项目_第4张图片
8.在rdlx文件中使用tablix控件
activereport vb.net应用.rdlx项目_第5张图片
9.绑定数据源
activereport vb.net应用.rdlx项目_第6张图片
10.添加数据集
activereport vb.net应用.rdlx项目_第7张图片
11.绑定数据元素
activereport vb.net应用.rdlx项目_第8张图片
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

流程完成

你可能感兴趣的:(报表)