Reports

4.30 Procedura di inserimento immagini collegate nei report (per neofiti)
  Pierpaolo Placenza

Si suppone di aver creato una base di dati già funzionante e soprattutto di avere in un campo il percorso dove si trova l’immagine.
1 Si crea un report tramite creazione guidata o in struttura;
2 si inserisce nel corpo un campo immagine non associato che servirà poi per far visualizzare l’immagine, quindi bisogna prevedere un box sufficientemente grande;
3 si crea una casella di testo da collegare al campo con il percorso dell’immagine, dovrà poi essere nascosta per evitare di vedere il percorso stampato nel report. Questo controllo, deve essere casella di testo e associato alla query o alla tabella dove viene scritto il percorso dell’immagine;
4 cliccando poi sul corpo del report con il tasto destro del mouse, appare il menu a tendina, si seleziona “genera evento”, il sistema apre la finestra di lavoro del VBE (Visual Basic Editor) dove scrivere le righe di codice legate al corpo del report che stiamo manipolando (è importante precisare che i moduli possono essere di varia natura e che si devono mettere le mani solo sui moduli relativi al report che si sta usando);
>B>5 la finestra in cui scrivere il codice presenta già delle righe generate in automatico che si presentano come segue:
Private Sub Corpo_Print(Cancel As Integer, FormatCount As Integer)

End Sub
6 fra queste si deve scrivere una riga di codice che consente di associare il percorso dell’immagine (quello della casella di testo collegata alla tabella o alla query) al controllo immagine, così che il controllo immagine possa poi mostrare l’immagine collegata. La riga di codice è la seguente:
If IsNull(Me!Pimmagine) Then
     Me!ImmagineXX.Picture = ""
Else
     Me!ImmagineXX.Picture = Me!Pimmagine
End If
dove al posto di “ImmagineXX” si deve scrivere il nome del controllo immagine inserito nel corpo del report.; il nome è generato in automatico ma si può cambiare a piacimento; al posto di “Pimmagine” deve essere scritto il nome del controllo (normalmente nascosto) in cui è contenuto il percorso completo del file immagine da stampare.

Nota di Piepaolo Placenza
La procedura qui indicata funziona solo per percorsi assoluti, ossia quelli in cui il percorso comincia con la lettere che identifica l’unità disco (ad es.: C:\Immagini\tramonto.jpg) per ovviare a questo problema esiste della documentazione da me non ancora esaminata e che sarà presente nelle stesure successive del documento;

Nota di Roberto
Quanto qui sopra scritto funziona con file database .MDB e .MDE per visualizzare i tipi di file immagine per i quali si è caricato il filtro immagine durante l'installazione di Access.
Invece con il run time la cosa funzionerà esclusivamente con file immagine di tipi bitmap (.BMP) visto che i filtri immagine non vengono usati in un run time.
Per evitare tale vincolo esistono tre possibilità:
a) Utilizzare, invece dei controlli Immagine dei controlli ActiveX Kodak come mostrato nella mia FAQ pubblicata nella Sezione General di questo sito ed intitolata 6.115 Come è possibile scannerizzare, visualizzare, modificare, stampare e salvare files immagine usando gli ActiveX Kodak?. Però, come precisato nella FAQ, sembrerebbero che tali ActiveX non funzionino correttamente con Access 2003.
b) Utilizzare un OCX free così come suggerito da Carlo Costarella nella sua FAQ pubblicata nella Sezione Generl di questo sito ed intitolata 6.148 OCX free che permette di dotare un mdb di capacità video.
c) Usare gli OCX che si possono scaricare free dal sito di Stephen Lebans al link:
http://www.lebans.com/loadjpeggif.htm
Questo metodo è stato usato da Alessandro Baraldi per realizzare il database di esempio allegato alla sua FAQ pubblicata nella Sezione General di questo sito ed intitolata 6.125 Applicativo per la gestione delle immagini.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.