Consumir Web Services de Navision desde Reporting Services), vamos a utilizarlo para transformar los campos options en el valor de texto correspondiente. Para eso utilizamos una funcion en navision que le paso una tabla y un campo y nos devuelve una lista de las opciones separadas por coma.Me he creado una función llamada ObtenerWS que le paso un id y un texto.
El id 1 me devuelve los options de la tabla y el campo deseado (En el ejemplo Tabla 50045 campo 3).
Con la funcion StringSplit lo transformo en una tabla:
SELECT *
FROM
StringSplit(([NAVSQL].[dbo].[ObtenerWS] (1,'50045|3')), ',', null)
El
resultado del select anterior es este:
Esto lo
pongo en un report como Dataset aparte.
Luego
hago la consulta normal (A la Tabla 50045) en otro Dataset que me devuelve el campo option como
integer. Para transformarlo al valor de texto en la casilla en vez de poner
el campo option como integer, hay que poner lo siguiente:
=Lookup(Fields!Concepto.Value,Fields!ID.Value,Fields!NOMBRE.Value,"Concepto")
Donde:
Fields!Concepto.Value
= El campo option en integer.
Fields!ID.Value
= Al campo option en integer en el dataset de la lista de options
Fields!NOMBRE.Value
= Al campo String que contiene la descripcion del option en el dataset de la
lista de options
"Concepto" = El nombre del Dataset de apoyo.
Y
listo. Asi solo llamas a los web services una vez (Para cargar la tabla de
options) y no para cada uno de los resultados.
No hay comentarios:
Publicar un comentario