Re: Load Report Failed???
Code:
Dim rptName As String = "C:\Report\client_MasterListing.rpt"
Also, study this general information about VB.NET & Crystal Reports , it could be helpful
-----------------------------------------------------------------------------------
'To pass logon information to a Crystal Report at runtime
Code:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New ConnectionInfo()
Dim CrTables As Tables
Dim CrTable As Table
Dim TableCounter
'If you are using a Strongly Typed report (Imported in your project) named CrystalReport1.rpt use the following:
Code:
Dim crReportDocument As New CrystalReport1()
'If you are using a Non-Typed report, and loading a report outside of the project, use the following:
Code:
Dim crReportDocument As New ReportDocument()
crReportDocument.Load("c:\myReports\myReport.rpt")
'Set the ConnectionInfo properties for logging on to the Database
'If you are using ODBC, this should be the DSN name NOT the physical server name.
'If you are NOT using ODBC, this should be the physical server name
Code:
With crConnectionInfo
.ServerName = "DSN or Server Name"
'If you are connecting to Oracle there is no DatabaseName. Use an empty string. For example, .DatabaseName = ""
.DatabaseName = "DatabaseName"
.UserID = "Your User ID"
.Password = "Your Password"
End With
'This code works for both user tables and stored procedures.
'Set the CrTables to the Tables collection of the report
Code:
CrTables = crReportDocument.Database.Tables
'Loop through each table in the report and apply the LogonInfo information
For Each CrTable in CrTables
CrTableLogonInfo = CrTable.LogonInfo
CrTableLogonInfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
'If your DatabaseName is changing at runtime, specify the table location.
'For example, when you are reporting off of a Northwind database on SQL server you should have the following line of code:
crTable.Location = "Northwind.dbo." & crTable.Location.Substring(crTable.Location.LastIndexOf(".") + 1)
Next
'Set the viewer to the report object to be previewed.
CrystalReportViewer1.ReportSource = crReportDocument
----------------------------------------------
Also it may help that you visit --->
https://boc.sdn.sap.com/taxonomy/term/3
----------------------------------------------
If you are changing database at runtime, it is important that you specify the table location after you apply logon information (this is a case sensitive property).
You can either specify the table name only or the fully qualified table name such as
crTable.location = "databaseName.dbo.tablename"
Refer to knowledge base article c2010275 if you wish to change database logon information in the main and subreport.
If you are reporting off an Access database, then specify either the 'ServerName' or 'DatabaseName' to the 'ConnectionInfo' Object depending on how you are connecting to Access.
For example, if you are connecting to Access through ODBC, then set the 'DatabaseName' for the 'ConnectionInfo' object as follows:
Code:
With crConnectionInfo
.DatabaseName = "C:\mydatabase\mydata.mdb"
End With
If you are connecting to Access through OLE DB, then set set the 'ServerName':
Code:
With crConnectionInfo
.ServerName = "C:\mydatabase\mydata.mdb"
End With
It is not possible to report of a secured Access database using a native connection.
See knowledge base article C2010460 for more information.
If you are using more than one database with different usernames and passwords, use a loop to pass in the different values.
JG
Re: Load Report Failed???
Unfortunately this code isn't working. I'm obviously missing something else....
Re: Load Report Failed???
I like these examples, but does anyone know what to do if you are using two databases and some tables go with one connection and other tables go with another connnection?
Re: Load Report Failed???
Inside the loop where you ask for each table you could set a condition
If the table=x then connectioninfo1
If the table=y then connectioninfo2
JG
Re: Load Report Failed???
Actually only one of the databases requires a login so I did this
Code:
cr.Database.Tables("WORKORDER").ApplyLogOnInfo(crtableLogoninfo)
Quote:
Originally Posted by
jggtz
Inside the loop where you ask for each table you could set a condition
If the table=x then connectioninfo1
If the table=y then connectioninfo2
JG
Re: Load Report Failed???
I accept with information:
Inside the loop where you ask for each table you could set a condition
If the table=x then connectioninfo1
If the table=y then connectioninfo2