Crystal 2003 fomule

giovedì 16 marzo 2006 - 15.08

mortenera Profilo | Junior Member

mi sapete dire come posso fare a far cambiare il testo , in un campo testo in base al valor presente in campo dati

ad es. qundo carico i dati da un database prima della stampa carico un capo numerico che puo variare da 50 a 60 e in base al valore il campo di testo deve assumere il risultato di 100- il valore del campo dati


se non sono stato chiaro ditemelo

Ciciu Profilo | Senior Member

Ciao.

Supponiamo che il campo di cui parli si chiami Valore è faccia parte della tabella "Tabella".

Se sul report disegni il campo, non hai la possibilità di cambiarlo...

Devi creare una formula, che contenga :

100 - {tabella.Valore}

A questo punto, "disegnando" la formula dovresTi ottenere il risultato desiderato.

Ciao - Fabio

Fabio G

mortenera Profilo | Junior Member

non funziona avevo gia provato puoi essere pi chiaro

tabella1.ct1 e il valore che varia tra 50 e 60
text25 e il capo di testo vuoto


voglio che se ct1 e = 56

text25.text sia = 44

Ciciu Profilo | Senior Member

Dunque, Tu sul Tuo report di Crystal stampi il campo ct1 della tabella tabella1.
Crea una nuova formula, chiamala Delta. Nel corpo della formula, scrivi :

100 - {tabella1.ct1} (il campo lo selezioni dall'elenco dei campi)

A questo punto, prendi la formula Delta, e la metti di fianco al campo ct1, nel report.

In questa maniera puoi, chiedendo la preview del report, vedere la differenza tra i due campi.

Dalla preview, poi, se Ti posizioni sul campo Delta, dovresTi vedere la formula che lo calcola sotto forma di tooltip.

Ciao - Fabio
Fabio G

mortenera Profilo | Junior Member

scusami ma come faccio a creare una formula con nome?

io stavo sfruttando le formule ometti del campo di testo

Ciciu Profilo | Senior Member

Naaaaa !

Allora, le formule che "attacchi" alle proprietà del campo Ti servono per modificarne l'aspetto.

Se guardi la finestra FieldExplorer dovresTivedere un tree che contiene, per esempio, Database fields, Formula fields, Parameters fields, etc...

Tasto destro su Formula Fields -> New

Inserisci un nome per la Tua nuova formula e conferma con Use Expert.

A questo punto Ti si apre una finestra in cui hai 3 frame in altro : Campi/Formule esistenti, Funzioni e Operatori. Con questi puoi costruire la Tua formula nel frame centrale, trascinando i campi che Ti servono.

Salva e chiudi.

Tornando nel report dovresTi vedere, nel nodo delle formule, la Tua nuova formula. Piazzala sul report, e vedrai che tutto funziona (se la formula è corretta, of course !)

Ciao - Fabio

Fabio G

mortenera Profilo | Junior Member

ok non non ci avevo fatto caso pero non riesco a far funzionare la formula ho fatto un po di prove ma di dice che gli manca un numero

scusa ma crystal ancora non lo digerisco

Ciciu Profilo | Senior Member

Mmmh, probabilmente Crystal Ti ha detto qualcosa tipo "A number is required here".

Torniamo all'esempio di cui sopra. Il campo CT1 è di tipo numerico ? Perchè se è di tipo stringa , non puoi certo fare una differenza con un numero.

Cmq, se ci scrivi la formula esatta con i tipi dei campi che utilizzi, presumo che potremo aiutarTi meglio...

Ciao - Fabio

PS - E non Ti disperare con Crystal : una volta che ne avrai capito il funzionamento, non lo cambierai più !!!!!




Fabio G

mortenera Profilo | Junior Member

questa e la semplicissima formula che ho usato

100 - ToNumber({Tabella1.ct1})

Ciciu Profilo | Senior Member

Ciao.
Dunque, ho fatto un po' di prove, ma non sono riuscito a farmi dire da Crystal che "manca un numero".

La Tua formula è sintatticamente corretta. Il solo problema che potresTi avere, ha a che fare con i campi NULL, ma in quel caso la funzione ToNumber mi dice che "La stringa non è numerica".

Se vuoi, dammi ancora un paio di informazioni :

1) Tipo e lunghezza del dato sul db (campo ct1).
2) Messaggio di errore di Crystal (esatto)
3) Quando Ti viene restituito il messaggio di errore cui Ti riferisci ? Mentre disegni il report oppure mentre lo visualizzi ?

Ciao - Fabio


Fabio G

mortenera Profilo | Junior Member

ho risolto con quella semplicissima formula

grazie di tutto
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