Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Foto in un report di stampa, come?
giovedì 24 luglio 2008 - 07.55
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
gio 24 lug 2008 - 07:55
Ciao, a tutti, ho questo problema, ho realizzato delle stampe con cristal report in vb.net 2003,
ho utilizzato lo strumento cristal report integrato in visual studio, ho BISOGNO DI IN INSERIRE 2 FOTO
NEI REPORT, IL PERCORSO E INDICATO DA UN CAMPO DOVE E COLLEGATO IL REPORT, COME SI FA QUESTO??
cHE CONTROLLO SI UTILIZZA IN CRISTAL REPORT per inserire le foto?
Grazie a tutti, aspetto risposta.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 24 lug 2008 - 09:33
ciao,
se le foto le devi importare dentro al report e poi salvare il report con quelle 2 immagini fisse, ti basta usare un campo immagine (TastoDX->Insert->Picture) e dargli il file immagine.
Se invece il path dell'immagine arriva solo a runtime, purtroppo non puoi modifcare il report a runtime, quindi devi pensare ad una tecnica tipo questa:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx
ovvero campo byte[] nel db (se non c'è ti basta aggiungerlo ad un db temporaneo e costruire il report su quello), metti giu il campo nel report e poi da codice gli passi una DataTable con quel campo riempito con i bytes letti tramite codice .net.
ciao.
ps: per i problemi di report, anche se sono di WindowsForm o Asp.net, ce'è una stanza apposita del forum, usa quella così teniamo in ordine i thread, grazie.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
gio 24 lug 2008 - 11:26
ciao, grazie per la risposta, il mio problema è proprio quello di passare
la path della foto in runtime ogni volta che richiamo la stampa di certi dati, ti spiego:
I dati del report sono collegato ad un dataset tipizzato,
io quindi rimpio ogni volta il dataset tipizzato è lancio la stampa,
ora sono al punto che ho 2 campi dove il contenuto è il percorso delle foto.
Quindi in sostanza come passo all'oggetto OLE se ho ben capito che devo caricare nel report il percorso della foto, il codice che mi hai detto di controllare e questo:
Listato n°1
private byte[] getFile(string pFilePath)
{
FileStream mioStream = new FileStream(pFilePath,FileMode.Open,FileAccess.Read);
byte[] mioBuffer = new byte[mioStream.Length];
mioStream.Read(mioBuffer, 0, mioBuffer.Length);
return mioBuffer;
}
e lo si carica per ogni record che risulta della mia tabella:
Listato n°3
//---- leggo i file immagine e poi li parcheggio nel DB nella colonna OLE
foreach(DataRow miaDr in miaTab.Rows)
miaDr["immagine"] = getFile((string)miaDr["pathimg"]);
NON CAPISCO DOVE DEVO INSERIRE QUESTO CODICE, E COME SCRIVERLO IN VB.NET.
GRAZIE ASPETTO GENTILE RISPOSTA.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 24 lug 2008 - 19:08
ciao,
il codice è quello (per convertirlo puoi usare anche un tool online tipo:
http://www.carlosag.net/Tools/CodeTranslator/
) perchè devi passare al report un datatable, il datatable come ti dicevo ha, un campo in più che nell'esempio è "immagine" che contiene i byte (File.ReadAllBytes(...) appunto) del file immagine.
Creando il report con un database, temporaneo se vuoi, con un campo "Ole" o cmq "Byte[]" che Crystal interpreta come un campo immagine, ti basta poi riempire da codice (come vedi nell'esempio allegato
http://www.dotnethell.it/files/Crystal_Blob.zip
) quella datatable, che avrà tutti i dati del db, tranne per quel campo "immagine" che viene riempito girando sulle righe e leggendo i byte[] dell'immagine.
Solo dopo questo caricamento lo puoi passare al report, altrimenti non ha senso.
Cmq trovi tutto nel progetto allegato.
ps: la traduzione c# <-> vb.net è qualcosa a cui ti devi abituare dato che troverai maggiori esempi in c# e cmq entrambi i linguaggi usando il framework avranno tantissime cose in comune, si tratta veramente di poca fatica...e poi ci sono anche tool come quello che ti aiutano ancora di piu
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
gio 24 lug 2008 - 22:39
ciao, gentilissimo, mi vedo l'esempio e ti faccio sapere, grazie
Torna su
Stanze Forum
Elenco Threads
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 !