Datapayasadas

septiembre 15, 2009

Hack Reporting Services 2005 y la división por cero

Filed under: Reporting Services — Etiquetas: , , , — pabloide86 @ 9:14 am

Buenas amigos… me he encontrado con este problemita de la división por cero en Reporting Services 2005.

Lo primero que pensé fue en hacer algo como esto:

=IIF(Fields!Numerador.Value <> 0, (Fields!Numerador.Value) / (Fields!Denominador.Value), 0)

Pero resulta que el IIF siempre ejecuta tanto la expresión de la parte verdadera como la expresión de la parte falsa y por eso siempre va a devolver #Error.

Ahora bien, una pequeña chanchada que podemos hacer para evitar ésto es:

=IIF(Fields!Numerador.Value <>  0, (Fields!Numerador.Value) / (IIF(Fields!Denominador.Value <> 0, Fields!Denominador.Value  0, 1), 0)

Qué fue lo que hicimos? Simplemente engañamos al IIF cuando el denominador es 0. Cuando eso ocurre de todas formas el primer IIF va a devolver 0 pero ya la expresion (Fields!Numerador.Value) / (Fields!Denominador.Value) no va a dar #Error ya que estaríamos dividiendo por 1 y no por 0.

No es lo mejor ni lo mas óptimo, pero remitiendome a las palabras de mi amigo Carlos A.:
“Primero que funcione, despues que funcione bien, y por último que funcione como uno quiere.”

Salutes!

septiembre 11, 2009

Parámetros Multivalor con Reporting Services 2005 y ASP.NET ReportViewer

Filed under: .Net, ASP.NET, C#, Reporting Services — Etiquetas: , , , — pabloide86 @ 3:21 pm

Buenasss como les va? Esta vez me trae por aquí este tema de los reportes. Resulta que me han pedido que haga un reporte donde pueda filtrar los valores a mostrar en el reporte pero desde el Report Viewer en una página Aspx…

Empecemos por el reporte. Supongamos que tenemos un reporte que debe mostrar un listado de proyectos y quiero elegir cuales mostrar y cuales no.

(more…)

Blog de WordPress.com.