Io non ci sono mai riuscito gli unici modi che ho trovato per farli con crystal report sono questi:
1) il più banale e "stupido", se erano poche immagini, tipo il logo di intestazione lo mettevo sul report e lo visualizzavo o meno
2) ho utilizzato i campi blob, quindi nel caso di immagini fisiche creavo un datatable secondario collegato a quello dei dati mi scorrevo le singole righe e per ogni riga inserivo l'immagine nel campo blob.
potresti fare quindi così:
DataTable dt = new DataTable("immagini");
dt.Columns.Add("chiave", typeof(string));
dt.Columns.Add("Image", typeof(byte[]));
poi ciclando sulle righe dei dati principali all'inteno del ciclo potresi scrivere questo:
DataRow dr = dt.NewRow();
byte[] blob = ToBlob(file);
if (blob == null)
{
dr["Image"] = DBNull.Value;
}
else
{
dr["Image"] = blob;
}
dt.Rows.Add(dr);
dove file è il percorso del file immagine e ToBlob è la seguente funzione:
public static byte[] ToBlob(string file)
{
FileStream fs = null;
byte[] result = null;
if (File.Exists(file))
{
//Legge i dati del file indicato in un buffer
fs = new FileStream(file, FileMode.Open, FileAccess.Read);
result = new byte[fs.Length];
fs.Read(result, 0, (int)fs.Length);
fs.Close();
}
return result;
}
altri modi, dando a crystal report il percorso, sarei interessato anch'io a scoprirlo.
ciao
Vincenzo
Programmatore sbilenco