[Access 2010] Report multi pagina dinamici

di
Anonimizzato9967
il
25 risposte

[Access 2010] Report multi pagina dinamici

Buona sera,
sono ancora qui a chiedere il vostro aiuto. Come avrete notato sono ancora un neofita e consigli e indirizzamenti sono il mio pane quotidiano attualmente
Avrei una necessità ed un dubbio.
La necessità è che sto creando un report per stampare delle fatture. Il problema è che fino a che rientra tutto in una pagina non ci sono problemi, la questione è quando tutte le righe non entrano in una pagina!
Di solito popolo il mio report attraverso una routine vba.
Detto questo il mio dubbio è questo:

per avere un report che contempli 2 pagine devo comunque strutturare con caselle e tutto il resto 2 pagine a struttura o posso riutilizzare in maniera dinamica una pagina sola? ( magari stampando la prima pagina,pulendo i campi e continuare a riempirli)
Se devo comunque strutturare 2 pagine, qual'è il codice vba che mi consente di inviare/stampare solo 1 delle n pagine che strutturo?

Spero di essere stato abbastanza chiaro e spero di poter avere una mano.
vi ringrazio ancora

Antonio

25 Risposte

  • Re: [Access 2010] Report multi pagina dinamici

    Perchè Popoli il Report con il VBA...? Per complicarti la vita...?

    Se popolassi il Report in modo STANDARD quindi con una Query avente i Dati di testata della fattura e i dettagli della stessa, potresti gestire il tutto a CODICE ZERO... il numero di Pagine sarebbe gestito in modo automatico, ed i dati di Testata inserendoli nel Header del Report verrebbero inseriti solo nella 1° Pagina...

    Boh...
  • Re: [Access 2010] Report multi pagina dinamici

    Eh sarebbe bellissimo
    il fatto è che confluiscono dati provenienti da 4 tabelle diverse quindi faccio uso di un recordset per popolare
  • Re: [Access 2010] Report multi pagina dinamici

    Beh se fossi in te mi fermerei a riflettere...

    Se queste Tabelle sono RELAZIONATE deve essere fattibile una query che raggruppa tutti i dati utili.
    Se queste Tabelle NON sono Relazionate... beh ci sarebbe da capire perchè hai una situazione così.

    Ciò detto, sul quale ti invito veramente a prendere in considerazione le 4+1 REGOLE DI NORMALIZZAZIONE(dico 4+1 perchè la 5 Forma normale non è quasi mai compresa ed usata, ma le prime 4 sono OBBLIGATORIE),dovresti aprire la tua mente... e pensare di popolare una TABELLA STRUTTURATA all'occasione con i dati del Recordset dipo averla svuotata e basa il REPORT su quella TEMP_TABLE.
  • Re: [Access 2010] Report multi pagina dinamici

    Mettiamo per ipotesi che la tua scelta sia fattibile nel mio caso ( lo sarebbe); c'è da riconoscere che l'elasticità nella struttura grafica che ti danno caselle e campi non ha eguali. Ad esempio la parte di solito posta sotto una comune fattura ( ben strutturata con una serie di riquadri e righe create ad hoc) come la replichi con le query?

    Ma cosa più importante:se volessi aggiungere alcune righe tra i record della mia tabella (es: "riferimento DDT 23 del 23/05 bla bla bla") come farei? non è una cosa contemplata o mi sbaglio?
  • Re: [Access 2010] Report multi pagina dinamici

    Ribadisco che ti sfugge la visione d'insieme...

    Parla uno che di codice ne ha scritto qualche centiaia di migliaia di righe... con complessità che spazia a tutti i livelli, quindi sono di parte, di fatto... usare Tabelle/Query come Origine report non esclude l'uso del VBA, anzi ti consente la FLESSIBILITA' dell'auto configurazione, poi, su Evento Corpo_Format(dico corpo perchè è la sezione che di norma si usa meglio per queste cose) vai ad inserire tutto il codice che ti serve per integrare quanto con una Query/Tabella non riesci a strutturare...
  • Re: [Access 2010] Report multi pagina dinamici

    Beh di certo ammetto di avere una visione abbastanza di corto raggio data la mia esperienza davvero irrisoria.
    Detto questo, volendo intraprendere la strada da te indicata, ed iniziando a cercare di scogliere i primi nodi al pettine: volendo inserire tra un gruppo di record e l'altro una stringa di testo ( come dicevo prima "Riferimento DDT X del 10/01") all'interno della query (visualizzata come sottoreport) come potrei fare?
  • Re: [Access 2010] Report multi pagina dinamici

    Non posso darti una risposta specifica non sapendo nemmeno come sono i dati...
    Non ti focalizzare troppo sulla query, nella tabella TEMP ci vanno tutti i dati riconducibili... se quello che dici non lo è lo ricaverai su FORMAT estraendo il dato da dove si trova, Dlookup o Recordset se serve, popolando una TextBox con il contenuto...

    L'evento Format della Sezione, in un Report si genera ad ogni cambio RECORD.
    Quindi per ogni Record della tua Tabella il Report popola i controlli Associati inseriti nella sezione Corpo nell'evento Format.
    Prima di passare al prossimo puoi, in questo evento andare ad intervenire... e, se hai messo una TextBox non associata nel Corpo, puoi POPOLARLA con tutto quello che ti viene in mente...
    
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        ' Quì metti il codice...
    End Sub
    Puoi gestire anche una formattazione condizionale senza usare quella nativa... che come sai ha limiti, figurati il testo recuperato dall'esterno...

    L'ottica è che il Report in modo automatico gestisca la Formattazione e l'espansione automatica della Sezione per ogni Record in modo da affidare al Report Engine la parte grafica, compresa la gestione delle pagine...

    Credo di non averti fatto comprendere bene a fondo il tutto... ma provaci.
  • Re: [Access 2010] Report multi pagina dinamici

    Wow... momento momento momento.. perchè mi si sta aprendo un mondo..
    per provare quello che mi hai appena descritto, come dovrei fare?

    1) creare un report
    2) inserire un sotto report collegato ad una query creata ad hoc
    3) andare nel sottoreport e fare clicl su -> eventi-> formattazione
    4) scrivere una stringa qualsiasi anche un msgbox no?!

    è cosi che posso vedere no?
  • Re: [Access 2010] Report multi pagina dinamici

    Diciamo che non capisco il perchè del SOTTOREPORT... ma quello che dici è quanto si può iniziare a fare...
  • Re: [Access 2010] Report multi pagina dinamici

    Allora ho provato a fare come dici ma non succede niente.
    In particolare ho provato ad inserire una casella di testo e nell'evento formattazione ho impostato che li venisse attributo un valore numerico.. Ma niente.. La casella rimane vuota.

    Se ho capito l'evento formattazione interviene ogni qual volta il sistema "stampa su video" le informazioni di un record no?

    ( sono completamente ignorante sull'argomento e non ho trovato guide pratiche e chiare sul web su cui poter studiare; quindi chiedo scusa per il mia newbbagine sconsiderata )
  • Re: [Access 2010] Report multi pagina dinamici

    Caro thebusterazz, ti ho scritto anche in privato. Se non ci racconti un po' lo scenario tabelle, campi, relazioni, forse tutto il discorso VBA potrebbe saltare. Abbiamo tutti bisogno di informazioni più coerenti, altrimenti ti arriveranno risposte senza senso.
    Spero di non aver travisato il discorso, me ne scuso in anticipo.
  • Re: [Access 2010] Report multi pagina dinamici

    Partiamo da una cosa semplice...se implementi un Report standard basato su una Tabella/Query e lo generi conl'autocomposizione, otterrai che nella sezione CORPO del Report ci sono N Caselle di Testo quanti sono i Campi dell'origine da Visualizzare.
    Se aggiungi una textBox non associata chiamiamola [txtProva], sempre nel CORPO, e sfrutti l'evento che ti ho suggerito prima... inserendo
    
    Option Compare Database
    Option Explicit
    Private intCounter as Integer
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        Me!txtProva.Value="QUESTA E' UNA PROVA RECORD=" & intCounter
        intCounter=intCounter+1
    End Sub
    Ora vedi che succede...

    Suggerisco una bella guida.
  • Re: [Access 2010] Report multi pagina dinamici

    Allora ho provato e semplicemente la casella rimane vuota sbaglio qualcosa?
    ho provato anche ad inizializzare l'intcounter ma nulla
  • Re: [Access 2010] Report multi pagina dinamici

    Prova a postare l'esempio usando un HostingService... ci guardo e poi ti dico...
Devi accedere o registrarti per scrivere nel forum
25 risposte