Richiamare report [VB 2005]

giovedì 27 aprile 2006 - 15.31

MarKonE Profilo | Guru

Ciao a tutti.

Come da buon consiglio dell'onnipresente Matteo Raumer ho creato un report col designer di Visual Studio. Fino a qui tutto bene. Ora che il mio report è pronto ho alcuni dubbi relativi alla sua compilazione da codice...

1) Ammesso che il report creato si chiami report.rpt il comando :
mioReport.Load("report.rpt")


funziona anche quando dalle proprietà del report vedo che si tratta di una risorsa incorporata ?
Devo in ogni caso avere lo stesso file nella stessa cartella del mio eseguibile ?

2) Sempre dal designer ho visto che è possibile utilizzare la funzione "Mostra query SQL". Come posso da codice passarne un'altra a mio piacimento ?

3) Come posso aggiungere il valore di una variabile all'interno del mio report ?


Grazie ancora per il grande aiuto di questo forum !

Mikyct86 Profilo | Junior Member

ehi alla fine ci sei riuscito?
ho lo stesso problema! aiuto!

MarKonE Profilo | Guru

.

MarKonE Profilo | Guru

Sono riuscito a creare il report che mi serviva, naturalmente a livello di impaginazione, legato ad un db di "appoggio".

Ora vorrei alimentarlo da codice .

Posso esserti d'aiuto in qualcosa ?

Mikyct86 Profilo | Junior Member

ce anche un thread su questo argomento lo creato io...va be cmq ho un problema... vorrei utilizzare i crystal reports e gli xsd per far visualizzare un array multidimensionale nel report ma non ci riesco.........
ho creato la tabella(datatable)il dataset
il dataset ho fatto :dataset1.WriteXmlSchema(FileWriter)
ma adesso?????
ci vuole un datasource giusto?
oppure io ho provato con il datatable aggiungendo le row e le column e mettendo nella row il mio array
ma non visualizza niente...solo le colonne....i dati dove si mettono????????

freeteo Profilo | Guru

ciao,
il codice "mioreport.Load..." è se hai messo 1file rpt come file esterno, se invece l'hai incluso puoi chiamare direttamente l'oggetto con i metodi o le proprieta' che ti servono, senza quella riga di codice.
Praticamente quello che faccio qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5078
lo fai con mioreport = "nome del tuo report" (es: "CrystalReport1" se lasci tutto di default)

Pre quanto riguarda il settare 1a variabile sul report puoi attenerti a questo thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5217
che mostra come puoi usare "SetParameter"se la includi come parametro (quindi necessaria per la visualizzazione e se ti dimentichi te la chiede lui in automatico) oppure usando l'insieme "formulaFields" sempre del tuo oggetto report (vedi punto 1)

Fammi sapere...ciao

ps per mikyct86 : ti rispondo nell'altro thread, se puoi non mischiare i thread cosi' teniamo piu ordine,grazie.


ciao.

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

MarKonE Profilo | Guru

Ciao, grazie per la risposta.

Domani provo come mi hai suggerito...solamento non capivo il significato della riga

mioreport .load(server.Mappath("...."))

cioè la parte server..mappath ecc...

Poi non ho capito perchè il report mi compare come risorsa incorporata..e perchè allora vedo lo stesso il file report.rpt.... boooooh!

Ciao e grazie ancora !

freeteo Profilo | Guru

ciao,
"server.mappath" è 1 comando di asp.net per farti dare 1 percorso fisico (come c:\pp\..\...) da 1 percorso che hai "virtuale" ovvero "http:/.../.miofile.xxx") e non centra niente con il report...

>perchè allora vedo lo stesso il file report.rpt.... boooooh!
perche risorsa incorporata vuol dire che quando compila lui lo aggiunge come classe e quindi genera 1 assembly .net invece di averlo come file esterno, per velocita' di esecuzione e comodita' di sviluppo...ma io consiglio sempre di appoggiarsi ad 1a classe "reportDocument" che è piu "pulito" a mio avviso...ma è solo 1a mia "inclinazione mentale"


ciao.

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

MarKonE Profilo | Guru

>ciao,
>"server.mappath" è 1 comando di asp.net per farti dare 1 percorso
>fisico (come c:\pp\..\...) da 1 percorso che hai "virtuale" ovvero
>"http:/.../.miofile.xxx") e non centra niente con il report...
>

ah ok...solo che io devo generare il report da un'applicazione windows....
cambia qualcosa ??

>>perchè allora vedo lo stesso il file report.rpt.... boooooh!
>perche risorsa incorporata vuol dire che quando compila lui lo
>aggiunge come classe e quindi genera 1 assembly .net invece di
>averlo come file esterno, per velocita' di esecuzione e comodita'
>di sviluppo...ma io consiglio sempre di appoggiarsi ad 1a classe
>"reportDocument" che è piu "pulito" a mio avviso...ma è solo
>1a mia "inclinazione mentale"
>

ma allora è normale che si ci sia il file fisico report.rpt ?

>ciao.

ciao e grazie!

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

freeteo Profilo | Guru

>ah ok...solo che io devo generare il report da un'applicazione windows.... cambia qualcosa ??
no, non cambia assolutamente niente, il tuo percorso non sara' server.mappath ma sara direttamente la stringa con tutto il path...

>ma allora è normale che si ci sia il file fisico report.rpt ?
si, il runtime di Crystal usa e salva il file fisico, e quindi lui segue il suo iter normale, poi è casomai visual studio che te lo compila oppure no

>ciao e grazie!
di niente, grazie a te!


ciao.

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

MarKonE Profilo | Guru

Sono riuscito ad alimentare il mio report passandogli la query via codice

Le prestazioni mi sembrano scarse però....per 3 pagine impiega più di un minuto....

In ogni caso un passo avanti è stato fatto !

Grazie a Matteo e al forum !

freeteo Profilo | Guru

> per 3 pagine impiega più di un minuto....
mi sa che non è tanto i report quanto la query che è lenta...
- hai tanti record?
- come carichi alla fine il report, gli passi tu il datasource (e quindi carica in memoria 1a datable magari molto grossa (e quindi rallenta) o gli passi le logoninfo?


ciao.

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

MarKonE Profilo | Guru

Questi maledetti ponti, proprio non ci lasciano lavorare

>> per 3 pagine impiega più di un minuto....
> mi sa che non è tanto i report quanto la query che
>è lenta...
>- hai tanti record?

non ho molti record. La query di alimentazione si basa su tre tabelle legate solamente da un campo. Queste tre tabelle hanno mediamente 10-12000 , 3-5000 e 30 record.

>- come carichi alla fine il report, gli passi tu il datasource
>(e quindi carica in memoria 1a datable magari molto grossa (e
>quindi rallenta) o gli passi le logoninfo?
>

Faccio così :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Oltre a questo ho notato una cosa strana.... ho appositamente specificato la query

SELECT * FROM Taglie

"Taglie" è la tabella da 30 record con 3 campi..... nonostante questo il report viene compilato tutto. E' come se rimanesse legato alla query visibile da designer. Non so se mi sono spiegato chiaramente.

>ciao.
>

Ciao e grazie!!

>Matteo Raumer
>MCAD ... .net addicted :-)

E cosa vorrà mai dire 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