Reporting Services e divisione per zero

giovedì 05 marzo 2009 - 15.09

volperubbia Profilo | Senior Member

Ciao a tutti,
in un report di reporting services ho la seguente formula:

=IIF(0 = Fields!Decimal6.Value, "", Format(Fields!Decimal5.Value / Fields!Decimal6.Value, "#,0.00"))

Però con IIF sono valuta entrambe le parti e quindi si pianta.
Stessa cosa usando Switch.

Qualche idea su come evitare la divisione per zero?

Grazie per l'attenzione,
Davide

freeteo Profilo | Guru

Ciao,
dentro alle formule purtroppo non puoi fare del codice normale, quindi non riesci a fare il controllo sullo zero.
Però puoi appoggiarti al codice che puoi scrivere e quindi rendere "embeddied" nel report stesso, e quindi usare il codice vb.net come vuoi, perciò ti consiglio di fare questi passi:

- apri il report -> menu report -> report properties
- nella tab "Code" puoi scrivere una funzione che vuoi, nel tuo caso:
Public Function GetDivisione(ByVal num as Integer, ByVal num2 as Integer) As Double If num2 = 0 then return 0 Else return num/num2 End If End Function

- nel report la richiami passando i 2 campi come parametri (e formattarlo):
= Format(Code.GetDivisione(Fields!Decimal5.Value , Fields!Decimal6.Value), "#,0.00"))

dovresti riuscire a fare quel controllo e tanto altro ancora...

Ciao.

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

volperubbia Profilo | Senior Member

Grazie Matteo
... avevo visto pure io questa possibilità, ovvero di mettere codice vb all'interno del report,
speravo però di essermi perso un'alternativa più "leggera". Comunque va bene.

Davide

freeteo Profilo | Guru

>Grazie Matteo
di nulla!


>... avevo visto pure io questa possibilità, ovvero di mettere
>codice vb all'interno del report,
>speravo però di essermi perso un'alternativa più "leggera". Comunque
>va bene.
eh si al momento è l'unica strada che vedo per il tuo problema.


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