Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Stampa Immagini da DB su DataReport Vb6

    Ciao Ragazzi

    Ho un database, una semplice anagrafica, dove carico tra gli altri dati una foto del cliente. Carico la foto inserendo semplicemente in un campo testo l'URL della foto:

    Esempio:

    Foto- c:\immagini\foto.jpg

    Quando vado a stampare sul datareport , utilizzo questo codice

    codice:
    
    Dim cn_db As ADODB.Connection
    Dim rs_db As ADODB.Recordset
    Dim dbfile As String
    Dim mSQL As String
    
    ' nome database
    dbfile = "alfazer.mdb"
    
    ' apre la connessione al database
    Set cn_db = New ADODB.Connection
            cn_db.ConnectionString = _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & dbfile & ";" & _
            "Persist Security Info=False"
            cn_db.Open
    
    ' seleziona i dati
        mSQL = "SELECT * FROM ANAGRAFICA WHERE COGNOME='" & Form1.List1 & "'"
    
    ' prende i dati
        Set rs_db = cn_db.Execute(mSQL, , adCmdText)
    
    ' manda i dati al report
        Set DataReport1.DataSource = rs_db
        DataReport1.WindowState = vbMaximized
        DataReport1.Show vbModal
    
    ' chiude il database
        rs_db.Close
        cn_db.Close
        Set rs_db = Nothing
        Set cn_db = Nothing
    e per tutti i campi dati va alla grande, solo che non so come visulaizzare sul report la mia foto.

    Come posso fare?


  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Posto un codice già in uso, quidi dovrai adattarlo alle tue esigenze.
    Inserisci - nell'esempio Sections("Section2")- nel DataReport l'apposito controllo Image - nell'esempio con Nome Controls("ImagePrz")- e poi:
    codice:
    'Porta il Grafico nella pagina di stampa:
            With RptRiepVal.Sections("Section2")
    'Imposta le dimensioni dell'immagine:
                With .Controls("ImagePrz")
                    .Height = 4050
                    .Left = 0
                    .Top = 10
                    .Width = 11390
                    .PictureAlignment = rptPACenter
                    .SizeMode = 2
                    Set .Picture = LoadPicture(strFolderDati & "\Grafici\" & sNomeGraf)
                End With
            End With
    Nell'esempio si tratta di un grafico, ma la cosa non cambia per un'altra immagine, salvato nel percorso strFolderDati e con una variabile sNomeGraf che contiene il nome.
    LM

  3. #3

    Errore!

    Ho provato come mi hai detto mi da errore:
    Mi dice Necessario oggetto
    e si blocca qui:

    With RptRiepVal.Sections("Section1")

    il nome della sezione è giusta, il nome dell'oggetto image1 è giusto, non vorrei aver messo il codice che mi hai dato in una posizione sbagliata


    codice:
    Dim cn_db As ADODB.Connection
    Dim rs_db As ADODB.Recordset
    Dim dbfile As String
    Dim mSQL As String
    
    ' nome database
    dbfile = "alfazer.mdb"
    
    ' apre la connessione al database
    Set cn_db = New ADODB.Connection
            cn_db.ConnectionString = _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & dbfile & ";" & _
            "Persist Security Info=False"
            cn_db.Open
    
    ' seleziona i dati
        mSQL = "SELECT * FROM ANAGRAFICA WHERE COGNOME='" & Form1.List1 & "'"
    
    ' prende i dati
        Set rs_db = cn_db.Execute(mSQL, , adCmdText)
    
    
    
    'Porta il Grafico nella pagina di stampa:
            With RptRiepVal.Sections("Section1") <---------------errore
    'Imposta le dimensioni dell'immagine:
                With .Controls("Image1")
                    .Height = 4050
                    .Left = 0
                    .Top = 10
                    .Width = 11390
                    .PictureAlignment = rptPACenter
                    .SizeMode = 2
                    Set .Picture = LoadPicture("C:\foto.jpg")
                End With
            End With
    ' manda i dati al report
        Set DataReport1.DataSource = rs_db
        DataReport1.WindowState = vbMaximized
        DataReport1.Show vbModal
    
    ' chiude il database
        rs_db.Close
        cn_db.Close
        Set rs_db = Nothing
        Set cn_db = Nothing
    
    End Sub

  4. #4

    Fatto

    Ho capito nono mettevo il nome corretto del Datareport OK

    FUNZIONA grazie sei un grande!

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao aledg !
    Contento che hai superato il tuo problema.
    Nel vedere il codice da te postato mi sono chiesto come fai a trasferire le informazioni dal DB al DataReport. In particolare ti rivolgo questa richiesta perchè io uso il DataEnvironment quale tratto d'unione tra il DataReport ed il DB, ciò rende la struttura di stampa un pò rigida e quindi vorrei cambiare.
    LM

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    aledg, come non detto solo ora ho visto il tuo successivo post.
    LM

  7. #7
    Scusate se mi infiltro nella discussione...

    ciao, ho provato ad utilizzare il codice postato e funziona solo che mi stampa sempre la stessa immagini la 1° che estrae dal db..

    Come si fa a fargli stampare per ogni record la relativa immagine??

    Grazie Mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.