Formattazione casella con numero

martedì 03 febbraio 2009 - 15.53

nalfein Profilo | Newbie

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

Utilizzando un campo formula?

nalfein Profilo | Newbie

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

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

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

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

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

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

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

Funziona

Grazie davvero a tutti

Ok ora dimmi la soluzione elegante
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