viernes, 20 de marzo de 2015

Cómo mostrar un mensaje de error cuando InfoPath no retorna datos.

Pongamos el caso que tenemos un formulario InfoPath donde en una determinada vista del formulario queremos realizar una llamada a un Web Services y mostrar todos los resultados retornados por el mismo en el propio formulario. Si todo funciona bien, perfecto, pero… ¿Cómo haríamos para mostrar un mensaje de error en caso de que no retornara ningún dato?
El método que os propongo es el siguiente: Primero creamos una sección por debajo de la que nos tiene que mostrar los resultados de la búsqueda
image
En la sección recién creada añadimos un control de tipo caja de texto, al que le eliminamos los bordes y el color de fondo para hacerlo transparente y que no parezca una caja de texto “donde introducir datos”
image
Una vez hecho esto, seleccionamos de nuevo el campo de texto y vamos a su panel de propiedades, donde escribiremos el texto que querremos mostrar en caso de no recibir ningún dato en la consulta:
image
En el mismo panel de propiedades, en la pestaña de “display” nos aseguraremos de que está marcada la opción de “Read-only” para evitar que nadie pueda escribir nada en la línea de texto a parte del mensaje que le hemos configurado por defecto.
image
En este punto deberíais ver más o menos así el control en vuestro diseñador de formulario:
image
Ahora ya solo nos falta añadir la lógica para mostrarlo solo cuando la consulta no retorne resultados. Para ello seleccionaremos toda la sección que contiene el nuevo control de texto y crearemos la siguiente regla:
Cuando el grupo de campos un nivel por debajo de la sección “dataFields” de la consulta “esté presente”, entonces ocultaremos el control (únicamente se mostrará el mensaje de error si la estructura no está presente)
image
Al aplicar esta regla, el comportamiento debería ser el esperado:
image
Eso es todo por hoy, amig@s, ¡¡Un saludo!!

No hay comentarios: