Da campo stringa a campo numerico

giovedì 02 luglio 2009 - 09.27

marko80 Profilo | Junior Member

ciao a tutti,
sto usando crystal report 8.5 per la creazione di un report.
il mio problema è creare un campo formula in crystal che sia in grado di trasformare un campo stringa (es: 3+3) in un campo numerico (risultato: 6)
Premetto che non posso cambiare il tipo di dati sul database.
Come si puo fare?
Grazie a tutti.

marko80 Profilo | Junior Member

Vi complico la vita :)
Il famoso campo stringa può anche essere 12+8, 3+10, 10+15, 2
Praticamente dovrei risucire a fare la somma dove necessario se no avere semplicemente il mio numero. (20, 13, 25, 2)
Io mi sto divertendo con le funzioni right, left e mid.
Grazie a tutti

marko80 Profilo | Junior Member

up!
Nessuno che ha una idea?
Grazie a tutti.
Ciao

marko80 Profilo | Junior Member

per la parte sinistra ho fatto cosi:
tonumber (left({partiest.ep_dato},instr ({partiest.ep_dato},"+")-1))
ma per la parte di destra?
datemi una mano!
grazie
ciao

marko80 Profilo | Junior Member

Sbatti e ribatti la testa alla fine ce l'ho fatta!
Ho risolto cosi:

if instr ({partiest.ep_dato},"+")<>0 then
tonumber (left({partiest.ep_dato},instr ({partiest.ep_dato},"+")-1)) + tonumber (Mid({partiest.ep_dato},InStr(1,{partiest.ep_dato},"+")+1))
else if
instr ({partiest.ep_dato},"/")<>0 then
tonumber (left({partiest.ep_dato},instr ({partiest.ep_dato},"/")-1))
else
tonumber ({partiest.ep_dato})

spero possa essere di aiuto a qualcun altro.

Ciao Marco

freeteo Profilo | Guru

Ciao,
io consiglio questa formula, usando lo "split" per l'operazione:
stringvar str := "43+13"; //--- qui userai il campo numbervar num := 0; numbervar i; stringvar array a := split(str,'+'); for i := 1 to ubound(a) step 1 do num := num + tonumber(a[i]); num

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