Results 1 to 2 of 2

Thread: [RESOLVED] Change CrystalReport Datasource in VB.NET

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    May 2007
    Posts
    166

    Resolved [RESOLVED] Change CrystalReport Datasource in VB.NET

    I'm using VB.NET 2003 windows application.

    i'm trying to display Crystal Reports using CrystalReportViewer.

    Code i'm using to display "ZTab.rpt" in CrystalReportViewer when Form_Load

    Code:
        Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
                CrystalReportViewer1.ReportSource = "ZTab.rpt"
                CrystalReportViewer1.Zoom(1)
    
        End Sub
    i have checkbox that contain list of crystal report. if i select one crystal report and hit button "Run", it displays that crystal report.

    Code i'm using to display another (differenet) crystal report in CrystalReportViewer when Button (btnRun) clicked.

    Code:
        Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRunNow.Click
    
            CrystalReportViewer1.ReportSource = combobox1.SelectedItem
            CrystalReportViewer1.Zoom(1)
    
        End Sub
    so when Form_load, it displays "ZTab.rpt" and when i select one crystal report in combobox and hit button "Run", it displays corresponding crystal report. that works fine.

    how can i change the datasource of a report during run time using codes (programming).

    for example: if we are using datasource "work.mdb" for "ZTab.rpt" when form_load. when i hit a button, how come i change the datasource to "Employee.mdb" for "ZTab.rpt" during run time using codes. so when form_load it will display ZTab.rpt with datasource "work.mdb" and when i hit a button, it will display ZTab.rpt with datasource "Employee.mdb".

    If you have any idea how to do this, please help me. if you can provide an example then it will be great help for me.

    Thanks in advance.

  2. #2

    Thread Starter
    Addicted Member
    Join Date
    May 2007
    Posts
    166

    Re: Change CrystalReport Datasource in VB.NET

    This code works for me. Hope this helps someone...

    Code:
        Dim myreport As New ReportDocument
        Dim strDSN As System.String
        Dim strDB As System.String
        Dim strUID As System.String
        Dim strPWD As System.String
    
       Private Sub frmMain_Load(ByVal sender........
               CrystalReportViewer1.ReportSource = "ZTab.rpt"
       End Sub
    
       Private Sub btnChangeDataBase_Click(ByVal sender ........        
            strNewPath = "C:\Projects\Employee.mdb"
            myreport.Load("ZTab.rpt")
            SetupReport(myreport)
       End Sub
    
       Private Function SetupReport(ByRef objCrystalReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument) As System.Boolean
    
            Dim crTableLogOnInfo As CrystalDecisions.Shared.TableLogOnInfo
            Dim crDatabase As CrystalDecisions.CrystalReports.Engine.Database
            Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
            Dim aTable As CrystalDecisions.CrystalReports.Engine.Table
            Dim bTable As CrystalDecisions.CrystalReports.Engine.Table
            Dim blnTest As System.Boolean
            Dim strLocation As System.String
            
            crDatabase = objCrystalReportDocument.Database
            crTables = crDatabase.Tables
    
            For Each aTable In crTables
                crTableLogOnInfo = aTable.LogOnInfo
    
                strDSN = crTableLogOnInfo.ConnectionInfo.ServerName
                strDB = crTableLogOnInfo.ConnectionInfo.DatabaseName
                strUID = crTableLogOnInfo.ConnectionInfo.UserID
                strPWD = crTableLogOnInfo.ConnectionInfo.Password
    
                OutputDebugLine("BEFORE")
                OutputDebugLine("TABLE NAME: " & aTable.Name)
                OutputDebugLine("TABLE LOC: " & aTable.Location)
                OutputDebugLine("SERVER: " & strDSN)
                OutputDebugLine("DB: " & strDB)
                OutputDebugLine("UID: " & strUID)
                OutputDebugLine("PWD: " & strPWD)
                OutputDebugLine("REPORT NAME: " & crTableLogOnInfo.ReportName)
                OutputDebugLine("Table Name: " & crTableLogOnInfo.TableName)
    
                aTable.ApplyLogOnInfo(crTableLogOnInfo)
                
                strLocation = strNewPath   'pass new mdb name
               
                OutputDebugLine("New Location: " & strLocation)
                Try
                    aTable.Location = strLocation
                Catch ex As Exception
                    OutputDebugLine("Set Location Error: " & ex.ToString)
                End Try
    
                OutputDebugLine("AFTER")
                OutputDebugLine("TABLE NAME: " & aTable.Name)
                OutputDebugLine("TABLE LOC: " & aTable.Location)
                OutputDebugLine("SERVER: " & strDSN)
                OutputDebugLine("DB: " & strDB)
                OutputDebugLine("UID: " & strUID)
                OutputDebugLine("PWD: " & strPWD)
                OutputDebugLine("REPORT NAME: " & crTableLogOnInfo.ReportName)
                OutputDebugLine("Table Name: " & crTableLogOnInfo.TableName)
                Try
                    blnTest = aTable.TestConnectivity()
                    OutputDebugLine("CONNECTED? " & blnTest.ToString())
                Catch ex As Exception
                    OutputDebugLine("CONNECTED? NO")
                    OutputDebugLine(ex.ToString)
                End Try
            Next aTable
    
            myWrite.Close()
            myWrite = Nothing
            myFile = Nothing
    
            CrystalReportViewer1.ReportSource = myreport
        End Function

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width