Condizione campo

domenica 29 aprile 2007 - 18.53

clan Profilo | Junior Member

Esiste un modo per imporre una condizione ad un campo di crysta report?
Tipo se il valore del campo è maggiore di ... scrivi X altrimenti scrivi Y.
Grazie

freeteo Profilo | Guru

ciao,
certo che è possibile, si chiamano "campi formula", ovvero puoi fare della logica scrivendo del codice per pilotare il valroe che quel campo visualizzera' (quindi anche varie volte se è nella sezione "dettagli").

Percio' ad esempio puoi:
- aggiungere un campo formula dal menu' o dal field explorer
- posizionarlo dentro alla sezione dettagli
- scriverci dentro questa condizione semplice:
if ({miocampo} > 0) "x" else "y"
e quando metterai in esecuzione il campo fomula visualizzera' il valore stringa relatico al valore del campo "miocampo" (che è un campo del db)

Cmq dentro all'editor delle formule credo tu sia in grado tranquillamente di farti quello che ti serve...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

clan Profilo | Junior Member

ciao
ho fatto delle prove ma ho ancora una difficoltà mi da errore se formulo così

if ({miocampo} > 0) then "x" else {miocampo}

chiede che siano stringhe nella condizione
qualche suggerimento?
Grazie

freeteo Profilo | Guru

ciao,
nn ho capito bene che messaggio di errore hai, cmq controlla che i tipi siano compatibili coni confronti che fai, ovvero se il campo è stringa controlla con stringa ({miocampo} = "ciao") se è numerico allora controlla con il numero ({miocampo} = 0).

Inoltre controlla che quello che restituisce la formula sia sempre dello stesso tipo, se torna "x" che è stringa e il campo è numerico, devi convertirlo in stringa quindi:

if(...)
"x" //---- sarebbe il ritorno della formula
else
ToText({miocampo}) //--- conversione in stringa del campo, va bene anche "cstr"


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

clan Profilo | Junior Member

si mancava la conversione.
Funziona tutto
Grazie

dante3d Profilo | Newbie

ok
ma come si fa ad omettere un ramo del case if..

esempio

if ciccio = 0 then
if pippo = 2 then
else *vuoto*
else 'stampa X'

come faccio a chiudere l'IF il secondo IF nn avendo i blocchi questi cacchio di linguaggi mi incasinano..

ho ovviato così ma nn mi sembra la soluzione migliore..

if ciccio = 0 then
if pippo = 2 then
else ' '
else 'stampa X'

ciao e grazie

clan Profilo | Junior Member

scusa ma se la condizione è vera cosa dovrebbe fare il codice?

dante3d Profilo | Newbie

scrivo in C.. if (ciccio == 1) { if (pippo == 2) 'X' } else 'prova'

questo codice è possibile perchè ci sono i blocchi {} nei linguaggi che nn ci sono i blocchi come implementi questo codice??!!
per farti capire meglio ti allego un DAB
http://img47.imageshack.us/img47/815/dablh1.jpg


ciao
Daniele

freeteo Profilo | Guru

ciao,
prova con le parentesi tonde al posto delle graffe e ricordati di mettere il "then".
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