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
Crystal Reports e reportistica
[vb.net] Report di immagini
giovedì 30 agosto 2007 - 16.07
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
gio 30 ago 2007 - 16:07
Salve, ho realizzato un software che visualizza anche delle immagini. Nel db access le immagini sono memorizzate sotto forma di path e non di immagine vera e propria. Quando effettuo report con dataset siccome nel database cè memorizzato il path dellimmagine nel report mi viene memorizzata il path e non l'immagine, comne posso risolvere? spero di essere stato chiaro, grazie 1000
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 30 ago 2007 - 21:15
>Salve, ho realizzato un software che visualizza anche delle immagini. Nel db access le immagini sono memorizzate sotto forma di >path e non di immagine vera e propria. Quando effettuo report con dataset siccome nel database cè memorizzato il path >dellimmagine nel report mi viene memorizzata il path e non l'immagine, comne posso risolvere? spero di essere stato chiaro, grazie >1000
Dovresti caricare nel dataset l'immagine relativa al path specificata in un campo blob.
Ti consiglio questo trucchetto:
Crei il tuo DataSet passandogli una select di questo tipo:
"SELECT Campo1,Campo2,... CampoPath, CONVERT(image, '') AS Immagine FROM Nometabella"
In questo modo creerai un DataTable con i campi specificati più una colonna che accetta dati di tipo blob (e quindi immagine) chiaramente vuota.
Ora non ti resta che ciclare i record del tuo DataSet e caricare nel campo l'immagine specificata nel campo path:
Dim CurRow As DataRow
For Each CurRow In TuoDataSet.Tables("NomeTabella").Rows
CurRow.Item("Immagine") = GetFile(CurRow.Item("CompoPath"))
Next
Ora puoi passare il dataset al tuo report per la stampa
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
gio 30 ago 2007 - 22:33
Grazie dell'aiuto, però sono un po spiazzato, non ho mai sentito parlare di un campo blob, inoltre questo campo devo dichiararlo nel database? Grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 30 ago 2007 - 22:42
Ti rimando a questo articolo scritto dal grande David De Giacomi che spiega cos'è un campo blob, vantaggi e svantaggi del suo utilizzo:
http://www.dotnethell.it/articles/DatabaseBLOBs.aspx
A questo link invece trovi le istruzioni più dettagliate su come implementare quanto ti ho brevemente sintetizzato prima:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx
Se hai bisogno di aiuto sono a disposizione
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
gio 30 ago 2007 - 23:00
Quindi se non erro un tipo blob è un tipo binary, quindi io nel mio database access oltre ad avere il campo pathimage di tipo string che contine il path dell'immagine devo creare un campo di tipo binary per l'appoggio dell'immagine, ho compreso bene? Grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 30 ago 2007 - 23:09
Non hai compreso bene...
Allora cerco di farti capire partendo da come funziona il DataSet.
Quando crei un DataSet con un DataAdapter (metodo fill), non fai altro che creare una copia lato client del DataBase fisico; questo significa che potrai apportare modifiche al DataTable senza influenzare il DataBase fisico.
Premesso questo, la procedura che ti consiglio di attuare è questa:
1. Creai un DataSet attraverso il DataAdapter (metodo fill) passando come stringa command quella che ti ho indicato prima; in questo modo la tabella lato client (copia del database fisico) che si viene a creare avrà una colonna in più rispetto a quella del database fisico; questa colonna sarà di tipo blob (potrà quindi contenere un'immagine).
2. A questo punto devi ciclare, come ti ho indicato prima, tutti i record del tuo DataTable (che ti ricordo è disconnesso) e caricare nel campo BLOB le immagini derivanti dal Path specificato nel relativo campo.
3. Per finire devi passare questo DataSet al tuo Report e avviarlo.
Ora non sò quanto tu abbia dimestichezza con i DataSet...
Fammi sapere se ti è tutto chiaro
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
gio 30 ago 2007 - 23:20
Quello che non mi è chiaro è come faccio a dichiarare iol campo blob. Scusa se non capisco.
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 30 ago 2007 - 23:25
Nessun problema.
Il campo BLOB lo crei attraverso la funzione CONVERT(image,'') che dovrai inserire nella SELECT (in coda ai campi che realmente estrapoli dal Database) che passi al meto FILL del DataAdapter. Questa funzione crea il campo BLOB nel DataTable.
Ecco l'esempio di prima:
SELECT Campo1,Campo2,... CampoPath, CONVERT(image, '') AS Immagine FROM Nometabella
Ora ti è chiaro?
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
gio 30 ago 2007 - 23:27
Ah ecco ora si, ti faccio sapere qualcosa domani perchè ora sono finito, grazie della disponibilità
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 30 ago 2007 - 23:29
Di nulla, a domani.
Ciao
Ale
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
ven 31 ago 2007 - 10:31
Arieccomi, ho un problema sulla riga
Dim CurRow As DataRow
For Each CurRow In AnamnesiAtletaDataSet3.Tables("NomeTabella").Rows
CurRow.Item("Immagine") = GetFile(CurRow.Item("CompoPath"))
Next
in quanto mi dice che getfile non è dichiarato. L'esempio del link da te proposto è in c# io uso .net, come risolvo? grazie ancora
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 31 ago 2007 - 13:08
>Dim CurRow As DataRow
>For Each CurRow In AnamnesiAtletaDataSet3.Tables("NomeTabella").Rows
>CurRow.Item("Immagine") = GetFile(CurRow.Item("CompoPath"))
>Next
Credo che tu stia usando VB.NET 2003 vero?
In questo caso puoi usare
Dim CurRow As DataRow
For Each CurRow In AnamnesiAtletaDataSet3.Tables("NomeTabella").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("CompoPath"))
Next
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
ven 31 ago 2007 - 13:15
Sbaglio qualcosa, ti posto il codice che uso, magari sapresti dirmi l'errore, uso vb.net 2005.
La tabella in questione è TempAnamnesiAtleta. Il campo contenente il path è Foto. Il campo del datset di tipo blob è Immagine.
Dim objConn As OleDbConnection
Dim daT1, As OleDbDataAdapter
Dim AnamnesiAtletaDataSet3 As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
objConn = New OleDbConnection(strConnection)
objConn.Open()
strSQL = "SELECT * CONVERT(Foto, '') AS Immagine FROM TempAnamnesiAtleta"
Dim CurRow As DataRow
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto"))
Next
daT1 = New OleDbDataAdapter(strSQL, objConn)
AnamnesiAtletaDataSet3 = New DataSet
daT1.Fill(AnamnesiAtletaDataSet3, "TempTestAtleta")
Dim rpt As New CrystalReport7
rpt.SetDataSource(AnamnesiAtletaDataSet3)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()
Grazie 1000
Dimenticavo, l'errore che mi da è alla riga
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
(Riferimento a un oggetto non impostato su un istanza di un oggetto)
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 31 ago 2007 - 13:52
>strSQL = "SELECT * CONVERT(Foto, '') AS Immagine FROM TempAnamnesiAtleta"
Il tuo errore è nella Select. Manca una virgola di divisione tra * (che indica l'estrazione di tutti i campi) e il campo aggiuntivo Immagine.
Quindi la stringa corretta è:
strSQL = "SELECT TempAnamnesiAtleta.*, CONVERT(Foto, '') AS Immagine FROM TempAnamnesiAtleta"
>Dimenticavo, l'errore che mi da è alla riga
>For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
>(Riferimento a un oggetto non impostato su un istanza di un oggetto)
Questo errore ti segnala che l'oggetto tabella a cui ti riferisci non esiste. Infatti, essendo errata la Select, la tabella non viene generata.
il resto mi sembra ok!
>Grazie 1000
Di nulla, ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
ven 31 ago 2007 - 14:10
Mi da sempre lo stesso errore sulla stessa riga, ho controllato la tabella se avavo sbagliato le diciture ma tutto ok, però l'errore persiste
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 31 ago 2007 - 14:16
Scusa ma non mi ero accorto del tuo errore più grave!!!
>strSQL = "SELECT TempAnamnesiAtleta.*, CONVERT(Foto, '') AS Immagine FROM TempAnamnesiAtleta"
non devi scrivere CONVERT(Foto,'') ma bensi CONVERT(Image,'') perchè questa funzione ti crea un nuovo campo di tipo Image vuoto, non fa alcun riferimento a campi del database.
Poi con la routine di caricamento file vai a riempire questo campo.
Spero che ora ti sia chiaro
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
ven 31 ago 2007 - 14:25
Non va, spero che non ti scocci ma non so che fare.
Riposto il codice:
Dim objConn As OleDbConnection
Dim daT1, As OleDbDataAdapter
Dim AnamnesiAtletaDataSet3 As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
objConn = New OleDbConnection(strConnection)
objConn.Open()
strSQL = "SELECT *, CONVERT(Image, '') AS Immagine FROM TempAnamnesiAtleta"
Dim CurRow As DataRow
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto"))
Next
daT1 = New OleDbDataAdapter(strSQL, objConn)
AnamnesiAtletaDataSet3 = New DataSet
daT1.Fill(AnamnesiAtletaDataSet3, "TempAnamnesiAtleta")
Dim rpt As New CrystalReport7
rpt.SetDataSource(AnamnesiAtletaDataSet3)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 31 ago 2007 - 14:28
Ci mancherebbe che mi scoccio...
Ripostami il codice così come lo hai modificato e se puoi allegami anche il file MDB così tagliamo la testa al toro e te lo preparo io per benino così individuiamo dove stà l'errore...
Ciao
Ale
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
ven 31 ago 2007 - 14:45
410_AnamnesiAtleta.zip
Dim objConn As OleDbConnection
Dim daT1, As OleDbDataAdapter
Dim AnamnesiAtletaDataSet3 As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
objConn = New OleDbConnection(strConnection)
objConn.Open()
strSQL = "SELECT *, CONVERT(Image, '') AS Immagine FROM TempAnamnesiAtleta" --------dapprima al posto di image inserivo foto che è il campo del db
Dim CurRow As DataRow
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto")) -----------foto è il campo del db
Next
daT1 = New OleDbDataAdapter(strSQL, objConn)
AnamnesiAtletaDataSet3 = New DataSet
daT1.Fill(AnamnesiAtletaDataSet3, "TempAnamnesiAtleta")
Dim rpt As New CrystalReport7
rpt.SetDataSource(AnamnesiAtletaDataSet3)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 31 ago 2007 - 23:44
Ecco risolto l'arcano!
Dim objConn As OleDbConnection
Dim daT1 As OleDbDataAdapter
Dim AnamnesiAtletaDataSet3 As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
objConn = New OleDbConnection(strConnection)
objConn.Open()
strSQL = "SELECT * FROM TempAnamnesiAtleta" <== Ho tolto la funzione CONVERT xchè non funziona su Db Access
daT1 = New OleDbDataAdapter(strSQL, objConn)
AnamnesiAtletaDataSet3 = New DataSet
daT1.Fill(AnamnesiAtletaDataSet3, "TempAnamnesiAtleta")
' Dopo aver creato il DataTable, aggiungo un campo di tipo image (blob)
AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Columns.Add("Immagine", GetType(Image))
Dim CurRow As DataRow
' Solo ora esegui il ciclo per riempire il campo con l'immagine che caricherai dal path relativo
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto"))
Next
' E ora lanci il report passandogli il Dataset
Scusami, avevo commesso io un errore. Non ricordavo che la funzione CONVERT non funziona su Database Access ma solo su DB Sql (che io sono abituato ad utilizzare).
Ho provato tutto da me e funziona che è una meraviglia! Prova e speriamo sia la volta buona.
Ciao
Alessandro
P.S.: Scusa se ti ho risposto tardi ma purtroppo non posso essere sempre davanti al computer, devo anche lavorare...
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
sab 1 set 2007 - 00:28
Grazie 1000 ora funziona, però nella visualizzazione non mi visualizza nessuna immagine bensi il path, ti allego la foto del risultato, dove sbvaglio?
586x377
33Kb
io al crystal report ho collegato il anamnesiAtletaDataSet3 e poi nella visualizzazione ho trascinato il campo foto
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 1 set 2007 - 00:33
Bene, fino a qui ci siamo arrivati...
Ora vado a nanna... domani ti spiego cosa fare per realizzare correttamente il tuo report.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
sab 1 set 2007 - 00:36
Grazie ancora
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 1 set 2007 - 17:23
Allora... considerando che Access non mi consente di creare un DataSet con la funzione CONVERT, ti tocca per forza fare così:
1. Modifichi la tabella fisica del database Access aggiungento un campo di typo OggettoOLE che chiamerai per l'appunto immagine;
2. Ora modifichi il tuo report aggiornando il DataSet a cui ti colleghi che ora avrà un campo aggiuntivo 'Immagine' che è quello che devi usare per inserire l'immagine;
3. Il resto rimane invariato, unica cosa, elimina dal codice l'aggiunta del campo immagine a runtime che non è più necessaria.
In questo modo cosa succede:
- Carichi il DataSet con i dati derivanti dal DataBase; tutte le datarow avranno il campo Immagine vuoto!
- A runtime carichi nel DataSet (lato client) le immagini relative ai path specificati; in questo modo non vengono memorizzate nel database fisico ma solo nel DataSet a cui si collega il Report;
Il vantaggio stà nel fatto che se tu salvassi le immagini nel database quest'ultimo crescerebbe in maniera esagerata creando dei seri problemi prestazionali.
Chiaro che anche le immagini caricate lato client hanno il loro peso ma solitamente si parte da una SELECT che riduce il numero di record rispetto a quelli nel database.
Spero di essere stato sufficientemente chiaro
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
sab 1 set 2007 - 18:44
Ciao, ho fatto come mi hai spiegato, però mi da degli errori, ti posto il codice e poi alla riga ti deco cosa mi da:
Dim objConn As OleDbConnection
Dim daT1 As OleDbDataAdapter
Dim AnamnesiAtletaDataSet3 As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
objConn = New OleDbConnection(strConnection)
objConn.Open()
strSQL = "SELECT * FROM TempAnamnesiAtleta"
daT1 = New OleDbDataAdapter(strSQL, objConn)
AnamnesiAtletaDataSet3 = New DataSet
daT1.Fill(AnamnesiAtletaDataSet3, "TempAnamnesiAtleta")
' Dopo aver creato il DataTable, aggiungo un campo di tipo image (blob)
AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Columns.Add("Immagine", GetType(Image)) <====****1*****
Dim CurRow As DataRow
' Solo ora esegui il ciclo per riempire il campo con l'immagine che caricherai dal path relativo
For Each CurRow In AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Rows
CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto")) <====****2*****
Next
<====****1***** Una colonna immagine appartiene già a a questa datatable
<====****2***** Il tipo di valore non è conforme al tipo di colonna impossibile archioviare System.Drawing.Bitmap nella colonna immagine, il tipo previsto è Byte[]
Come posso risolvere? Grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 1 set 2007 - 22:29
>' Dopo aver creato il DataTable, aggiungo un campo di tipo image (blob)
>AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Columns.Add("Immagine", GetType(Image)) <====****1*****
Se leggi bene ti avevo scritto di togliere il codice che aggiunge il campo immagine xchè già presente!!!
>CurRow.Item("Immagine") = System.Drawing.Bitmap.FromFile(CurRow.Item("Foto")) <====****2*****
Ora verifico. Scusa ma con database Access non ho più contatti da un pò di tempo... provo e ti faccio sapere.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
sab 1 set 2007 - 23:04
Si, in effetti questa riga
AnamnesiAtletaDataSet3.Tables("TempAnamnesiAtleta").Columns.Add("Immagine", GetType(Image))
la avevo eliminata.
Però siccome mi dava un secondo errore ho deciso di ripristinare il tutto e segnalarti gli errori, scusa se ti sto scocciando, però è la prima volta che lavoro con report di immagini e non so dove mettere le mani, Grazie 1000
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
lun 3 set 2007 - 15:13
Sono in difficoltà anch'io... sto facendo delle ricerche perchè non mi è ben chiaro come gestire i campi blob in Access...
Ti tengo aggiornato appena ho chiarito la cosa.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
lun 3 set 2007 - 16:16
ok grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 3 set 2007 - 20:58
ciao,
scusate se mi intrometto, ma scorrendo velocemetne questo thread mi stavo chiedendo, ma seguendo quanto fatto in questo tip non funziona?
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx
infondo c'e' anche un download dell'esempio, prova a vedere come viene fatto li.Il concetto cmq è che ti puoi creare un campo blob sul db access (se lavori con un dataset nel progetto, lo puoi aggiungere a quello, direttamente nel designer di visual studio, da tastoDX sopra alla tabella "aggiungi colonna" e specificargli il tipo blob/image)
Dopodiche' usi il codice dell'esempio dove viene fatto il caricamente su un'oggetto immagine del framework e passato come bytes dentro al campo, cosi' il report che si aspetta quel formato, renderizza le varie immagini...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
lun 3 set 2007 - 22:04
Già superpippo mi aveva dato questa dritta, però non ci son riuscito, oltretutto li si parla di c# e io non ne capisco molto di c#. Grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 3 set 2007 - 22:23
ciao,
sinceramente se programmi in .net dovrai abituarti a passare tra un linguaggio e l'altro, soprattutto da c# e vb.net che sono molto molto simili, tanto simili che esistono dei traduttori di codice automatici tipo questo:
http://www.carlosag.net/Tools/CodeTranslator/
Prova a convertirti il progetto e vedere dove sbagli, li fa quello che vuoi fare tu, dovrebbe aiutarti a calarlo nella tua situazione...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
mar 4 set 2007 - 09:40
Sto provandoi a fare cosi, ma al report devo agganciargli il data set?
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
mar 4 set 2007 - 09:53
Tutto ok, funzionaaaaaaa
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 4 set 2007 - 13:45
Ciao,
sono stato assente un paio di giorni per lavoro e vedo che nel frattempo hai risolto... ma come? sembrerebbe che tu habbia seguito le mie iniziali istruzione... ma consa non funzionava?
Fammi sapere, ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
mar 4 set 2007 - 14:57
Si, Grazie alla segnalazione di freeteo sono risucito a convertire il codice del link da te come da freeteo segnalatomi in vb.net. Praticamente quando lo segnalasti tu, nella conversione a vb sbagliavo qualcosa. Cmq ora ho risolto in questo modo, ti mando il codice.
Dim miaConn As OleDbConnection = New OleDbConnection(("Data Source=" + Application.StartupPath + "\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"))
Dim miaDataAdapter As OleDbDataAdapter = New OleDbDataAdapter("select * from TempAnamnesiAtleta", miaConn)
Dim miaTab As DataTable = New DataTable("Immagine")
miaDataAdapter.Fill(miaTab)
For Each miaDr As DataRow In miaTab.Rows
miaDr("Immagine") = getFile(CType(miaDr("Foto"), String))
Next
'---- setto la sorgente del report
Dim rpt As New CrystalReport7
rpt.SetDataSource(miaTab)
CrystalReportViewer1.ReportSource = rpt
End Sub
Private Function getFile(ByVal pFilePath As String) As Byte()
Dim mioStream As FileStream = New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
Dim mioBuffer() As Byte = New Byte((mioStream.Length) - 1) {}
mioStream.Read(mioBuffer, 0, mioBuffer.Length)
Return mioBuffer
End Function
Ora però sorge un problema, quando avvio il programma e visualizzo i dati per poi inviarli al report tutto bene, se torno indietro per inviare i nuovi dati al report l'immagine è sempre la stessa, anche se io ho cambiato percorso. inoltre nella form quando inserisco una nuova immagine tramite percorso mi visualizza questo errore a questa riga:
Me.PictureBox1.Image = System.Drawing.Bitmap.FromFile(foto) ======== Memoria Insufficiente
Come mai nel report le foto non vengono aggiornate nonostante il percorso sia cammbiato e mi segnala memoria insufficiente nonostante abbia 1 Gb di ram? Grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
mar 4 set 2007 - 16:25
Ho risolto, era il formato delle immagini troppo grande, grazie
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 4 set 2007 - 17:20
Ormai ti risolvi i problemi da solo...
... forte, ciao.
Alessandro
http://blogs.dotnethell.it/alebadalin
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 4 set 2007 - 20:30
ok ertulio, accetta qualche risposta cosi' marchiamo il thread (abbastanza corposo direi) come risolto...
Grazie
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ertulio
Profilo
| Senior Member
312
messaggi | Data Invio:
mar 4 set 2007 - 22:13
Vi ringrazie entrambi per l'aiuto
http://www.risorsefantacalcio.it
Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.
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 !