Campo viene visualizzato in preview Report, ma non viene stampato

di il
12 risposte

Campo viene visualizzato in preview Report, ma non viene stampato

Ciao a tutti, come da titolo, ho un campo in un sottoreport che viene popolato al caricamento del report.
Quando lancio l'antreprima di stampa vedo il campo correttamente, mentre quando stampo il report il campo non c'é.
Questo é il codice che popola il campo:
'Stampa Firme su report seconda pagina
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![Subreport2].Report!("txtSign" & I) = strRiga
strRiga = ""
.MoveNext
Loop
End With
End If
da cosa puo' dipendere?

12 Risposte

  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Perchè per stampare un report/sottoreport utilizzi recordset e VBA? Non hai 2 normali tabelle/query relazionate?
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Ciao Osvaldo, si ho piu tabelle relazionate, nel mio caso pero' avendo piu di un possibile firmatario mi era venuto piu semplice gestire il tutto tramite VB ed ha sempre funzionato, fino a quando ho creato questo nuovo report dove ho notato quanto descritto in precedenza.
    Come potrei risolvere?
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    fabionik2004 ha scritto:


    Quando lancio l'antreprima di stampa
    Giusto per togliersi ogni dubbio: nel titolo del thread hai scritto "preview Report" ma non parlavi quindi della modalità visualizzazione report ma di anteprima di stampa del report, vero?

    fabionik2004 ha scritto:


    Questo é il codice che popola il campo:
    In quale evento l'hai scritto? Di default la proprietà Visibile del controllo (non il campo, non ci sono campi nei report) è Sì? C'è qualche punto in cui intervieni su questa proprietà?

    fabionik2004 ha scritto:


    da cosa puo' dipendere?
    Oltre a quanto sopra, verifica che la casella di testo abbia la proprietà Visualizza impostata a Sempre e non Su schermo.
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Dunque in effetti mi hai fatto notare che nell'anteprima (dove visualizzo correttamente i campi) il comando é
    
    DoCmd.OpenReport stDocName, acPreview, , filtro
    
    Mentre nella stampa il comando é
    
    DoCmd.OpenReport stDocName, acViewPreview, , filtro, acHidden
       DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, pth & "TEST.pdf"
       DoCmd.Close acReport, stDocName, acSaveNo
      
    Come potrei intervenire?

    Per quanto riguarda l'evento che popola i campi si trova al caricamento del report. Mentre la proprietà di questi campi Visibile é correttamente su SEMPRE
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Nel 2° argomento di DoCmd.OpenReport non esiste acPreview, ma acViewPreview.
    Il 4° argomento (Condizione WHERE) riporta un "filtro" che non si capisce da dove viene.
    Hai messo un acHidden che nasconde il tuo report: come speri di vederlo?
    A cosa ti serve DoCmd.OutputTo se devi stampare?
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Nel 2° argomento di DoCmd.OpenReport non esiste acPreview, ma acViewPreview.
    Ok provo a correggere, ma stranamente dove ho usato questo parametro errato, visualizzo tutti i campi correttamente
    Il 4° argomento (Condizione WHERE) riporta un "filtro" che non si capisce da dove viene
    il filtro é solo un testo riportato qualche rigo prima filtro = "Cod=" & Me.casellaRicerca
    Hai messo un acHidden che nasconde il tuo report: come speri di vederlo?
    A cosa ti serve DoCmd.OutputTo se devi stampare?
    In effetti se ricordo bene quando avevo creato questo codice anni fa, avevo letto da qualche parte che quando salvo un pdf devo aprirlo in modalità nascosta, il DoCmd.OutputTo serve appunto per salvare il file pdf.
    In questo database non stampo mai da codice vba, se devo stampare prima apro l'anteprima (dove vedo correttamente tutti i campi) e dopo clicco su stampa(ed i miei campi di cui parlo non vengono stampati)
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    !update
    ho trovato uno stratagemma che funziona.
    Visto che i campi da popolare in questione si trovano sul sottoreport, ho creato due campi invisibili nel report principale, quindi vado a popolare questi due campi al caricamento del report, ed invece nei due campi del sottoreport inserisco il riferimento ai due campi del report principale.
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Serve sempre usare la testa quando si fanno le cose non a VANVERA..!!!!

    Il Metodo OpenReport, documentato nella GUIDA espone il Parmetro View, che esprime la modalità di visualizzazione, selezionabile tra le costanti di tipo AcView:
    
    Sub OpenReport(ReportName, [View As AcView = acViewNormal], 
              [FilterName], [WhereCondition], 
              [WindowMode As AcWindowMode = acWindowNormal], 
              [OpenArgs])
        Membro di Access.DoCmd
    Le costanti di tipo AcView sono elencate sempre nella GUIDA...!
    Quella che serve a te, inclusa tra le opzioni, è:
    
    Const acViewPreview = 2
        Membro di Access.AcView
    Ora se invece di usare il Nome della costante Enum, metti il valore esplicito [2] Funziona ugualmente... certo tecnicamente rende più complesso capirlo.
    Ora andiamo a vedere cosa rappresenta [acPreview] sempre dalla GUIDA:
    Const acPreview = 2
    Membro di Access.AcFormView[/code]

    Quindi ovvio che funziona, ha lo stesso valore... ma se seguiamo questo ragionamento potrei anche usare questo che non c'entra nulla ma vale sempre 2:
    
    Const acSysCmdUpdateMeter = 2
        Membro di Access.AcSysCmdAction
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Vedo che hai risolto, allora preciso solo una cosa. Ecco, invece ha già scritto @Alex

    fabionik2004 ha scritto:


    Nel 2° argomento di DoCmd.OpenReport non esiste acPreview, ma acViewPreview.
    ...dove ho usato questo parametro errato, visualizzo tutti i campi correttamente
    Perché acPreview è comunque una costante del modello ad oggetti di Access, anche se viene usata in altre situazioni. Siccome vale 2, quando è ora di eseguire il comando il programma risolve il valore della costante che per OpenReport è lo stesso valore della costante acViewPreview.
    Potrei creare una costante di (molta) fantasia
    Const philcattivocaratterePreview As Integer = 2
    ed avviare l'anteprima di stampa così
    DoCmd.OpenReport nomereport, philcattivocaratterePreview
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Tutto Chiaro, ho modificato in acViewPreview
    Grazie
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    fabionk2004 ha scritto:


    In effetti se ricordo bene quando avevo creato questo codice anni fa, avevo letto da qualche parte che quando salvo un pdf devo aprirlo in modalità nascosta, il DoCmd.OutputTo serve appunto per salvare il file pdf.
    In questo database non stampo mai da codice vba, se devo stampare prima apro l'anteprima (dove vedo correttamente tutti i campi) e dopo clicco su stampa(ed i miei campi di cui parlo non vengono stampati)
    Mi raccomando le denominazioni corrette di quello che dici/fai:
    - DoCmd.OpenReport APRE e MOSTRA con acViewPreview il report. Senza acViewPreview per default lo STAMPA direttamente
    - DoCmd.OutputTo significa ESPORTARE in un formato che dichiari dopo, ad es. acFormatPDF
  • Re: Campo viene visualizzato in preview Report, ma non viene stampato

    Grazie ancora per le delucidazioni!
Devi accedere o registrarti per scrivere nel forum
12 risposte