Passare array a crystal report

mercoledì 13 giugno 2007 - 09.36

gigi90 Profilo | Senior Member

Salve a tutti, ho un grande problema: ho un array di interi, e vorrei che tutti gli elementi di questo array, venissero stampati in lista, come faccio a passare l'array a Crystal Report, per stampare gli elementi in lista???


Grazie per l'aiuto!!

freeteo Profilo | Guru

ciao,
ma questi valori sono "extra report"? Intendo, sono dei valori che devono esssere visualizzati oltre a degli altri dati "reali" del report, o sono l'unica fonte dati per quel report?

Nel primo caso, puoi passare per un campo formula, ovvero aggiungerlo al repor e poi settargli il valore come lista di numeri:

ReportDocument report = new ReportDocument(); report.Load(@"c:\...\Crystal\CrystalReport1.rpt"); ...altri dati vari... string stringa = string.Empty; for (int i = 0; i < 10; i++) stringa += "'" + i.ToString() + "' + chr(13) + "; stringa = stringa.Remove(stringa.Length - 2, 2); //--- tolgo il + finale report.DataDefinition.FormulaFields["miaformula"].Text = stringa; crystalReportViewer1.ReportSource = report;


e ricordati di mettere il flag su "can grow" al campo formula e metterlo nella sezione "page header" altrimenti non avendo dati lui non genera nemmeno la sezione "dettagli"...


Nel caso in cui sia invece l'unica fonte dati del report, puoi passare tramite DataTable, o cmq una classe tua a doc tipo "codice-descrizione" e poi pssargli con "SetDataSource" una lista di questo tipo di oggetti...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

gigi90 Profilo | Senior Member

Potresti farmi un esempio su come passare un array di interi del tipo


int[] Elementi=new int[10];

//inizializzo gli elementi


poiche non sono tanto esperto di crystal report??

freeteo Profilo | Guru

ciao,
il codice è quello che ti ho postato prima, ovvero girare sull'array e trasformarlo in stringa per essere passato alla formula e quindi visualizzato nel report:

string stringa = string.Empty;
for (int i = 0; i < 10; i++) stringa += "'" + i.ToString() + "' + chr(13) + "; stringa = stringa.Remove(stringa.Length - 2, 2); //--- tolgo il + finale


nel tuo caso basta cambiare solo il for:
for (int i = 0; i < Elementi.Lenght; i++) stringa += "'" + Elementi[i].ToString() + "' + chr(13) + ";


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5