miércoles, 22 de octubre de 2008

Conexión a Web Service desde InfoPath

Para este ejemplo utilizaré un Web Service Gratuito de Indicadores de Chile (UF, Dólar, Etc).

Primero que todo creamos un nuevo documento en blanco y luego nos vamos al menú Herramientas > Conexiones de datos...


Y agregamos una nueva conexión para recibir datos


Seleccionamos Servicio Web

E ingresamos la dirección URL del Web Service al cual nos deseamos conectar.

En nuestro caso

http://aspspider.net/externo/service.asmx



Luego seleccionamos el web method al que deseamos conectarnos, en este caso Indicadores, el cual como vemos nos indica el formato del parámetro de entrada.


Presionamos Siguiente


Y presionamos el botón "Establecer valor de ejemplo...", en donde agregaremos la fecha en el formato que nos indicaba la descripción del Web Service.

En este caso "20081022"


Presionamos Aceptar...

Y Siguiente...

Luego, Repetimos el paso anterior...


Ingresamos nuevamente el parámetro


Aceptamos...

Siguiente...



Siguiente...


Siguiente...

Ahora tendremos nuestra conexión al Web Service de indicadores establecida


...Ahora nos vamos al panel Origen de datos y seleccionamos la conexión Indicadores como se indica en la imagen.

Luego Agregamos el campo "Fecha" y El grupo "Indicadores" a nuestro formulario

Nos debería quedar algo así:

Luego agregamos un botón

Nos vamos a propiedades del botón


Y modificamos la acción a "Actualizar"

Presionamos Aceptar y ya podemos disfrutar de nuestro formulario InfoPath conectado al Web Service de Indicadores de Chile.

Para ver lo que hemos creado ponemos vista previa, nos aparecera una alerta de seguridad, que nos indica que nos conectaremos a un origen de datos. Debemos presionar


Resultado:



Podremos cambiar la fecha y presionar actualizar para ver los indicadores de otras fechas


Queda pendiente la publicación en SharePoint con InfoPath Form Service.

Francisco Rojas Castro.-

lunes, 20 de octubre de 2008

Identificador Unico en tabla extensible sin código

El objetivo de este mini tutorial es crear un identificador único en una tabla extensible que se auto - genere, sin crear código Visual Basic o C#.

Existen dos posibles soluciones, cada una con sus ventajas y desventajas, aquí van

Solución 1

1.- Crear un documento en blanco


2.- Diseñar la siguiente estructura de campos, vamos a poner 2 identificadores, id e id2, la idea es ver las dos soluciones, una en cada id.


3.- Luego creamos una tabla extensible con el grupo, algo así:


4.- El primer Id lo cambiamos a "cuadro de expresión", como se ve en la imagen. Ya explicaré porque.

5.- Ahora entramos en propiedades del cuadro de expresión (id), e ingresamos la siguiente función: position()

Esta función nos indica la ubicación del nodo dentro del grupo.


6.- Presionamos aceptar y automáticamente se cambia el valor del id a 1

7.- Presionamos vista previa, si agregamos más elementos veremos la primera solución funcionando.

Si nuestro objetivo es crear un campo de referencia (como el indicador de filas de Excel) está solución nos viene bien, pero si lo que deseamos es almacenar el campo del correlativo o utilizar el campo id como se muestra acá, la función position() no nos servirá, ya que está sólo funciona en cuadros de expresión... Por lo tanto deberemos leer la solución 2...

Solución 2

1.- Nos vamos a las propiedades del cuadro de texto (id2)

2.- En el valor predeterminado creamos la siguiente función

count(../preceding-sibling::my:grupo)+1


Nota: La función preceding-sibling nos entrega todos los nodos que preceden al nodo actual.


Si ponemos vista previa, tendremos los dos códigos auto numéricos



Saludos.

Francisco Rojas Castro.-

jueves, 16 de octubre de 2008

Tabla extensible con filas resaltadas

La idea de este mini ejemplo es crear filas en una tabla extensible con filas intercaladas resaltadas.

1.- Crea una tabla con un código auto numérico (si no sabes como Presiona Aquí)


2.- Utilizaré la misma tabla que se indica en el punto 1, Luego de crearla nos vamos al formato condicional de la tabla extensible.


2.- Seleccionamos La expresión y agregamos el siguiente código:

my:Id2 mod 2 = 0

Le añadimos sombreado


y nuestra tabla extensible tendrá diseño en las filas



Saludos.

Francisco Rojas Castro.-

miércoles, 15 de octubre de 2008

Concatenar campo en tabla extensible

InfoPath


Objetivo

Concatenar un campo desde una tabla extensible

Problema


El problema radica en que InfoPath entrega funciones para el manejo de campos numéricos en tablas extensibles, por ejemplo: sum(), count() o el mismo max( ), bueno, pero que pasa si lo que deseamos es concatenar un campo tipo texto, entonces se nos complica el escenario.


Solución


Supongamos que tenemos la siguiente estructura de campos

Creamos la lista extensible que quedará más o menos así

Para concatenar todos los Campo1 de mi tabla extensible separándolos por “;”, lo que debo hacer es crear la siguiente función

eval(eval(Linea, 'concat(my:Campo1, ";")'), "..")

O en xPath

xdMath:Eval(xdMath:Eval(my:Grupo/my:Linea, 'concat(my:Campo1, ";")'), "..")


Esta funcion la ubicamos en un cuadro de expresión o donde deseemos.


Resultado