Print Page | Close Window

New to Crystal Reports Seeking Advice

Printed From: Crystal Reports Book
Category: Crystal Reports for Visual Studio 2005 and Newer
Forum Name: Writing Code
Forum Discription: .NET programming API, report integration
URL: http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=175
Printed Date: 05 May 2024 at 12:16pm


Topic: New to Crystal Reports Seeking Advice
Posted By: kmckenzie
Subject: New to Crystal Reports Seeking Advice
Date Posted: 31 Jan 2007 at 8:01am
Hello all.
 
I am new to Crystal Reports.  I have NEVER used it before!  So...I am in need of creating a report based off of a dataset result.  All database connections are handled by a class, and the datasets are handled in another.  Heres the senario .  I have a form that uses a dataset to fill some properties, which in turn are used to bind some text boxes.  This form has all the needed information I need to create the report and print (a single record).  I'm not sure how to pass the properties to a report.
 
I've created a report and used the class as the datasource.  I put those fields on the form, but I can't get any data to fill those fields.  Do I need to create a new query somewhere in the report and use a parameter to extract the data?  Does Bischof book cover this in detail, and could I understand it with out having to read 500 pages?  I'm kinda on a time limit, but would be interested in learning more in the near future.
 
BTW, My code is VB .NET and I am access a local Access database.
 
Thanks for any help you could provide.
 
Ken McKenzie



Replies:
Posted By: BrianBischof
Date Posted: 31 Jan 2007 at 8:47am
Hey Ken,

Since you're brand new to CR, you probably want to pick up a copy of my book b/c you'll probably have lots of questions as you keep working with reports. But it sounds like for now you just need something quick and dirty.

The part you still need to do is populate the DataSet object prior to passing it to the report. It sounds like your code is already populating the dataset, so now pass it to the report object using the SetDataSource(dataset) method. This passes the data to the report for viewing. Here is a quick summary of the steps:

1. Private myReport as ReportDocument = new ReportDocument()
2. myReport.Load(filepath)
3. Load data into myDataSet
4. myReport.SetDataSource(myDataset)
5. CrystalReportViewer1.ReportSource = myReport



-------------
Please support the forum! Tell others by linking to it on your blog or website:<a href="http://www.crystalreportsbook.com/forum/">Crystal Reports Forum</a>


Posted By: kmckenzie
Date Posted: 01 Feb 2007 at 8:10am

Thanks for the help.  I will definitely be investing in your book soon.  I see how to pass the dataset over, but I guess my problem is with the creation of the report itself.  I and bind the viewer to the report and I can see my labels, but I see no data fields. 

This is how I handle my dataset creation and population:
Public Function EditPTORequestbyID(ByVal mID As Integer) As DataSet

Dim strSQL As String

strSQL = "SELECT * FROM tblPTORequest WHERE ID = " & mID

objDS = objData.RetrieveData(strSQL)

Me.shtCounter = 0

FillProperties()

Return objDS

End Function

Then I use the report code in the form Load event.
 
objDS = objPTO.EditPTORequestbyID(mintID)

FillTextBoxes()

Dim myReport As rptPTO = New rptPTO

myReport.Load("C:\ATLPTO\Atlanta PTO Request\Atlanta PTO Request\rptPTO.rpt")

myReport.SetDataSource(objDS)

CrystalReportViewer1.ReportSource = myReport

I appreciate the help and hate to be bothersome.
 
Ken Mckenzie


Posted By: BrianBischof
Date Posted: 01 Feb 2007 at 11:12am
Hmmm... it looks pretty good to me. I'm a bit confused why you are instantiating the report object as rptPTO and then using the Load() method to pull it from the server. If you are using an embedded report, then all you need to do is instantiate the report object. If you aren't using an embedded report then you can just instantiate it with the ReportDocument class. But still, I don't think that is the cause of your problem - it's just something that looks odd.

When you call SetDataSource(), pass a second parameter using the table name. That can resolved problems sometimes.

-------------
Please support the forum! Tell others by linking to it on your blog or website:<a href="http://www.crystalreportsbook.com/forum/">Crystal Reports Forum</a>



Print Page | Close Window