Datagrid e Crystal Reports

giovedì 23 marzo 2006 - 20.13

albcons Profilo | Newbie

Ciao a tutti,
è da giorni che sto perdendo tempo per questa cosa:
Ho una serie di dati "non provenienti da database" in un datagrid.
Io voglio che questi dati vengano trasportati in crystal report in quel formato specifico come sono nel datagrid!!! Come posso fare?
Possibilmente vorrei sapere il codice...sicuramente è una cosa semplice ma ci sto perdendo un sacco di tempo!!!
Help me
Grazie mille a tutti!
Alberto

freeteo Profilo | Guru

Ciao,
non puoi altro che creare 1a struttura con cui costruire il report e dopo passargliela come datasource.
La struttura in questione deve essere 1a di quelle che lui riesce a maneggiare ovvero 1a di quelle che trovi quando facendo il wizard di Crystal ti chiede la sorgente dati.
Tipicamente strutture strane, create a codice ovviamente non ci sono ma ti puoi affidare a file xml, o cmq a oggetti .net (primo nodo della treeview insieme a "dataset ado").
Se li metti magari statici e pubblici allora li dovresti trovarteli, e cosi' 1a volta definita la struttura puoi passargliela da codice.

Altrimenti puoi fare 1 metodo 1po "certosino" ed andare ad appoggiarti ad 1 database access di appoggio che abbia la struttura che rispecchia quella che vuoi tu e poi, invece del db access, da codice gli passi l'oggetto tuo che hai passato alla griglia...

Prova a darci 1occhiata...


ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

albcons Profilo | Newbie

Grazie per la risposta...adesso proverò a guardarci!
Un'altra domanda: siccome il numero delle colonne della tabella che devo passare a crystal report varia sempre è possibile che sfori il margine della pagina. A questo punto Crystal Reports passa automaticamente alla pagina successiva oppure visualizza solamente la parte entro i margini??

freeteo Profilo | Guru

ciao,
no solo se hai il crosstab va a destra automaticamente altrimenti nel render dei campi da db li tagli, devi lavorare con il fatto che il campo si possa allungare ma la larghezza rimane quella che è...

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

albcons Profilo | Newbie

mi puoi fare un piccolo esempio in vb.net con un datagrid con dei dati che vengono modificati runtime e passarli con lo stesso formato direttamente a crystal report? mi sto tirando matto ma non riesco!!! grazie mille

freeteo Profilo | Guru

ok ma i dati che vuoi tu da dove arrivano, da database? li modifichi a runtime nel senso che ci fai dei calcoli sui valori di ogni record?
O hai 1a struttura e poi da codice la riempi etc...

Si puo' fare in entrambi i casi, solo che ti faccio 1esempio al volo di quello che serve a te...
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

albcons Profilo | Newbie

i dati non li prendo da database! Durante l'esecuzione del programma l'utente può aggiungere quante colonne gli pare (una colonna rappresenta le misure effettuate per un certo pezzo meccanico da strumento, quindi ci possono essere più pezzi da misurare!).
Quindi quello che voglio sapere io è come fare a passargli questo benedetto datagrid direttamente a crystal reports come se fosse una tabella!!!
Credo sia possibile con uno strumento potente come crystal reports...grazie

freeteo Profilo | Guru

ciao,
se tu vuoi fare qualcosa di dinamico cosi' agile come quando cambi la sorgente alla datagrid e lui ti aggiunge da sola le colonne, purtroppo con Crystal non lo puoi fare...lo so 1a limitazione abbastanza "noiosa" ma per come lavora lui, si aspetta 1a struttura che tu definisci in fase di progettazione e che poi rimepirai da codice.
Puoi lavorare con campi formula e parametro in modo da passargli valori a runtime, fare calcoli dentro al report, fare alias in fase di query per "ingannarlo" 1pochettino ma proprio tutto quello che vuoi fare tu non lo puoi fare.

Quindi ti consiglio di prepararti 1report con determinate colonne fisse e lavorare sulle righe piuttosto, in modo che quando l'utente seleziona 1 ulteriore pezzo tu lo aggiunga al set delle righe e non a quello delle colonne.
Se poi lavori con alias tipo:

select nuovocampo as colonna1 ....

puoi preparare 1a colonna che chiami "colonna1" e poi da codice gli metti 1campo diverso ma per quanto riguarda aggiungere e togliere campi purtroppo non lo puoi fare.

E cmq non lo puoi fare con la licenza standard che ti da la businessobject integrando il suo editor in visual studio, se vuoi poterlo fare cmq allora devi prendere 1a licenza diversa...a mio avviso molto costosa

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5