Campo prezzo vuoto

venerdì 02 gennaio 2009 - 16.49

luxsor Profilo | Guru

Ciao a tutti ho il seguente problema.
Ho un campo del DB del tipo Valuta, nel mio report ho inserito un campo formula che mi esegue il seguente controllo:
se l'importo è diverso da 0,00 mi compare il prezzo, altrimenti il campo dovrà essere vuoto.
Come faccio in modo che il campo deve essere vuoto?

La formula è la seguente:

if CStr ({comando.importo}) <> "0,00" then
{comando.importo}
else
'cosa devo mettere qua'

freeteo Profilo | Guru

Ciao,
prova a mettere così:
if {comando.importo}) <> 0 then Cstr({comando.importo}) else ""
in questo modo torna sempre una stringa sempre, solo che nel caso di 0 torna stringa vuota quindi diciamo che fa l'effetto del nullo.

Ciao.

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

luxsor Profilo | Guru

Ciao Matteo, ho già fatto quella prova, ma siccome il campo è nel formato valuta, non mi accetta "".
Secondo me, bisogna assegnare il valore nullo dopo che ha letto il valore dal campo db, ma nn so come fare

freeteo Profilo | Guru

>Ciao Matteo, ho già fatto quella prova, ma siccome il campo è
>nel formato valuta, non mi accetta "".
no scusa, ma il campo non è una formula? in quel caso il tipo è dato dal risultato della formula, in questo caso appunto stringa.
Infatti fai il "cstr({campo}) come ritorno dell'if se è diverso da zero

>Secondo me, bisogna assegnare il valore nullo dopo che ha letto
>il valore dal campo db, ma nn so come fare
non puoi assegnare un valore nullo ad una formula, devi dare un valore del tipo corretto.



Un'altra strada è lasciare stare la formula, ed usare il campo, impostando nelle sue proprietà "Suppress If Zero",nella tab "numero" delle impostazioni, e premendo il bottone "customize".

Ciao.

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

luxsor Profilo | Guru

Il {comando.importo} è un campo di tipo VALUTA, invece il campo che ho inserito io nel report è un campo formula (dove inserisco la formula).
Inserendo come formula quella che mi hai suggerito tu cioè:

if {comando.importo}) <> 0 then
Cstr({comando.importo})
else
""

mi restituisce una STRINGA quindi non mi formatta il campo come valuta (con l'euro).
E questo il mio problema.

freeteo Profilo | Guru

>mi restituisce una STRINGA quindi non mi formatta il campo come
>valuta (con l'euro).
>E questo il mio problema.
ah si chiaro, devi formattare la stringa tu, allora invece di usare il Cstr() puoi usare:
... ToText({campo},2) ...
dove il 2 è il numero di decimali che vuoi



Ciao.

Matteo Raumer
[MVP Visual C#]
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