How to create a dataset from XML for use in Crystal Reports

K

Kirk

Hello,

I have an app that reads & writes to XML files. I now would like to
create some reports using Crystal Reports, and the usual way I do this
is by creating a dataset in Visual Studio & inserting the fields
graphically. However, I cannot find out how to do this within the VS
IDE. I can create the dataset programatically like this:

Dim filePath As String = "C:\Temp\XMLfile.xml"

AuthorsDataSet.ReadXml(filePath)

DataGridView1.DataSource = AuthorsDataSet
DataGridView1.DataMember = "authors"

....but this created at runtime, and as such, I cannot use it at
design-time for my CR design work.

How can I create a dataset from an XML file at design time?

Thanx in advance.
 
G

Guest

Hi Kirk,

You don’t have to use Dataset to design your CR. You can use ttx file (field
definition file) as data schema to design the CR. And it’s very easy to use
even Notepat to create a ttx file.


HTH

Elton Wang
 
K

Kirk

Elton,

Thanks for your reply. After some struggling, I was able to create a
ttx file to use as I am designing my report (thank you!). However, I
am having a problem populating the report with data from my dataset. I
use the same code as above, but after I populate my dataset, I do this:

Dim crReport As New TcReport01
crReport.SetDataSource(AuthorsDataSet) 'Set the data source for the
report
CrystalReportViewer1.ReportSource = crReport 'Set the report to view

And all the report shows (in the detail section) is the default value
in my TTX file. For example, my TTX file looks like this:

; Field definition file for table: ADORecordset
Description String 20 Default

But the the detail on the report always shows just "Default". Can
anyone see where I am going wrong?

Thanks.
 
G

Guest

Hi Kirk,

Two possible reasons:

1. The report might be in a Save Data with Report mode. It always shows data
in design time. You can open report in Seagate Report Designer. From Menu
File uncheck Save Data with Report, then save the report.

2. It’s better to use DataTable as report’s data source like following:

Report.Database.Tables[0].SetDataSource(datatable0);
Report.Database.Tables[1].SetDataSource(datatable1);
…

HTH

Elton Wang
 
K

Kirk

Elton,

Thanks for your great response. I followed your second option and was
able to get my report to work!

I changed the code to this:

crReport.Database.Tables(0).SetDataSource(AuthorsDataSet.Tables(0))

....and it worked correctly.

Thanks for following up with me and getting me past this hurdle. I
greatly appreciate your help!
Kirk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top