Stampa piè di pagina

mercoledì 01 settembre 2010 - 17.44
Tag Elenco Tags  VB.NET  |  .NET 3.0  |  Windows XP  |  Visual Studio 2008  |  SQL Server Express  |  Office XP  |  Internet explorer 8.0

biggiu Profilo | Junior Member

Salve a tutti, ho il seguente problema :

Devo stampare una fattura in ambiente vb.net.
Vorrei che il piede fattura venga stampato solo nell'ultima pagina, qualora il documento fosse composto da più pagine.
Vorrei inoltre che, in caso di documento con più pagine, il piede delle pagine intermedie venga stampato vuoto, senza i dati di riepilogo, come accade normalmente un qualsiasi applicativo del genere.
Per far questo ho strutturato due piedi, quello di report, che dovrebbe essere stampato solo nell'ultima pagina del documento e quello di piede, che dovrebbe essere stampato ( senza dati ) nelle pagine itermedie.

Avrei trovato anche del codice per far questo :

Private Sub SezionePièDiPaginaPagina_Format(Cancel As Integer, FormatCount As Integer)
If Page = Pages Or (Page = 1 And Pages >= 0) Then
Me.SezionePièDiPaginaPagina.Visible = True
Else
Me.SezionePièDiPaginaPagina.Visible = False
End If
End Sub

commentato come segue :

prova usando il piè di pagina scrivendo nel suo evento format il controllo ....

Il mio problema è capire dove va utilizzata questa funzione : all'interno del codice programma(?) , in un'apposita sezione di CR(?)

sarei grato a chiunque sia in grado di indicarmi con chiarezza come risolvere questo problema.

buon lavoro a tutti.
Giuseppe Bigoni

BigGiu

Jok83 Profilo | Junior Member

Ciao

io per gestire la tua richiesta non utilizzo codice ma solo le sezioni di crystal report, nel nostro caso report footer (ciò che vuoi stampare in fondo al report: riepiloghi, totali ecc) e page footer (ciò che vuoi stampare in fondo ad ogni pagina del report :N° pagina ,totali della pagina eec.) .
>Vorrei che il piede fattura venga stampato solo nell'ultima pagina, qualora il documento fosse composto da più pagine.
ok basta mettere ciò che vuoi stampare e cliccare col tasto dx del mouse sull'intestazione della sezione report footer e selezionare don't suppress.

>Vorrei inoltre che, in caso di documento con più pagine, il piede delle pagine intermedie venga stampato vuoto, senza i dati di riepilogo, >come accade normalmente un qualsiasi applicativo del genere.
Da quello che capisco qui in realtà questa per te è una sezione vuota o non ti serve proprio percui o non metti nulla o clicchi sulla intestazione della sezione Page footer e clicchi hide (attenzione ti toglie anche lo spazio vuoto perciò ti stamperà i dati fino in fondo)

>Per far questo ho strutturato due piedi, quello di report, che dovrebbe essere stampato solo nell'ultima pagina del documento e quello >di piede, che dovrebbe essere stampato ( senza dati ) nelle pagine itermedie.
si ci sei non ti serve il codice devi solo assicurarti di non avere sezioni suppress...

biggiu Profilo | Junior Member

Innanzitutto grazie per avermi dedicato del tempo!

Scusa ma tu utilizzi delle diciture in inglese mentre io ho la versione In italiano ( acclusa a VB.Net 2008).
Suppongo che don't suppress sia Non Omettere e fin qui nessun problema.
Non capisco a cosa dovrebbe servire hide sul piede di report.

Ad ogni modo, riesco a stampare il piede di pagina vuoto sulle pagine da 1 a totpag-1.
Riesco a stampare il piede di report sull'ultima pagina senza stampare il piede di pagina.
Quello che non riesco a fare è recuperare lo spazio non utilizzato dal piede di pagina che resta vuoto.

Per chiarire quanto detto, ti allego un DDT di prova.

Sai darmi qualche altra dritta?
BigGiu

Jok83 Profilo | Junior Member


>Ad ogni modo, riesco a stampare il piede di pagina vuoto sulle pagine da 1 a totpag-1
>Riesco a stampare il piede di report sull'ultima pagina senza stampare il piede di pagina.
>Quello che non riesco a fare è recuperare lo spazio non utilizzato dal piede di pagina che resta vuoto.
>Per chiarire quanto detto, ti allego un DDT di prova.
>Sai darmi qualche altra dritta?
>BigGiu

Ok se per non far vedere il piè pagina lo sopprimi dovresti non avere lo spazio di quella sezione...
Come fai a non farla vedere? la sopprimi o nascondi in tutte le pagine?
Cmq nelle section expert puoi provare a spuntare suppress blank sections (sopprimi sezioni vuote) e vedere se così va come serve a te.

biggiu Profilo | Junior Member

Ho già provato in questo modo ma, in anteprima, ottengo quanto vedi nell'esempio allegato.

BigGiu

freeteo Profilo | Guru

Ciao Giuseppe, perdona il ritardo nella risposta.
Innanzitutto attento che hai allegato un documento pdf con dei dati sensibili e potrebbe essere visto da chiunque passi qui, perciò io ti consiglio di rimuoverlo o cmq togliere le diciture reali come indirizzo, piva etc...

Per quanto riguarda il tuo problema, da quel pdf non capisco qual'è lo spazio che vuoi recuperare, cmq sia io ho usato un metodo semplice per fare le veci del pie pagina, senza usarla (sopprimendola) ossia ti basta impostare un gruppo per un campo che cambia sempre (tipo l'id) e mettere quello che ti serve dentro al reportfooter.
Non so se può esserti d'aiuto...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Grazie per i consigli legati ai dati visualizzati, più tardi lo toglierò da qui.

Lo spazio da eliminare è quello che trovi nella seconda pagina. Se ci fai caso, nella prima viene posto il piede di pagina in fondo al foglio. Nella seconda pagina, che è anche l'ultima, viene emesso il piede di report, ma non in fondo al foglio, bensì subito sopra lo spazio del piede di pagina.

Vorrei provare la tua soluzione ma sinceramente non ho ben capito cosa intendi fare.
Se hai degli esempi esplicativi fammi sapere.

A presto.
BigGiu

freeteo Profilo | Guru

>Vorrei provare la tua soluzione ma sinceramente non ho ben capito
>cosa intendi fare.Se hai degli esempi esplicativi fammi sapere.
se riesci a postarmi il report con un db access d'esempio (con dati fittizi, non reali...ne bastano pochi giusto per provarlo in anteprima) provo a modificartelo direttamente e riallegartelo.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Il DB è Microsoft SQL.
La procedura è realizzata in VB.Net

Per il BD non dovrei aver problemi a traslare i dati verso access.
Per il Report, cosa faccio, ti creo una procedura con il solo report, o con il report ed il programma che lo utilizza ?

BigGiu

freeteo Profilo | Guru

>Per il BD non dovrei aver problemi a traslare i dati verso access.
esatto se riesci esportali in quel formato tramite il suo tool


>Per il Report, cosa faccio, ti creo una procedura con il solo
>report, o con il report ed il programma che lo utilizza ?
come preferisci, sicuramente il report è la cosa più importante

ps: se non vuoi allegare qui, mandami tutto alla mail che trovi nel profilo qui del forum


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Ciao, in allegato trovi la documentazione richiesta.
BigGiu

freeteo Profilo | Guru

Ciao,
purtroppo mi mancano i dati per provarlo cmq ho visto il report e secondo me puoi provare a spostare i controlli che hai nella sezione "ReportFooter" che è sempre l'ultima mostrata, in una ulteriore sezione del "Page Footer" in modo da stamparla infondo alle pagine (questo tipo di sezione ha questa peculiarità).

Perciò puoi aggiungere questa ulteriore sezione di PageFooter con tasto Dx->Insert Section Below e poi visualizzarla solo nella seconda pagina, ossia sopprimendola per la prima (dato che la proprietà è "Suppress" della sezione).

Ho fatto questo io a mano nel tuo report che ti ho allegato, provalo.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Ciao,
scusa il ritardo ma sono riuscito a provare quanto mi hai dato soltanto adesso e mi spiace ma non funziona proprio.
Accorcia il corpo a poche righe, non lo stampa sulla prima pagina ma lo stampa sulle successive.
Non ho capito perchè non hai i dati, provo a riallegarteli.

BigGiu

freeteo Profilo | Guru

Ok, grazie dei dati adesso riesco a vederlo in esecuzione.
Non ho capito quale dei 2 dettagli di PageFooter non ti venga visualizzato correttamente, o meglio ancora cosa come vuoi che il report si mostri esattamente.

Adesso ci sono 2 pageFooter, uno viene soppresso alla prima pagina (pageFooter A) e l'altro solo all'ultima pagina, mentre i dettagli li visualizza su ogni pagina, tu cosa vuoi che succeda?
Casomai se riesci fammi delle immagini tu a mano con paint, di cosa vuoi che succeda nelle varie pagine..

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Ciao,
guarda il documento allegato, (dovresti già averlo ) vorrei semplicemente che la seconda pagina avesse il piede stampato in fondo alla pagina e non subito dopo l'ultima riga di corpo.
Come in un qualsiasi DDT, le fincature debbono essere sempre le stesse, a variare sono solo i dati emessi.

Grazie ed a presto.

BigGiu

freeteo Profilo | Guru

Ciao,
ho notato che le 2 sezioni che hai messo nel page footer sono uguali solo che in una hai anche dei campi, nella seconda invece hai solo il "layout", o sbaglio?
In quel caso usa una sessione sola, e metti la proprietà "suppress" ai singoli campi, dicendo che vengano nascosti per le prime pagine e visualizzati solo nell'ultima.

Ti ho riallegato il report, che adesso restituisce (almeno a me in preview) quello che vedi nel pdf

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

biggiu Profilo | Junior Member

Ciao,
provo il tutto e ti faccio sapere.
Ho visto il pdf ed il risultato è esattamente quanto cercavo.
Puoi cortesemente spiegarmi come hai fatto ?

Da quanto ho capito hai lavorato sui singoli campi dati ma non riesco a comprendere come si fa.

Un cenno di spegazione e poi ti eleverò a mio guru assoluto.

HO TROVATO!!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2014
Running on Windows Server 2008 R2 Enterprise, SQL Server 2008 & ASP.NET 3.5