Newsgroup: it.comp.appl.access
Titolo: Numero di immagini in un report

Vi risulta che in un report č possibile inserire al massimo 3 controlli 
immagine?
Se ne inserisco quattro o piů nel corpo ne vedo e stampo solo tre.
AXP + WXP + OFFpro2003
Ciao, Carlo 

 ha scritto nel messaggio 
news:em0ccl$fc9$1...@tdi.cu.mi.it...

Parlo di immagini non collegate e valorizzate a runtime.
Ciao, Carlo 

 ha scritto nel messaggio 
news:em0cfa$feo$1...@tdi.cu.mi.it...

Ho provato ad inserire 16 immagini incorporate (da immagine0 a immagine15). 
Nessun problema. (AXP + WXP + OFFpro2003)
Ciao.
eSQueL 

 eSQueL
Infatti.
Il problema, come ho detto, si presenta con immagini non collegate e 
valorizzate a runtime:
Me.Immagine1.Picture = Path
Fino a tre sono visibili e stampabili...
Ciao, Carlo 

 Fino a tre sono visibili e stampabili...
Bitmap?
Saluti.

 ha scritto nel messaggio 
news:em0erq$ha7$1...@tdi.cu.mi.it...

Anche cosě, con otto immagini non sembra darmi problemi. Sono visibili, ma 
non ho provato a stamparle.
Ciao.
eSQueL 

 ha scritto nel messaggio 
news:4583c51b$0$22382$4faf...@reader2.news.tin.it...

Jpg. Con le bmp funziona.
Ciao, Carlo 

 eSQueL
Per essere sicuro di riprodurre il fenomeno assicurati di avere inserito un 
(n) controllo "Immagine" (non cornice oggetto) e che la proprietà "immagine" 
(picture) sia impostata su "(nessuna)".
Per fare questo, come sai, devi prima inserire il controllo collegandolo o 
incorporando un'immagine da disco; poi dalla proprietà immagine cancelli la 
stringa di connessione.
Su formattazione o, meglio, su stampa del corpo imposti la proprietà picture 
dei controlli.
Fammi sapere.
Ciao, Carlo 

 Ciao, Carlo
Confermo. Controllo immagine con prop. immagine impostata a "nessuna". 
Inoltre, ho provato ad azionare la procedura sia in
Private Sub Report_Open(Cancel As Integer), sia in Private Sub 
Corpo_Format(Cancel As Integer, FormatCount As Integer)
 

 ha scritto nel messaggio 
news:4583ccc7$0$19100$4faf...@reader4.news.tin.it...

Allora mi sa che il problema è relativo alle dimensione delle immagini jpg. 
Con le immagini bmp non ha problemi.
Vediamo se qualcun'altro ha lo stesso problema...intanto ti ringrazio.
Ciao, Carlo 

 Jpg. Con le bmp funziona.
Lo immaginavo: tipico problema da conversione Jpeg -- bmp.
Se non puoi utilizzare Bitmap, prova a sfruttare le API di Lebans per
caricare l'immagine Jpg nel controllo senza filtri di Office.
Non le ho provate all'interno di un Report ma dovrebbero funzionare.
Saluti.

 Ciao, Carlo
Ciao Carlo.
Io ebbi diversi problemi ancora qualche anno fà proprio con questo
argomento quando mi ero sviluppato un SW dedicato per l'archiviazione
di Immagini digitali provenienti da FotoCamere.
Non ci ho perso tanto tempo, ho usato la routine di Lebans che ByPassa
i filtri di conversione coinvolgendo GDI+ direttamente, e non ho mai
avuto sorprese, questa routine la usavo già nelle Form, quindi mi è
bastato poco(nulla in quanto basta passare il controllo Immagine e la
path del file) per adattarlo.
Tra le altre cose se usi XP non devi nemmeno distribuirla.
Il vantaggio più evidente era nel tempo di visualizzazione che si
riduceva drasticamente.
Tieni conto che io ti parlo di JPG da 1÷4 Mbyte quindi di discreta
dimensione, purtroppo non sono mai riuscito a sfruttare GDI+ per
ottenere ThumbNail così nel report caricavo il file originale...!
Non sò se ti sarà utile per risolvere.
@Alex

 ha scritto nel messaggio 
news:1166272880.0...@80g2000cwy.googlegroups.com...
Carlo Costarella ha scritto:
[CUT]

Ciao Carlo.




@Alex
--------------------------
Grazie della risposta.
Sì ci ho provato ma purtroppo anche Lebans fallisce nonostante immagini da 
2,5 Mb.
Nella visualizzazione migliora con:
Dim ret
ret = fLoadPicture(Me.Image4, Me.Path4, False)
DoEvents
ret = fLoadPicture(Me.Image1, Me.Path1, False)
DoEvents
ret = fLoadPicture(Me.Image2, Me.Path2, False)
DoEvents
ret = fLoadPicture(Me.Image3, Me.Path3, False)
DoEvents
Il doevents permette la visualizzazione delle 4 immagini (senza solo 3).
Ma nella stampa se ne mangia una, generando una coda di stampa di ben 105 Mb 
e nonostante il codice sia su corpo_Print.
Ciao, Carlo 

 Ciao, Carlo
Mmmmm ....!
Mi viene in mente sun solo sistema per tentare di rendere SINCRONA la
stampa solo dopo aver fatto rigenerare il Report....!
Cioè aprire un processo e verificare quando la generazione
dell'immagine è terminata, e solo a quel punto uscire, ma questo
dovrebbe essere fatto solo a livello del codice di Lebans mentra fa il
caricamento e passa per GDI+.
Sinceramente ci sarebbero da fare diverse prove...!
Una prova veloce però per capire se questa può essere la strada
giusta è quella di sopstituire il DOEVENTS con uno SLEEP a 2secondi
magari...!
Il fatto che la coda sia così grande è normale, ricorda che una JPG
di 2MB viene convertita in una BMP da un paio di decine di MB, quindi
la dimensione ci sta tutta...!
Io la soluzione reale al problema l'avrei(in linea teorica), nel senso
che una JPG da 2,5MB ha una risoluzione che, senza dubbio alcuno,
potrebbe essere stampata in A3....!
Ora, da come ho capito, tu hai 4 immagini in un foglio A4, pertanto
dovresti usare un Thumbnail, o un'immagine rimpicciolita, abbassata di
risoluzione...!
Come ti dicevo GDI+ consente di farlo sulle JPG in modo +/-
comprensibile, a forza di API, ma mentre per VB la cosa potrebbe essere
semplice, appoggiandosi al controllo PictureBox che come dai dispone di
ContestDevice, in Access questo non è possibile, quindi serve
inserirsi nella routine di Lebans in cui viene creato un Hdc in memoria
e fare diverse prove li in mezzo...!!!!!
Se ti interessa il tutto da qualche parte ho tutta la libreria delle
API di GDI+ in VB6 che potrebbe semplificarti la vita.....(forse...!)
@Alex

"Alessandro Baraldi"
Mmmmm ....!
Mi viene in mente sun solo sistema per tentare di rendere SINCRONA la
stampa solo dopo aver fatto rigenerare il Report....!
Cioè aprire un processo e verificare quando la generazione
dell'immagine è terminata, e solo a quel punto uscire, ma questo
dovrebbe essere fatto solo a livello del codice di Lebans mentra fa il
caricamento e passa per GDI+.
Sinceramente ci sarebbero da fare diverse prove...!
Una prova veloce però per capire se questa può essere la strada
giusta è quella di sopstituire il DOEVENTS con uno SLEEP a 2secondi
magari...!
Il fatto che la coda sia così grande è normale, ricorda che una JPG
di 2MB viene convertita in una BMP da un paio di decine di MB, quindi
la dimensione ci sta tutta...!
E convertire le jpg in bmp su disco, e caricare quest'ultime nei controlli
immagine?
Mi pareva (ma forse ricordo male) esistesse un metodo relativamente semplice
per operare la conversione da Visual Basic.
Saluti.

Simone Calligaris ha scritto:

Si anche questa è una buona idea..., che se funziona, come credo sia,
sarebbe estremamente più veloce, ovvio che non ridurrebbe le
dimensioni del file...!
Il codice per fare quello che dici è questo:
Public Function CreateBitmapFile(fName As String, bmpName As String) As
String
    Dim obj As Object
    If fIsFileDIR(RetPathFe & bmpName) Then Kill RetPathFe & bmpName
    Set obj = LoadPicture(fName)
    If Not IsNull(obj) Then
    SavePicture obj, RetPathFe & bmpName
    DoEvents
    End If
    CreateBitmapFile = "C:\SL11-52"
    Set obj = Nothing
End Function
   CreateBitmapFile FileNameJPG, FileNameBMP
Ciao
@Alex

"Alessandro Baraldi"
(cut)
Il codice per fare quello che dici è questo:
Public Function CreateBitmapFile(fName As String, bmpName As String) As
String
    Dim obj As Object
    If fIsFileDIR(RetPathFe & bmpName) Then Kill RetPathFe & bmpName
    Set obj = LoadPicture(fName)
    If Not IsNull(obj) Then
    SavePicture obj, RetPathFe & bmpName
    DoEvents
    End If
    CreateBitmapFile = "C:\SL11-52"
    Set obj = Nothing
End Function
   CreateBitmapFile FileNameJPG, FileNameBMP
Certo che sei proprio una miniera, eh?   ;-)
Saluti.

 Saluti.
Magari..... !
;-)
@Alex

 ha scritto nel messaggio 
news:1166288702.7...@l12g2000cwl.googlegroups.com...
Simone Calligaris ha scritto:




   CreateBitmapFile FileNameJPG, FileNameBMP
Ciao
@Alex
----------------------------------
Grazie per le dritte...ci lavorerò ancora un po'.
Tutto questo per non ricorrere a vari ocx tipo i kodak o i leadtools o anche 
altri, cha a quest'ora avrei già risolto da un pezzo come ho già fatto in 
passato...
La cosa serve ad un amico del NG che si trova a lavorare in Cina.
Ciao, Carlo

 Ciao, Carlo
Si la soluzione con OCX è la più sbrigativa, di norma, ma capendo il
tuo ambito di soluzione credo che possa essere valida l'idea di Simone.
@Alex