Print Page | Close Window

Connect to Multiple Tables: Some Linked, Some Not

Printed From: Crystal Reports Book
Category: Crystal Reports for Visual Studio 2005 and Newer
Forum Name: Data Connectivity
Forum Discription: How to connect to data sources and export reports
URL: http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=4290
Printed Date: 02 May 2024 at 11:49am


Topic: Connect to Multiple Tables: Some Linked, Some Not
Posted By: ssmith147
Subject: Connect to Multiple Tables: Some Linked, Some Not
Date Posted: 17 Sep 2008 at 2:51pm
Hi,
 
I'm trying to connect to a database through a dataset (not external DLL file).  I was having trouble initially because I don't know how to connect to a SQL Server 2005 CE database.  I eventualy got around that by using the dataset and the following code:

Private Sub btnSelectReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectReport.Click

If Me.txtReportName.Text = "" Then

MsgBox("Please select a report file before proceeding.")

Exit Sub

End If

strFileName = "rassdk://" + Me.txtReportName.Text

Me.ReportFile.FileName = strFilename

Try

'This code is designed to be dynamic to allow access to multiple datasets based on numbers tacked on to the end of the report file.
'For the record, I hate doing it this way, but its all I've got right now
 
intDSNumber = CType(strFilename.Substring(strFilename.IndexOf("--", 1) + 2, 1), Integer)

intTableNumber1 = CType(strFilename.Substring(strFilename.IndexOf("--", 1) + 3, 1), Integer)

intTableNumber2 = CType(strFilename.Substring(strFilename.IndexOf("--", 1) + 4, 1), Integer)

intTableNumber3 = CType(strFilename.Substring(strFilename.IndexOf("--", 1) + 5, 1), Integer)

Catch ex As Exception

MsgBox(ex.Message & vbNewLine & vbNewLine & "This may not be a valid AdvancedPFM Report File")

End Try

Try

Select Case intDSNumber

Case 0

Me.TblCustomersTableAdapter.Fill(Me.DsCustomersReports.tblCustomers)

Me.ReportFile.SetDataSource(DsCustomersReports.Tables(intTableNumber1))

Case 1

Me.TblCustomersTableAdapter2.Fill(Me.DsPlayerTypeReports.tblCustomers)

Me.TblDateVisitedTableAdapter.Fill(Me.DsPlayerTypeReports.tblDateVisited)

Me.ReportFile.SetDataSource(DsPlayerTypeReports.Tables())

Case Else

MsgBox("Incompatible report. Check for software updates.")

End Select

Catch ex As Exception

MsgBox(ex.Message)

End Try

Try

Me.CrystalReportViewer1.ReportSource = Me.ReportFile

Catch ex As Exception

MsgBox(ex.Message & vbNewLine & vbNewLine & "This may not be a valid AdvancedPFM Report File")

End Try

End Sub

As you can tell, this method is very limited in the number of datasets I program in.  Plus, because I'm using the SetDataSource method, I can only designate one table as the source of the information- at least, that what I think at this point.
 
1- Is there a better way to connect to the database which doesn't require any of this stuff from the file name? 
 
2- If not, how can I connect to two different tables in the dataset where the data is not linked?
 
3- Also, how can I connect to two different tables in the dataset where one table's records are dependent on their existence in the other table? Or, I;m looking for records in one table that are child records from something in the first table?
 
I really hope you can help me with this because making a more dynamic report experience is critical to my software.
 
Thanks for whatever help is offered!
 
-Will



Print Page | Close Window