ciao,
hai verificato se nella DataTable che carichi ci sono effettivamente le 3 righe?
A parte questo, io avrei fatto un approccio piu' semplice, ovvero avrei rimappato su un oggetto mio i valori che leggo dall'XML, in questo modo:
File Xml di esempio:
<?xml version="1.0" encoding="utf-8" ?>
<Fornitori>
<Fornitore Codice="1233" Descrizione="AZIENDE PROGRESSO" />
<Fornitore Codice="1234" Descrizione="COOPERATIVA" />
<Fornitore Codice="1235" Descrizione="SUPERCLIENTE" />
<Fornitore Codice="1236" Descrizione="GAMMA" />
<Fornitore Codice="1237" Descrizione="BETA" />
<Fornitore Codice="1238" Descrizione="MATTEO" />
</Fornitori>
Codice dove carico il report e gli passo i dati:
private void FormXML_Load(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"...DatiXML.xml");
//--- carico una collection con le proprieta' dall'Xml
List<RigaReport> righe = new List<RigaReport>();
foreach (XmlNode nodo in doc.GetElementsByTagName("Fornitore"))
{
RigaReport r = new RigaReport();
r.Codice = nodo.Attributes["Codice"].Value;
r.Descrizione = nodo.Attributes["Descrizione"].Value;
righe.Add(r);
}
ReportDocument report = new ReportDocument();
report.Load(@"..ReportXML.rpt");
report.SetDataSource(righe);
crystalReportViewer1.ReportSource = report;
}
Dove la mia classe "RigaReport" è questa (per l'esempio ho messo 2 campi, ma ovvio che tu ne avrai di piu') :
class RigaReport
{
private string codice;
public string Codice
{
get { return codice; }
set { codice = value; }
}
private string descrizione;
public string Descrizione
{
get { return descrizione; }
set { descrizione = value; }
}
}
ps: il report l'ho costruito dandogli in pasto un file XML come sorgente dati nel designer di visual studio, (DataBase Expert->Connection->DAtaBase File->miofile.XML)
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo