Etichetta report

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Etichetta report

    Quando hai postato l'immagine con la freccia indicante l'etichetta, avevo già capito che ti riferivi a quella.
    In VBA tentare di andare a cambiare le proprietà di ETICHETTE significa, per forza di cose, entrare necessariamente nella "visualizzazione struttura" report. Questo ti costringerebbe a dichiararlo esplicitamente quando fai DoCmd.OpenReport...acViewDesign. Non conviene questa strada.

    1. Vai in visualizzazione struttura report
    2. Clicca con il mouse destro dentro l'etichetta Report Anagrafiche e scegli Cambia in/Casella di testo
    3. Dentro questa casella di testo che presumo si chiami [Report Anagrafiche] ci scrivi dentro l'espressione
    = "Elenchi clienti di " & [Maschere]![NomeMaschera]![Città]
    4. Salva il report

    Il vantaggio di avere la casella di testo invece dell'etichetta è che la casella di testo andrà a LEGGERE DIRETTAMENTE il valore che figura in [Maschere]![NomeMaschera]![Città]
    In sostanza è fondamentale che tu abbia una maschera aperta con un valore visibile che il report andrà automaticamente a leggere.
    Ci sarebbero altre strategie (uso di Public Function…)...ma è la casella di testo la via più rapida.
  • Re: Etichetta report

    Allora, il suggerimento di Osvaldo è davvero la soluzione più facile

    In ogni caso, su VBA potresti mettere così :
    Private Sub pulVideoRepo_Click()
    if not isnull(me.txtTitoloReport) then
    Reports(nometuoreport)!nomeetichettadamodificare.caption = me.txtTitoloReport
    docmd.openreport "nometuoreport", acPreview
    End Sub
    Oppure mettendolo sull'evento apertura del report
    Private Sub Report_Open(Cancel As Integer)
    Me.Caption = Forms(nometuaform)!nomecontrollo/caselladitesto
    End Sub
    
    Ed io sto sempre trattando come se dovessi cambiare un'etichetta.

    Facci sapere come va
  • Re: Etichetta report

    Attento Marcdreamer. Nel primo codice prima fai l'assegnazione a un controllo.Caption e poi apri il report. Come fai ad accedere al nomeetichettadamodificare se non hai ancora aperto il report?
    Non solo. Ricordo di aver già affrontato questo problema. Potrei sbagliarmi, ma si tratterebbe di:
    - aprire il report, assolutamente con acViewDesign, se no non puoi mettere mano alle proprietà interne dei controlli
    - poi modifichi la proprietà Caption
    - poi salvi il report
    - poi devi riaprire il report per vederlo con l'etichetta cambiata
    4 passaggi farraginosi sicuramente più lenti della soluzione con casella di testo.
  • Re: Etichetta report

    OsvaldoLaviosa ha scritto:


    Attento Marcdreamer. Nel primo codice prima fai l'assegnazione a un controllo.Caption e poi apri il report. Come fai ad accedere al nomeetichettadamodificare se non hai ancora aperto il report?
    Non solo. Ricordo di aver già affrontato questo problema. Potrei sbagliarmi, ma si tratterebbe di:
    - aprire il report, assolutamente con acViewDesign, se no non puoi mettere mano alle proprietà interne dei controlli
    - poi modifichi la proprietà Caption
    - poi salvi il report
    - poi devi riaprire il report per vederlo con l'etichetta cambiata
    4 passaggi farraginosi sicuramente più lenti della soluzione con casella di testo.
    Si ho sbagliato a digitare, ma si ovviamente prima si apre il report.
    Per quanto riguarda i 4 passaggi, a me ne basta uno solo:
    Private Sub Comando6_Click()
    DoCmd.OpenReport "R_AsservimentoPFPF", acViewPreview
    Reports(R_AsservimentoPFPF)!Etichetta0.Caption = Forms(frmHome_Comodati)!testo7
    End Sub
    

    testaperurareport.jpg
    testaperurareport.jpg

    Questo è il codice che uso io e funziona
  • Re: Etichetta report

    CODICE: SELEZIONA TUTTO
    
    Private Sub Report_Open(Cancel As Integer)
    Me.Caption = Forms(nometuaform)!nomecontrollo/caselladitesto
    End Sub
    Quando ho scritto così, comunque mi sono sbagliato ... me.caption è la LABEL nel tuo caso vedi quello che ho appena scritto o segui l'esempio di Osvaldo
  • Re: Etichetta report

    1. Vai in visualizzazione struttura report
    2. Clicca con il mouse destro dentro l'etichetta Report Anagrafiche e scegli Cambia in/Casella di testo
    3. Dentro questa casella di testo che presumo si chiami [Report Anagrafiche] ci scrivi dentro l'espressione
    = "Elenchi clienti di " & [Maschere]![NomeMaschera]![Città]
    4. Salva il report
    Risolto
    Private Sub pulVideoRepo_Click()
    Dim a As String
    If Not IsNull(Me.txtTitoloReport.Value) Then
        a = Left(Me.txtTitoloReport.Value, 40)
    Else
        a = "Elenco Anagrafiche"
    End If
    Me.txtTitoloReport = a
    DoCmd.OpenReport "ReportAnagrafiche", acViewPreview, , CondizioneSQL
    End Sub
    Perfetto! Grazie Osvaldo
  • Re: Etichetta report

    Ora che hai risolto, provo a spiegarti l'aspetto tecnico...
    Gli oggetti, in questo caso il Report, dovrebbe funzionare in modo autonomo e non dipendente da una form... ovvero non si dovrebbe MAI inserire in un oggetto un riferimento ad un'oggetto esterno.
    Nel tuo caso sarebbe bastato passare alla funzione Openreport l'arfomento Args come titolo dello stesso Report.
    Su open del Report leggi la proprietà OpenArgs e valorizzavi la Caption dell'etichetta.
    
    Me.NomeEtichetta.Caption=Me.OpenArgs
    In questo modo il report funziona sempre anche se lanciato da altre opzioni come menu o ribbons.
  • Re: Etichetta report

    Scusami ma Alex non ho capito.
    Sto cominciando solo adesso a confrontarmi con la programmazione ad oggetti, come sai vengo dai tempi del ms-dos, scrivevo programmi con basic e cobol sin dal 1980
    Fino al 2000 o giu' di li poi con Clippeer che era un linguaggio per applicativi che usavano i .DBF del dBase3 poi ho smesso del tutto.
    Quindi per ora fatico un po a trovare le sintassi giuste e mentre produco l'applicazione con access ne imparo addirittura le basi.....
    Ovvio che non e' una buona cosa mischiare in una funzione (un report o una form) valori esterni, e' giusto passarglieli e lasciare che la form o il report lavori autonomamente, ma tecnicamente non ho capito come fare con la tua indicazione.
  • Re: Etichetta report

    Guarda il parameter ARGS delta funzione OpenReport r prova a leggere come funziona e.come recuperarlo... il resto è quello che ti ho scritto..

  • Re: Etichetta report

    OpenArgs è l'ultimo argomento di DoCmd.OpenReport (esiste anche per DoCmd.OpenForm).
    Dentro ci puoi scrivere una stringa, per esempio "Ciao Pippo", o una variabile contenente un valore stringa.
    La potenza/utilità di OpenArgs è quella di svolgere un ruolo di passa-testimone valore. In questo modo il report che riceve l'OpenForm si "carica" di una proprietà (OpenArgs appunto) utile per farne quello che vuoi poi…
    Una volta aperto il report (e a questo punto puoi pure chiudere la maschera che ha chiamato), esso conserva dentro il proprio OpenArgs proprio "Ciao Pippo". E generalmente sull'evento Load del report, richiami il Me.OpenArgs che andrai ad impostare nel Caption secondo l'ultimo suggerimento-codice fornito da @Alex.
Devi accedere o registrarti per scrivere nel forum
24 risposte