Visualizzazione Immagini da database SQLServer2005 in Crystal Report p...

venerdì 02 marzo 2007 - 18.25

EnricoF Profilo | Newbie

Salve. Ho un problema con Crystal Report (Visual Studio 2005). Ho inserito in
una tabella (assieme ad altri campi di diverso tipo) due campi di tipo
VarBinary(Max) per salvarvi i dati inerenti le immagini del report. Per
quanto riguarda la visualizzazione in una normale PictureBox non vi sono
problemi nella conversione tra i tipi di dati Byte() e Bitmap.
Nel caso del report ho creato in SQLServer 2005 una Tabled-Valued-Function
che restituisce una tabella che ricomprende anche questi due campi
VarBinary(Max). Ho Fatto derivare (con qli strumenti grafici di visual studio, attraverso l'oggetto SQLDataAdapter) da questa funzione un dataset tipizzato. Ho impostato questo dataset tipizzato come origine dati del report. Tutti i dati vengono visualizzati correttamente tranne che le immagini.
La proprietà DATI_IMMAGINE del dataset tipizzato che restituisce i dati dell'immagine sotto forma di array di Byte ed è collegata con l'omonimo Blob object del Report pur restituendo correttamente il flusso di Byte non consente la visualizzazione dell'immagine all'interno del report che rimane visible come quadratino vuoto.
Qualcuno per caso sa come aiutarmi in tal proposito?
Grazie in anticipo per l’attenzione e buona giornata.


freeteo Profilo | Guru

ciao,
la cosa mi suona molto strana....potrebbe anche essere un problema di codifica...
Hai provato a scaricarti questo esempio? :
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx

li viene caricato un campo blob come array di byte leggendo il file, prova a fare una tecnica simile, giusto per capire se usando ado.net e mettendo il valore dell'immagine dal campo (invece che dal file come nell'esempio) cambia qualcosa...giusto per capire se il problema è come escono i dati (non li vedresti neanche usando un oggetto Bitmap di c#) o come li interpreta Crystal...
ciao.

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

EnricoF Profilo | Newbie

Grazie per l'attenzione innanzitutto.
Ho provato a derivare dei dataset tipizzati da semplici tabelle database SQLServer 2005 attraverso il comando "Genera Dataset..." dell'oggetto SQLDataAdapter. Quando all'interno delle tabelle da cui derivo il dataset ci sono anche dei campi di tipo varbinary(MAX) che contengono dati di immagine il comando Genera Dataset (in ambiente di progettazione) genera il seguente messaggio di errore:
"Impossibile ottenere le informazioni sul tipo relative a 'Nome_Dataset'."
Dopo di che, il dataset viene comunque generato e alle sue proprietà corrispondenti ai campi dati immagine viene assegnato, nel designer del dataset il tipo dati Byte().
(Interessante notare che la Creazione Guidata dell'oggetto SQLDataAdapter, attraverso il quale ho generato il dataset tipizzato e costruito sulla tabella contenente i campi Blob non aveva generato nessun errore per quanto riguarda la creazione degli oggetti SelectCommand, UpdateCommand etc...)

A questo punto attraverso il metodo Fill di SQLDataAdapter popolo l'oggetto DataTable del dataset e visualizza il report nel seguente modo:

SqlDataAdapter1.Fill(dsTipizzato)
Dim rpt As New CrystalReport1
rpt.SetDataSource(dsTipizzato)
Me.CrystalReportViewer1.ReportSource = rpt

Sull'evento Load del form:

Me.CrystalReportViewer1.Show()

Il Report viene visualizzato ma le immagini rimangono vuote (anche impostando la proprietà CanGrow su True).
E' forse un problema di compatibilità tra Dataset Dot .Net e tipo dati varbinary(MAX)?

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