Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Formattazione casella con numero
martedì 03 febbraio 2009 - 15.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
mar 3 feb 2009 - 15:53
Ciao a tutti
in una pagina di CR ho un campo che va a riprendere un numero da un db
Come faccio ad anteporre sempre a questo numero il numero 0?
Ho provato a mettere una casella testo davanti (es [0][casella con il numero del db] )ma il programma su cui si appoggia CR ha due modi di stampa e se riesco a sistemare il layout di un metodo mi sballa completamente l'altro
Ho guardato dentro il formato del campo e vedo che ci sono varie caselle che potrebbero ospitare codici di programmazione (un po' come la formattazione condizionale del colore del testo) e credo che si possa fare in quella maniera ma non sono sicuro
Qualcuno mi sa dare qualche info in piu'
Grazie fin d'ora per le risposte
merys
Profilo
| Newbie
17
messaggi | Data Invio:
mer 4 feb 2009 - 09:25
Utilizzando un campo formula?
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
mer 4 feb 2009 - 10:36
Il campo e' un campo che prende meramente un valore da un db non ci sono formule
Ho provato a mettere il simbolo davanti sostituendo € con 0 e mettendo floating ma funziona solo a meta' poiche' mi mette si lo 0 ma anche in floating lo distanzia leggermente dal resto
Es.
0 12345
merys
Profilo
| Newbie
17
messaggi | Data Invio:
mer 4 feb 2009 - 12:11
Ciao, intedevo dire che potresti creare un nuovo campo formula (chiamiamolo ad es F_Peso), e quando sei in " Formula Workshop" selezioni il campo da te desiderato e puoi fare in modo che la formula ti torni quello che vuoi. Se il campo nel database si chiama "Articoli.Peso" la formula sarà:
"0" + Cstr(Articoli.Peso)
Nel report posizionerai F_Peso.
Ciao!
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
mer 4 feb 2009 - 17:48
Scusa non avevo capito hehe
Funziona... a meta'
Nel senso che il numero e' corretto con lo 0 davanti ma prima era 1234 ora e' 01.234,00
Ho provato a cambiare il formato ma non lo prende come un campo numero ma come un campo testo quindi non posso regolare cifre dopo la virgola e cose cosi'
Mi sapresti mica dire come "renderlo efficace al 100%"? hehe
Grazie davvero
merys
Profilo
| Newbie
17
messaggi | Data Invio:
gio 5 feb 2009 - 10:50
Ciao, non capisco bene.. secondo la tua prima parte:
>Nel senso che il numero e' corretto con lo 0 davanti ma prima
>era 1234 ora e' 01.234,00
Nel database il campo com'è? un testo o un numero? (Proprio il tipo di campo nel database.. o se preferisci tasto destro sulla lista dei campi del db e controlli il tipo).
A me sembra che tu per la formula abbia preso non il campo nel database, ma il campo del report. In questo caso, se lo prendi dal report, forse hai formattato quel campo come numero, avendo di conseguenza il . come separatore decimale. Se è così, rifai la formula togliendo il riferimento al campo del report, ma andando a prendere il valore direttamente dal campo del database.
>Ho provato a cambiare il formato ma non lo prende come un campo
>numero ma come un campo testo quindi non posso regolare cifre
>dopo la virgola e cose cosi'
Ma perchè devi mettere la virgola in un campo testo? Cioè un numero 0123,0 che numero è? Se cmq la tua necessità è questa, potresti fare in questa maniera: inserisci il campo che vuoi nel report, lo formatti come vuoi (cifre dietro la virgola.. etc etc), lo metti invisibile. A questo punto crei un nuovo campo formula, utilizzi la formula che dicevamo un post + in su, ma facendo riferimento stavolta al campo invisibile.
Spero di aver capito.. ciao!
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
gio 5 feb 2009 - 11:51
A me sembra che tu per la formula abbia preso non il campo nel database, ma il campo del report. In questo caso, se lo prendi dal report, forse hai formattato quel campo come numero, avendo di conseguenza il . come separatore decimale. Se è così, rifai la formula togliendo il riferimento al campo del report, ma andando a prendere il valore direttamente dal campo del database.
Si in effetti nella formula avevo inserito il campo di CR e non quello del db. In ogni caso purtroppo il problema resta perche' sono andato a controllare il campo del report inserito a livello di codice e dentro c'e' questo
if {campodb} = 'X' then
{campodb}
else
{campodb}
Questo campo in particolare e' un campo numero se ci clicco col tasto destro come format mi da numero e non paragraph
Ho pensato "Ecco l'errore" cosi' ho creato un campo e gli ho messo
"0"+Cstr({campodb})
Ma ecco la sorpresa il campo mi da sempre 01234,00 e non e' piu' un campo numero ma testo.
Sembra che "0"+Cstr() renda il campo testo qualunque sia il campo db tra parentesi
[<b>]Ma perchè devi mettere la virgola in un campo testo? Cioè un numero 0123,0 che numero è? Se cmq la tua necessità è questa, potresti fare in questa maniera: inserisci il campo che vuoi nel report, lo formatti come vuoi (cifre dietro la virgola.. etc etc), lo metti invisibile. A questo punto crei un nuovo campo formula, utilizzi la formula che dicevamo un post + in su, ma facendo riferimento stavolta al campo invisibile. [</b>]
Ma questo e' quello che facevo prima (anche se per sbaglio hehe)
Avevo un campo nel CR e ho creato un campo nuovo con dentro
"0"+Cstr({@campoCR}) (dove @campoCR e' il campo a cui devo mettere davanti lo 0 e che ha dentro il codice che ti ho postato prima e lui e' un campo numero formattato senza virgole o separatori)
E mi da lo stesso problema
Grazie ancora per le risposte
EDIT
Credo che la soluzione piu' semplice sarebbe trasformare il campo contenente Cstr da string qual'e' a number. E' possibile?
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
ven 6 feb 2009 - 12:01
Forse ci sono quasi
con
cstr ("0"+(totext({@nometabella_nomecampo},0)))
Da un campo che mi restituisce in stampa 12345 ottengo 012.345
Come elimino il "." dato che cstr converte in stringa il tutto?
Dall'help mi pare che serva giocare con il formato (es cstr(x,y) dove Y da delle regole tipo cifre dopo la virgola e cose cosi'
Magari al posto di quell'Y posso mettere cose tipo nodots o altro ma non so
Grazie fin d'ora per le risposte
merys
Profilo
| Newbie
17
messaggi | Data Invio:
ven 6 feb 2009 - 12:09
Prova così (non è elegante, ma funzia):
Replace(cstr ("0"+(totext({@nometabella_nomecampo},0))), ".", "")
Secondo me c'era una soluzione più elegante a tutto il problema, ma ormai sei ad un passo dall'obbiettivo :D
nalfein
Profilo
| Newbie
36
messaggi | Data Invio:
ven 6 feb 2009 - 14:11
Funziona
Grazie davvero a tutti
Ok ora dimmi la soluzione elegante
Torna su
Stanze Forum
Elenco Threads
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 !