Numerazione delle pagine in maniera personalizzata

martedì 13 marzo 2007 - 22.07

Seyen Profilo | Newbie

Ho creato in un progetto che sto svillupando in Vb6 un report con Crystal Report 8.5
Ne ho fatti tanti ma per la prima volta devo in questo report invece di utilizzare la funzione preimpostata PageNumber per avere la numerazione delle pagine devo averne una più personalizzata.
In pratica la numerazione delle pagine deve partire non dalla numero 1 ma da un numero preimpostato (presente in una variabile in un db già importato nel report) e il numero effettivo della pagina presente, e poi concatenato con una stringa che ne segnali l'anno.
La cosa che ho tentato di fare è fare un campo Formula con la seguente formula

"Pagina " & PageNumber+{DATIGENE.PAG_FATT_ACQ}) & "/" & Year ({STAMPA_FATTURA.DATA_DOC}))

Sulla carta non andrebbe male se non per un paio di problemi. Il risultato che ottengo in una pagina è questo

Pagina 3,00/2.006,00

In pratica mi formatta sia la pagina da sommare che il risultato della funzione Year(xxx) con un long.
Come faccio a modifcare la formula in maniera che venga scritto Pagina 3/2006....?

Please Help

berserk1979 Profilo | Newbie


"Pagina " & PageNumber+{DATIGENE.PAG_FATT_ACQ}) & "/" & Year ({STAMPA_FATTURA.DATA_DOC}))
Pagina 3,00/2.006,00


devi crearti un campo formula in cui trasformi in stringa la data facendo in questo modo:
Cstr(CDate({STAMPA_FATTURA.DATA_DOC}),"yyyy")

inoltre devi cliccare su formatta campo {DATIGENE.PAG_FATT_ACQ} in maniera tale che non ti restituisca le cifre decimali, se il campo ritorna un numero basta cliccare su personalizza e poi selezioni zero cifre decimali dopo gli interi

ciao e grazie,
berserk1979

Seyen Profilo | Newbie

Ottima la cosa della data :)

Invece il problema del numero decimale non è dato dal campo del DB ma dal risultato stesso della formula Pagenumber. In pratica la somma dei due campi ritorna un long che quindi prevede i decimali....

berserk1979 Profilo | Newbie

cosa ti ritorna {DATIGENE.PAG_FATT_ACQ}?
ciao e grazie,
berserk1979

freeteo Profilo | Guru

ciao,
il problema a mio avviso è una scocciatura di Crystal quando trasformi un numero in stringa (nel tuo caso quando concateni per fare il numero di pagina)

Ti consiglio di usare la funzione "ToText" che ha come 2do parametro il formato della stringa da buttare in output, quindi nel tuo caso io farei:

----------
Pagina "+ ToText(PageNumber ,"0") + {DATIGENE.PAG_FATT_ACQ}) + "/" + ToText( Year({STAMPA_FATTURA.DATA_DOC}) ,"0")
----------

controlla le parentesi cmq il concetto è usare quella funzione che ti formatta i numeri senza i decimali (2do parametro "0" appunto)...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5