Newsgroup: it.comp.appl.access
Titolo: Stampare un numero fisso di righe e cambio pagina

Salve a tutti,
ho un report che stampa una DDT, al cui interno  devo stamapre un
numero fisso di righe, nel mio caso 22, a prescindere che i record
siano pieni o vuoti. Per fare ciò ho preso spunto da un esempio su
internet che ho cercato d'adattare alle mie esigenze.
Fino a che ho una DDT con meno di 22 righe, è tutto perfetto.Il
problema si pone quando invece la DDT occupa più pagine. Se ad esempio
gli articoli della ddt sono 30 e nel report per singolo foglio ne
vengono stampati 22, io vorrei che per ogni foglio della stessa DDT mi
vengano stampati: l'intestazione, il corpo e il piè di pagina.Quindi
nel primo foglio avrei le righe del corpo tutte piene di articoli, nel
secondo ne avrei invece 8 piene e e le rimanenti 14 vuote.
Ma tutto questo non accade.Il primo foglio mi viene fuori con 22 righe
di articoli ma senza piè di pagine, poi me ne fa un altro senza
intestazione e con 8 righe piene e fino a fine pagina mi ci mette n
righe vuote, e come se non bastasse esce fuori un terzo foglio con un
pò di righe vuote in testa e a metà pagina finalmente il piè di
pagina, che dovrebbe invece essere ripetuto su ogni foglio, come del
resto l'intestazione.
C'è un modo per poter stampare un numero di righe fisse in un report
gestendo in modo esatto il salto pagina?
Grazie a tutti


Sul sitocomune alla sezione Report c'è un'esempio.
www.sitocomune.com
@Alex

 - Mostra testo citato -
L'esempio l'ho preso proprio da lì, e ho cercato di adattarlo alle mie
esigenze, ma non riesco a venirne a capo.

 esigenze, ma non riesco a venirne a capo.
https://groups.google.com/group/microsoft.public.it.office.access/browse_thread/thread/4b3c084aecaf1d27?hl=it#
Si è una cosa che può succedere di non riuscire ad adattare i demo
alle proprie esigenze...
@Alex

 @Alex
Beato a te che ti diverti, spero che un giorno tu non debba mai
trovarti con un problema da risolvere, a cui è legato il mantenimento
del tuo posto di lavoro, e a cui nessuno risponde, oppure quei pochi
che lo fanno, lo fanno solo per deriderti, avendo su di te dei
pregiudizi sbagliati, solo perchè sono frustrati e non sanno come
occupare il loro prezioso tempo.
Preferisco essere licenziato piuttosto che passare la mia vita a
buttare me..a sulla gente come fai tu.
Buona vita

 Buona vita
Guarda se ti licenziano perchè non sai adattare il codice per stampare
22 righe invece che 25... credo tu abbia un concetto della
meritocrazia aziendale molto sbagliato ed infantile.
Invece di piangerti addosso per il problema tira fuori le palle e
mettiti a studiare il codice per vedere come funziona e capire il
PERCHE' da te funziona diversamente...!
Gente che non molla merita di essere valutata nell'ambito
lavorativo... gente che ad una prima difficoltà molla, ma non solo
incolpa gli altri per i propri INSUCCESSI ....a mio avviso
è bene faccia una sana riflessione, e che valuti bene se ha realmente
capito cosa la sua azienda si aspetta da lui... e su come gira il
mondo del lavoro oggi...!
Io gestisco personale...(50 persone) ed uno che ragiona come te,
soprattutto se giovane, sarebbe fuori da ogni logica lavorativa ed
aziendale.
Ti auguro e spero tu possa cambiare il tuo approccio, non solo ad
Access, ma al mondo del lavoro ed al fatto che NULLA ti è dovuto...
quello che ti è dovuto è lo stipendio ma solo a fronte di una
adeguata prestazione lavorativa.
TU e solo TU sei titolato a meritartelo, non trovi aiuti... pazienza
incolpi il MONDO perchè tutti ti odiano...?
E' chiamata sindrome di Calimero questa, e dipendenti o collaboratori
affetti da questa sindrome sono da sempre DELETERI... decidi in modo
Maturo da che parte stare e non fare moralismi inutili.
@Alex


Complimenti e grazie per le lezioni di vita che mi stai dando, ti
prego comunque di non sputare sentenze a zero sulle situazioni
personali che non conosci e che ti auguro non dovrai mai conoscere.
Io un mio lavoro ce l'ho, fortunatamente, e lo faccio SOLO da 16 anni
e fino ad ora sono sempre riuscito a mantenermelo, FORSE proprio
perchè ho sempre lottato e non mi sono mai arreso.
In questi 16 anni ho imparato una cosa fondamentale, il saper aiutarsi
a vicenda, senza troppe domande, mettendosi alla pari dell'altro, e
dare l'anima per gli altri, ma tu queste cose sicuramente le saprai
già, sarai abituato a vivere queste situazioni, gestendo 50 persone:
ma io te le dico lo stesso.
Tornando al mio problema con Access, è una cosa in cui mi sono DOVUTO
confrontare per improvvise difficoltà economiche, che in questo
periodo hanno travolto la mia famiglia. Ho provato ad accettare una
sfida in cui partivo già sconfitto, non avendo mai aperto Access e non
avendoci mai lavorato in vita mia, ma nonostante ho DOVUTO provarci lo
stesso.
A te non è mai capitato di dover fare una cosa al di sopra delle tue
capacità, alla quale non potevi esimerti dal fare, ma che alla fine ti
ha portato, per manifesta incapacità, a dover chiedere aiuto? Ti è
stata data una mano, oppure sei stato criticato per il modo in cui hai
chiesto aiuto?  Ecco questo è quello che è successo a me, e credimi lo
so bene che in situazioni normali nessuno si sarebbe avventurato in
questa cosa. Credo però, che ognuno di noi abbia dei limiti, e io
fortunatamente non me ne vergogno, ma ne vado orgoglioso perche so
comunque riconoscerli. In questo difficile momento economico  che
stiamo attraversando, vedo molta gente che prova a reinventarsi, che
prova a fare lavori che non avrebbe mai pensato di dover fare, e il
tutto SOLO perchè vogliono provare a dare un futuro e una vita degna
ai loro figli, come sta succedendo nel mio caso, ma non sempre ci
riescono, ma non sempre posso riuscirci, e non perchè non ne hanno
voglia, e non perchè non intendono combattere, tanto meno perchè si
arrendono alla prima difficoltà, NO! Semplicemente perchè alla fine si
accorgono che non ne hanno i mezzi, e credimi se ce la fai, la colpa
la danno solamente a loro stessi, la rabbia che hanno è sempre solo
con loro stessi, la "colpa" che ti ho dato non è quella di non avermi
aiutato, ci mancherebbe, nulla è dovuto, e non dirlo a me, ne so
qualcosa: ma è solo quella che, a mio modo di vedere, visto che avevi
già deciso di non interessarti al mio problema, (decisione
rispettabilissima), avresti fatto meglio a non interessarti anche del
resto. Lo so è più forte di me, non sopporto la gente che vive per
criticare chi chiede aiuto, a prescindere da come e a chi lo chiede.
Altra cosa che dovresti sapere è che prima di scrivere nei forum, è
passato un mese durante il quale ho provato con tutti i mezzi a mia
disposizione a venirne a capo, eh si perchè anche se non sembra sono
un tipo molto orgoglioso, anche troppo a volte: ma forse hai ragione
tu, o erano nulli i mezzi che avevo, oppure la volontà e la voglia di
non arrendermi è pari a zero. Oppure c'è anche l'ipotesi che
nonostante il mio orgoglio, è arrivato un momento in cui ho visto che
la cosa era più grande di me, e che alla fine mi sono accorto che era
arrivato il momento del quale ti parlavo sopra: SAPER RICONOSCERE I
PROPRI LIMITI.
Tranquillo, vivi serenamente, nessuno ti ha mai detto che se perdo
questa possibilità extra-lavorativa la colpa è tua, fortunatamente so
ancora riconoscere le mie responsabilità: già sapevo che sarebbe
potuto arrivare questo momento.
Per te è impensabile che uno perda un lavoro SEMPLICEMENTE perchè non
sa gestire un cambio pagina su Access, oppure come dici tu perchè non
vuole farlo o non vuole impegnarsi a studiare, ma se un giorno fossi
OBBLIGATO a sfornare 100 pizze a sera, ma perderesti il lavoro perchè
riesci a farne SOLO 99 (sempre che tu nn sappia fare anche il
pizzaiolo), proprio perchè nonostante tu abbia messo in campo tutto il
tuo impegno, di più non riesci a fare, forse il tuo pensiero in merito
cambierebbe, e da quel giorno diventeresti meno riduttivo, e forse
chiederesti a qualcuno di aiutarti a fare quell'unica pizza che ti
manca per continuare a lavorare, sperando appunto di trovare una
persona pronta a darti una mano senza invece dover affrontare
ulteriori critiche.
Ebbene si, io c'ho messo tutto il mio impegno, fino ad oggi non sapevo
nemmeno che si potessero fare i report con access, e per me questo è
già un gran successo, ma purtroppo per quanta volontà ci possa
mettere, ad ora non sono in grado di sfornare quell'ultima pizzae non
me ne vergogno: anzi comunque dovessero andare le cose, posso comunque
dire di non aver rimpianti, e di averci provato con tutto me stesso.E
questa cosa mi rende fiero.
Un in bocca al lupo sincero, nonostante tutto.




Grazie a tutti
------------------------------------------
Secondo me non hai impostato correttamente l'intestazione e il pié di 
pagina.
Nell'esempio del sitocomune queste due sezioni sono ad altezza zero per cui 
non sono mai visibili. Tu devi impostare loro un'altezza in modo che 
occupino una certa superficie del foglio da stampare e dentro le quali 
metterai quello che devi visualizzare.
Lo spazio rimanente meno la somma dei margini superiore ed inferiore del 
foglio e le altezze dell'intestazione e pié di pagina gruppo, sarà lo spazio 
a disposizione che dovrai ripartire fra le 22 righe da stampare.
Le intestazioni di colonna, che nell'esempio sono inserite nella sezione 
intestazione di gruppo, puoi metterle nell'intestazione di pagina se ti è 
più conveniente e lo stesso dicasi per il pié di pagina di gruppo (sempre 
che ciò non ti comporti disfunzioni nei conteggi o nei calcoli). Sono tutte 
cose che devi valutare tu in base a quello che devi visualizzare.
Nel codice dell'esempio il salto pagina agisce dopo il numero di righe 
prefissato, ma è ovvio che il tutto è subordinato allo spazio fisico 
disponibile.
Nelle proprietà del report, scheda formato, controlla che le voci 
Intestazione (pagina) e Pié di pagina (pagina) siano settate su 'Su ogni 
pagina'.
Queste saranno sempre collocate rispettivamente nella parte superiore ed 
inferiore della pagina stampata.
Napi
--------------------------------------- 


Intanto grazie, ma veramente grazie infinite per avermi risposto.
Allora, ieri stavo facendo un pò di prove, ed effettivemente ho notato
che io uso l'intestazione e il piè di pagina, entrambi di gruppo. Ho
provato a spostare tutto su intestazione/piè di pagina del report,
quindi mettendo ad altezza zero le due sezioni di gruppo.Ho notato che
per l'intestazione la cosa non cambia, e quindi è ok come lo era
prima, mentre per il piede questo viene stampato su tutte le pagine in
modo un pò random, ossia a volte il piede mi va a finire a metà
pagina, ma altra cosa che non riesco a capire è che così facendo tra
il corpo e il piè di pagina c'è sempre uno spazio vuoto che non c'è
modo di riempire.Per quanto invece riguarda le due proprietà 'Su ogni
pagina', quelle erano già settate come da te consigliato. Sinceramente
però non ho capito il discorso dei margini, io ho visto che tra
l'intestazione è il piè di pagina ho a disposizione sempre 22 righe di
spazio libere, e quindi sono partito dal presupposto che in ogni
pagina devo sempre stampare quel determinato numero di righe siano
esse piene o vuote. Dov'è che sbaglio?
Un'ultima cosa: se io sposto i campi da piè di pagina di gruppo a piè
di pagina non riesco a fare la somma degli articoli, mi dà errore
sull'espressione somma.
Infinitamente grazie ancora.

"grantanto"  ha scritto nel messaggio 
news:66669e35-08dd-4378...@m13g2000yqb.googlegroups.com...




Infinitamente grazie ancora.
-------------------------------------------
Cerchiamo di capiamoci... parlando in 'tagliano! :-)
Dici che hai spostato l'intestazione e pié di pagina di gruppo in 
intestazione e pié di pagina report. Devi spostare in intestazione e pié di 
pagina della pagina non del report.
Margini: mi riferisco all'altezza della sezione del pié di pagina che devi 
impostare quando costruisci il report in modalità struttura. Questa viene 
stampata sempre in fondo al foglio non a metà.
Nella sezione corpo è ovvio che ti lascia lo spazio vuoto se non raggiungi 
le 22 righe. Vuol dire che hai raggiunto la fine del report. Con che cosa lo 
vorresti riempire?
Inoltre i totali a fine pagina non li puoi ottenere nel pié di pagina 
pagina, perché la somma access la fa a fine gruppo. Però nel Sitocomune c'è 
qualche cosa che potrebbe fare al caso tuo. Guarda le faq 4.17 e 4.8 della 
sezione reports.
Se sono riuscito ad inquadrare il tuo problema, con queste due soluzioni 
(ovviamente adattandole al tuo caso) dovresti risolvere, altrimenti ci 
risentiamo.
Ciao
Napi
---------------------------------------------

 - Mostra testo citato -
Grazieeeeeeeee, finalmente per merito tuo le cose cominciano ad andare
decisamente meglio, ho spostato tutto in intestazione e piè di pagina
di pagina, sono riuscito a riportare la somma degli articoli nel piede
e infine riesco anche a fare in modo corretto la numerazione delle
pagine (altro problema che avevo).
Ora ho un ultimo scoglio da superare, nel caso della DDT con 2 pagine,
purtroppo me ne vengono fuori 3. Le prime due sono perfette complete
di ogni dettaglio, ma oltre a queste, mi tira fuori n'ulteriore pagina
con intestazione, piede e corpo completamente vuoto. E' come se per
lui ci fosse qualcosa che gli faccia scaturire anche un'altra pagina,
ho provato a lanciare la query in sql direttamente, pensando che forse
oltre alle righe degli articoli, tirasse fuori qualche altra riga che
giustificasse la terza pagina. E invece niente. A questo punto credo
che il problema sia nel codice VBA (si dice così), ho provato anche a
resettare il contatore delle pagine, ma sicuramente l'ho fatto senza
seguire troppo una logica, sto andando un pò per intuito, ma niente.

 - Mostra testo citato -
Aggiornamento:
finalmente sembra essere tutto ok, facendo vari tentativi ho notato
che per lui l'interruzione di pagina forzata era diventata inutile,
ossia ho provato a toglierla e tutto sembra funzionare alla
perfezione.
Se puoi, mi puoi spiegare secondo te perchè togliendo la gestione
manuale dell'interruzione di pagina tutto è andato a buon fine. Io non
riesco a capirlo, te l'ho detto , ci sono arrivato per tentativi.
Grazie ancora

[CUT]
Aggiornamento:
finalmente sembra essere tutto ok, facendo vari tentativi ho notato
che per lui l'interruzione di pagina forzata era diventata inutile,
ossia ho provato a toglierla e tutto sembra funzionare alla
perfezione.
Se puoi, mi puoi spiegare secondo te perchè togliendo la gestione
manuale dell'interruzione di pagina tutto è andato a buon fine. Io non
riesco a capirlo, te l'ho detto , ci sono arrivato per tentativi.
Grazie ancora
----------------------------------
Che il tutto sia andato a buon fine senza il salto pagina forzato può essere 
solo un caso. In un documento a più pagine le tue 22 righe occupano tutto lo 
spazio a disposizione della sezione corpo.
In una pagina con meno di 22 righe da stampare (documento singolo o ultima 
pagina di un documento a più pagine), il salto pagina non ha, ovviamente, 
senso. Il pié di pagina pagina viene stampato sempre in fondo al foglio, 
come già di dissi nel precedente post.
Fai una prova. Riduci tutte le righe ad un'altezza minima, di qualche punto. 
Vedrai che nella sezione corpo del report senza il salto pagina ci staranno 
ben più di 22 righe. Prova e vedi cosa succede.
Ciao
Napi
------------------------------------- 

[CUT]
Aggiornamento:
finalmente sembra essere tutto ok, facendo vari tentativi ho notato
che per lui l'interruzione di pagina forzata era diventata inutile,
ossia ho provato a toglierla e tutto sembra funzionare alla
perfezione.
Se puoi, mi puoi spiegare secondo te perchè togliendo la gestione
manuale dell'interruzione di pagina tutto è andato a buon fine. Io non
riesco a capirlo, te l'ho detto , ci sono arrivato per tentativi.
Grazie ancora
----------------------------------
Che il tutto sia andato a buon fine senza il salto pagina forzato può essere
solo un caso. In un documento a più pagine le tue 22 righe occupano tutto lo
spazio a disposizione della sezione corpo.
In una pagina con meno di 22 righe da stampare (documento singolo o ultima
pagina di un documento a più pagine), il salto pagina non ha, ovviamente,
senso. Il pié di pagina pagina viene stampato sempre in fondo al foglio,
come già di dissi nel precedente post.
Fai una prova. Riduci tutte le righe ad un'altezza minima, di qualche punto.
Vedrai che nella sezione corpo del report senza il salto pagina ci staranno
ben più di 22 righe, per cui il salto pagina diventerebbe d'obbligo.
Per risolvere quindi il problema della pagina bianca in più, devi 
intervenire con due righe di codice su Evento su Stampa del report ed 
annullare il comando per il salto pagina quando la stampa si trova 
sull'ultima pagina. Buttando lì dovrebbe essere:
If me.Page = Pages Then me.IntPagina=False
Ciao
Napi
-------------------------------------  

 -------------------------------------  
Allora, ho provato, ma l'evento stampa sul report non l'ho trovato,
quindi ho messo il codice che mi hai detto sull'evento stampa del
corpo, ma continua a farmi ancora la pagina vuota.
Dove sto sbagliando?

"grantanto"  ha scritto nel messaggio 
news:ee4307dd-4424-4331...@n18g2000vbq.googlegroups.com...


Dove sto sbagliando?
-------------------------------------
Guarda, suggerire soluzioni quando non si è addentro al problema non è 
facile. O io non ho ancora capito bene di cosa hai bisogno o tu ti stai 
perdendo in un bicchier d'acqua.
L'esempio del Sitocomune (sez. Reports 4.6) mi sembrava facesse al caso tuo. 
Guarda caso è la stessa soluzione che propone la microsoft se cerchi nella 
guida in linea come impostare un'"interruzione di pagina".  Infatti 
suggerisce di impostare una macro sull'evento Formattazione della sezione 
interessata al salto pagina (nel nostro caso la sezione Corpo del report).
Hai provato eventualmente ad usare ForceNewPage (v.help) da VBA (che però mi 
sembra meno indicato in questo caso)?
Ciao
Napi
---------------------------- 

 ----------------------------
Hai ragione scusami davvero, non riesco nemmeno io a essere molto
chiaro, e capisco perciò la tua difficoltà a capire il mio problema.
Allora ci riprovo: il mio problema è che lasciando l'esempio di
sitocomune così com'è, quando ho una DDT con 2 pagine, invece di
fermarsi alla seconda, me ne faceva una terza completamente vuota,
sempre della stessa DDT. non sono riuscito a dirgli che finiti gli
articoli, deve fermarsi a crearmi fogli in più. Quindi mi sono messo a
guardare il codice, e credo che l'istruzione in cui dovrebbe capire
che sono finite le pagine da stampare sia questa:
"If intCP + 1 < Me.txtTRec / intNR Then Me.IntPagina.Visible = True".
allora ho provato andando per tentativi a modificare il +1 con +2 e ho
visto che funzionava, dopodiche ho completamente commentato questa
riga e per mia sorpresa la stampa continua ad andare bene, a quel
punto ho definitivamente tolto l'interruzione pagina e la cosa non
sembra avergli creato nessun problema, infatti ora stampa
egregiamente.
A questo punto mi chiedo, a che cosa serve l'interruzione di pagina
presente nell'esempio, e come faccio a fargli capire che per quella
DDT non ci sono più pagine da stampare?
Spero di essere riuscito a chiarirti meglio dov'è il mio problema.
Scusami ancora per la poca chiarezza.

[CUT]
Hai ragione scusami davvero, non riesco nemmeno io a essere molto
chiaro, e capisco perciò la tua difficoltà a capire il mio problema.
Allora ci riprovo: il mio problema è che lasciando l'esempio di
sitocomune così com'è, quando ho una DDT con 2 pagine, invece di
fermarsi alla seconda, me ne faceva una terza completamente vuota,
sempre della stessa DDT. non sono riuscito a dirgli che finiti gli
articoli, deve fermarsi a crearmi fogli in più. Quindi mi sono messo a
guardare il codice, e credo che l'istruzione in cui dovrebbe capire
che sono finite le pagine da stampare sia questa:
"If intCP + 1 < Me.txtTRec / intNR Then Me.IntPagina.Visible = True".
allora ho provato andando per tentativi a modificare il +1 con +2 e ho
visto che funzionava, dopodiche ho completamente commentato questa
riga e per mia sorpresa la stampa continua ad andare bene, a quel
punto ho definitivamente tolto l'interruzione pagina e la cosa non
sembra avergli creato nessun problema, infatti ora stampa
egregiamente.
A questo punto mi chiedo, a che cosa serve l'interruzione di pagina
presente nell'esempio, e come faccio a fargli capire che per quella
DDT non ci sono più pagine da stampare?
Spero di essere riuscito a chiarirti meglio dov'è il mio problema.
Scusami ancora per la poca chiarezza.
-----------------------------------------
Guarda, ho provato a far girare l'esempio del Sitocomune dopo aver aggiunto 
più record in tabella a_corpo e aver limitato il numero di righe da stampare 
a 5 per pagina. Il salto pagina fa onorevolmente il suo dovere senza 
cambiare una riga di codice, quindi devo concludere che è il tuo report che 
ha qualcosa che non va.
Una cosa che mi viene in mente. Nelle proprietà dell'intestazione di gruppo, 
scheda formato, hai settato correttamente l'interruzione di pagina a Prima 
di Sezione come nell'esempio del Sitocomune?
Se questa impostazione è corretta, non saprei proprio cos'altro dirti. Il db 
è da vedere, altrimenti continuiamo a perder tempo senza concludere nulla.
Ciao
Napi

 Napi
Si la proprietà è giusta.
Posso mandarti il db per mail?
Grazie ancora

"grantanto"  ha scritto nel messaggio 
news:62abec9f-e749-41c4...@by6g2000vbb.googlegroups.com...

Si la proprietą č giusta.
Posso mandarti il db per mail?
Grazie ancora
--------------------
OK
Napi