|
Topic Topic Hot Topic New Topic Locked Topic Sticky Topic Hidden |
Interruzione di pagina Report |
Post Reply
|
Page 12> |
| Author | ||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Topic: Interruzione di pagina ReportPosted: 17/Apr/2012 at 10:36 |
|
|
Ciao a tutti,
come va? Ho un piccolo problema...Spiego: ho un report dinamico basato su una query a campi incrociati che, in visualizzazione struttura, ho allargato al massimo onde avere più controlli e etichette possibili, in quanto le intestazioni colonna potrebbero aumentare sino al limite che ho imposto nella form di imputazione dati. Quando apro il report in anteprima di stampa vedo 2 pagine che in realtà sono una sola, in quanto la seconda è solo il prolungamento della prima e difatti con il seguente codice VBA:
mi dice che il numero di pagine è = 1 ! Quello che vi chiedo è se è possibile (io pensavo, ma non so come fare, con l'interruzione di pagina) dividere il report, allargato al max, in 2 "pezzi" in modo che il msgbox mi dia "=2". e con il seguente codice negli eventi "su stampa" delle sezioni interessate nascondere la seconda pagina, solo se vuota...ecco il codice:
Spero che l'appena citato codice aiuti qualcuno e che qualcuno possa aiutarmi a risolvere questo piccolo problema del dividere in 2 il report... ;-D Grazie Solito Abbraccio Ciao Fil |
||
![]() |
||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Posted: 17/Apr/2012 at 16:37 |
|
|
Aggiungo che ho tentato di inserire un'interruzione di pagina nel report, ma nella scheda formato delle proprietà accetta valori diversi da 0 (zero) solo alla voce "Da Margine superiore" e non alla voce "sinistra"...
Ciao Fil |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1216 |
Post Options
Thanks(0)
Quote Reply
Posted: 17/Apr/2012 at 23:25 |
|
|
Non è chiaro lo scenario in cui operi e le modalita implementate, ad esempio
è da interpretare che hai impiegato un formato A3 invece di un A4 (massimo della stampante) ? Considera che le pagine nel report vengono generate in base ai valori di impostazione della pagina Senza maggiori elementi è difficile darti indicazioni. Edited by willy55 - 17/Apr/2012 at 23:26 |
||
|
Willy
|
||
![]() |
||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Posted: 18/Apr/2012 at 09:23 |
|
|
Ola willy,
il formato è un A4 orizzontale che in modalità struttura ho allargato al max... |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1216 |
Post Options
Thanks(0)
Quote Reply
Posted: 18/Apr/2012 at 23:34 |
|
|
Faccio una premessa in modo da ampliare i concetti. In ogni caso le dimensioni massime per un report, in Access, sono: Ne consegue che ciascuna pagina viene generata in base al foglio, alla stampante supportata e alla struttura L'interruzione di pagina è legata al margine superiore ed agisce sulla altezza del foglio di conseguenza non permette di suddividere i due fogli affiancati in numero di pagine diverse. Operando (dai menu) con "File" - "Imposta pagina" - "Colonne" (come per le etichette) agendo sul numero e la dimensioni delle colonne, di norma, si incrementa il numero di pagina ("Page") ma non il totale delle pagine ("Pages"). In ogni caso, stabilita la altezza del report si può cercare di presentare il numero di pagina in modo personlizzato in modo da seguire una propria numerazione.
Riprendendo il tuo esempio stabilisci se ti trovi nella prima o seconda pagina in funzione della variabile TotIntCol (che hai indicato) dopodichè calcoli un tuo numero di pagina (doppio rispetto al valore "Pages" fornito dal sistema) raddoppiando il valore di "Page" e togliendo 1 per le pagine dispari e 0 per le pari. Per cui la tua funzione dovrebbe essere (schematicamente) variata in:
A questo punto visualizzi il tuo numero di pagina personalizzato nel report dinamico basato su una query a campi incrociati.
Dimensioni di un report in Access Impiego delle colonne
|
||
|
Willy
|
||
![]() |
||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Posted: 25/Apr/2012 at 17:29 |
|
|
Ciao Willy e grazie x la risposta,
ho fatto vari tentativi, ma non riesco a capire come poter utilizzare la funzione da te citata. Spiego: ho tentato con più modi del tipo: -inserire la funzione in un modulo -richiamarla nell'evento su stampa delle sezioni interessate del report, ma non funzia... Attendo tue notizie...Grazie in anticipo! Ciao Abbraccio Fil |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1216 |
Post Options
Thanks(0)
Quote Reply
Posted: 27/Apr/2012 at 18:13 |
|
|
Viste le difficoltà, cerco di descrivere in modo più dettagliato lo scenario con cui approcciare la problematica.
Infatti la pagina fornita dal sistema (per una foglio A4 affiancato) darebbe sempre lo stesso numero, in quanto la larghezza del report è più ampia del foglio A4. Una possibile soluzione è calcolare un proprio numero di pagina che fornisca un valore personalizzato per ciascun foglio A4. Buon lavoro |
||
|
Willy
|
||
![]() |
||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Posted: 16/Mag/2012 at 13:47 |
|
|
Ciao willy come va?
Prima di tutto ti volevo ringraziare per avermi aiutato nel 3D "Standardizzare Calcoli VBA"... :-) E poi ti volevo per prima cosa dire come ho risolto (con un accrocco) il problema del "report allargato": -Ho creato 2 report uguali (in orizzontale - A4) -il primo che ho chiamato "rptNomeReport_Limitato" -il secondo l'ho nominato come "rptNomeReport" Il primo prevede che la larghezza del report (in struttura) non superi i limiti e che quindi non dia due pagine affiancate, ma bensì una sola. Il secondo prevede le 2 pagine affiancate. Di conseguenza è bastata una semplice "condizione If" nel pulsante che apre il report, tipo la seguente:
Siccome io tendo sempre a dire le cose come stanno, aggiungo che questa cosa me l'ha suggerita Almorel. Però volendo io fare il "fighetto" :P , ti chiederei cortesemente (se ti va) di farmi un esempio pratico di come: Poter visualizzare in anteprima di stampa solo il primo foglio (A4 - Orizzontale allargato al max in struttura) se TotIntCol è <= 5 o tutti e due se TotIntCol è >5. Spero tu mi possa aiutare e ti ringrazio anticipatamente per questo :) Abbraccio Solito Ciao Fil |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1216 |
Post Options
Thanks(0)
Quote Reply
Posted: 18/Mag/2012 at 23:57 |
|
|
Partendo da una query a campi incrociati che abbia un numero di colonne variabili, la soluzione proposta da Almorel (un saluto ad Alberto) non è un "accrocco", è il metodo più semplice ed efficace per avere due report prestabiliti uno con il primo foglio (A4 - Orizzontale allargato al massimo in struttura) se il numero di colonne TotIntCol è minore o uguale a 5 e con due fogli affiancati se TotIntCol è maggiore di 5. Un altra strada è quella di realizzare un report minimale ove si inseriscono gli elementi comuni e successivamente si aggiungono le varie caselle di testo che scaturiscono dalle colonne prodotte dalla query a campi incrociati. E’ da tenere presente che la creazione diretta e completa (via codice) del report non è praticabile in quanto deve essere collocato all'interno degli oggetti di sistema e non sarebbe impiegabile con un applicativo MDE e quindi l’a automazione deve essere un processo di adattamento su elementi precostituiti. In ogni caso, un applicativo dinamico dovrebbe cercare di prendere in considerazione (per quanto possibile) tutti quegli elementi che abbino query e report. Ad esempio si possono prendere in considerazione (in base alle dimensioni massime) le colonne rappresentabili in modo da renderle equidistribuite, adattare le caselle di testo nel foglio aumentando/diminuendo il font, la larghezza. l'allineamento, adattare linee, riquadri, titoli, totali, numero di pagina e tutti quegli elementi in grado di personalizzare in modo più efficace il report. E' chiaro che ciascuna strada percorribile implica una gestione degli elementi caratteristici del report su cui si dispongono i vari oggetti. Più è sofisticata la personalizzazione e maggiore è la logica da implementare nell'algoritmo in grado da supportarla.
Creare un report dinamico a campi incrociati Aggiungere da VBA una nuova colonna in un report Creare un report in VBA Impostare a run-time la proprietà Width e Left al controllo del report Personalizzazione dei criteri di attivazione del report CrossTab e Report dinamici
Elenco dei report disponibili in MSys.. Operare con collezioni/oggetti Stampa Report |
||
|
Willy
|
||
![]() |
||
mjjfil
Utente Senior
Joined: 07/Giu/2010 Status: Offline Points: 236 |
Post Options
Thanks(0)
Quote Reply
Posted: 23/Mag/2012 at 18:34 |
|
|
Ciao willy,
scusa se rispondo solo ora, ma ho avuto molto da lavorare .Devo dire che mi sono studiato bene le soluzioni da te proposte. Sono giunto alla conclusione che la cosa che più si adatta alla mia esigenza è la seguente: Aggiungere da VBA una nuova colonna in un report http://support.microsoft.com/kb/812719 E qui vorrei chiederti 2 chiarimenti (sono riuscito a farlo funzionare correttamente): 1°: -Il comando [create report control] funziona negli mde o (nel mio caso ACC 2010) accde? -Se non dovesse funzionare il [create report control], esiste un modo per aggirare il problema e compilare lo stesso il codice? 2° E' possibile creare anche dei totali a piè di pagina report (sempre con il comando sopracitato) che eseguano un calcolo tipo il seguente?:
...se si (da VBA) come? Ti ringrazio per la pazienza e l'aiuto che mi dai...!!! ![]() Abbraccio Ciao Fil |
||
![]() |
||
Post Reply
|
Page 12> |
|
Tweet
|
| Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |