Differenza report tra acOutputReport e acViewPreview

di il
21 risposte

Differenza report tra acOutputReport e acViewPreview

Ciao a tutti

ho un problema sul salvataggio di un report tramite command button.

Quando Faccio solo un acviewpreview, il report é visualizzato correttamente, con tutti campi calcolati che sono nell'evento apertura report.

Quando invece faccio acoutputreport  per salvarlo in pdf, il file viene salvato correttamente ma i campi calcolati non ci sono.

Cosa potrebbe essere?

ecco i due codici che utilizzo per la preview e per il salvataggio

stDocName = "test"
filtro = "Cod=" & Forms!Newc!casellaRicerca
DoCmd.OpenReport stDocName, acViewPreview, , filtro
stDocName = "test"
filtro = "Cod=" & Forms!Newc!casellaRicerca
DoCmd.OpenReport stDocName, acViewPreview, , filtro, acHidden
 DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, pth & headpdf & " _test.pdf"
  DoCmd.Close acReport, stDocName, acSaveNo

Ho anche provato ad inserire una msgbox nel codice di apertura report per vedere se il campo viene calcolato, ed il valore della msgbox é corretta

MsgBox (Report!Ter!txtSIG)

21 Risposte

  • Re: Differenza report tra acOutputReport e acViewPreview

    18/10/2024 - fabionik2004 ha scritto:

    con tutti campi calcolati che sono nell'evento apertura report.

    Che codice hai scritto nell'evento Open?

  • Re: Differenza report tra acOutputReport e acViewPreview

    Questo ò il codice che c'è all'apertura del report, i campi che non riesco a visualizzare nel pdf salvato sono questi, che si trovano in un sottoreport TGC

    Report!TGC!("txtSign" & I) = strRiga

    mentre quelli nel report principale vengono visualizzati correttamente

    Me("txtSign" & I) = strRiga

    Invece se faccio acpreview tutti  i campi sono visualizzati correttamente.

    Private Sub Report_Load()
    
    Dim rs As DAO.Recordset
    Dim strRiga As String
    Dim cod1, I As Integer
    cod1 = Forms.NewContract.Cod
    
    
    'Stampa Firme
    Set rs = CurrentDb.OpenRecordset("Select * From Persons WHERE Signature = True AND Cod Like '" & cod1 & "' ;")
    strRiga = ""
    If rs.EOF Then
    
    Else
    I = 0
    With rs
    Do Until I = 2 Or .EOF
    I = I + 1
    strRiga = strRiga & !Name & " " & !Surname
    Me("txtSign" & I) = strRiga
    Report!TGC!("txtSign" & I) = strRiga
    strRiga = ""
    .MoveNext
    Loop
    End With
    End If
    
    rs.Close
    
    
    End Sub
  • Re: Differenza report tra acOutputReport e acViewPreview

    Prima di lanciarmi in analisi e correzioni varie (alcune già ci sono sul codice scritto ma non dovrebbero risolvere il problema), puoi dirmi se il campo calcolato che in esportazione non è visualizzato correttamente ha comunque un valore, seppur sbagliato, o riporta un messaggio d'errore tipo #Errore? o è proprio del tutto assente?

    Codice con rientri, per facilitare la lettura, ma da rivedere in un post successivo.

    Private Sub Report_Load()
        Dim rs As DAO.Recordset
        Dim strRiga As String
        Dim cod1, I As Integer
        cod1 = Forms.NewContract.Cod
    
        'Stampa Firme
        Set rs = CurrentDb.OpenRecordset("Select * From Persons WHERE Signature = True AND Cod Like '" & cod1 & "' ;")
        strRiga = ""
        If rs.EOF Then
    
        Else
            I = 0
            With rs
                Do Until I = 2 Or .EOF
                    I = I + 1
                    strRiga = strRiga & !Name & " " & !Surname
                    Me("txtSign" & I) = strRiga
                    Report!TGC!("txtSign" & I) = strRiga
                    strRiga = ""
                    .MoveNext
                Loop
            End With
        End If
    
        rs.Close
    End Sub
  • Re: Differenza report tra acOutputReport e acViewPreview

    Ciao,

    i campi  Report!TGC!("txtSign" & I) = strRiga  nel pdf sono vuoti senza nessun errore

  • Re: Differenza report tra acOutputReport e acViewPreview

    Prova a mettere un punto di interruzione su questa riga

     DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, pth & headpdf & " _test.pdf"

    Il codice si ferma prima di eseguirla, poi con F8 prosegui. E' un tentativo per vedere se l'esportazione avviene “troppo presto” rispetto all'apertura in anteprima di stampa. Un tentativo, senza pretese o grandi attese.

  • Re: Differenza report tra acOutputReport e acViewPreview

    Ho provato, ma il risultato non cambia, i campi interessati rimangono vuoti.

    Ho notato che se faccio output in pdf dei singoli report, i campi vengono stampati correttamente. 

    Il problema si presenta quando ho un sottoreport dentro il report principale, ed in questo caso i campi calcolati sul sottoreport non vengono calcolati

  • Re: Differenza report tra acOutputReport e acViewPreview

    Apri il report prima in modalità non visibile poi esegui l'output e poi chiudilo.

  • Re: Differenza report tra acOutputReport e acViewPreview

    19/10/2024 - @Alex ha scritto:


    Apri il report prima in modalità non visibile poi esegui l'output e poi chiudilo.

    E' quello che sto gia facendo credo

    stDocName = "test"
    filtro = "Cod=" & Forms!Newc!casellaRicerca
    DoCmd.OpenReport stDocName, acViewPreview, , filtro, acHidden
     DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, pth & headpdf & " _test.pdf"
      DoCmd.Close acReport, stDocName, acSaveNo

    tra l'altro se tolgo l'opzione achidden il report é corretto. Ma é proprio il pdf salvato che non é corretto

  • Re: Differenza report tra acOutputReport e acViewPreview

    Forse se posti, su un sito di condivisione dati preferibilmente no onedrive, un esempio possiamo verificare direttamente ciò che accade e aiutarti più efficacemente.

  • Re: Differenza report tra acOutputReport e acViewPreview

    Mi associo a Stifone.

  • Re: Differenza report tra acOutputReport e acViewPreview

    Direi che qualche cosa di molto anomalo c'è come approccio… e mi riferisco al codice:

    Do Until I = 2 Or .EOF
    	I = I + 1
        strRiga = strRiga & !Name & " " & !Surname
        Me("txtSign" & I) = strRiga
        Report!TGC!("txtSign" & I) = strRiga
        strRiga = ""
        .MoveNext
    Loop

    Cercavo di capire perchè scrivi anche nel Report TGC… e non solo in quello aperto…?

    Report!TGC!("txtSign" & I) = strRiga

    poi volevo capire perchè strRiga la valorizzi così:

    strRiga = strRiga & !Name & " " & !Surname

    visto che poi azzeri strRiga…  il tutto è meglio scriverlo così:

    Do Until I = 2 Or .EOF
    	I = I + 1
        strRiga = !Name & " " & !Surname
        Me("txtSign" & I) = strRiga
        Report!TGC!("txtSign" & I) = strRiga
        .MoveNext
    Loop

    Domanda poi ignota… perchè limiti a 2 iterazioni o EOF…?

  • Re: Differenza report tra acOutputReport e acViewPreview

    Rieccomi, sono stato via qualche giorno.

    ho creato un piccolo DB di esempio.

    come notate nella maschera, nell'apertura preview, la casella di testo del secondo report é valorizzata.

    Mentresalvando il pdf, la casella non é valorizzata

    https://www.dropbox.com/scl/fi/6rw5rul9wzbvhtaekbfgq/TEST.accdb?rlkey=hrkfwdr5cxrsbh6nmthb4burq&st=8ghq7zym&dl=0

  • Re: Differenza report tra acOutputReport e acViewPreview

    24/10/2024 - fabionik2004 ha scritto:


    ho creato un piccolo DB di esempio.

    Confermo l'errore, anche su un database creato da zero. Non so il motivo e per qualche stratagemma ci devo pensare. Per la cronaca: il problema si verifica anche se provo a stampare il report aperto in anteprima con PDF Creator.

  • Re: Differenza report tra acOutputReport e acViewPreview

    25/10/2024 - Philcattivocarattere ha scritto:


    24/10/2024 - fabionik2004 ha scritto:


    ho creato un piccolo DB di esempio.

    Confermo l'errore, anche su un database creato da zero. Non so il motivo e per qualche stratagemma ci devo pensare. Per la cronaca: il problema si verifica anche se provo a stampare il report aperto in anteprima con PDF Creator.

    Si effettivamente non avevo fatto questa prova di stampare il report aperto e l'errore si presenta anche in quel caso

Devi accedere o registrarti per scrivere nel forum
21 risposte