Está en la página 1de 56

iFlexForms Advanced

Developer
Documentation
Rev 2023

Guillermo Cotton
MINDSGROUP S.A.
INTRODUCCIÓN ....................................................................................................................................................4
DISEÑANDO FORMULARIOS .................................................................................................................................4
PÁGINA / GRUPO........................................................................................................................................................... 5
SECCIÓN ...................................................................................................................................................................... 5
TEXTO ......................................................................................................................................................................... 5
NUMÉRICO ................................................................................................................................................................... 5
FECHA/HORA................................................................................................................................................................ 5
OPCIONES .................................................................................................................................................................... 5
UBICACIÓN ................................................................................................................................................................... 6
MEDIA......................................................................................................................................................................... 6
DIBUJO / BOSQUEJO ...................................................................................................................................................... 6
CÓDIGO DE BARRAS ....................................................................................................................................................... 6
CAMPO OCULTO............................................................................................................................................................ 6
ACCIÓN DEL USUARIO ..................................................................................................................................................... 6
TABLA ......................................................................................................................................................................... 7
DATOS ......................................................................................................................................................................... 7
PASO DE PROCESO ......................................................................................................................................................... 7
CAMPO NFC ................................................................................................................................................................ 7
CONFIGURACIÓN DEL FORMULARIO .....................................................................................................................9
OPCIONES .................................................................................................................................................................... 9
CONFIGURACIÓN BÁSICA ............................................................................................................................................... 11
OPCIONES AVANZADAS ................................................................................................................................................. 11
TIPO DE PANTALLA TABLERO DE ÍCONOS ............................................................................................................ 12
PROPIEDADES DE LA BARRA DE TÍTULO ............................................................................................................................. 14
Propiedades Básicas ........................................................................................................................................... 14
PROPIEDADES DEL ÍCONO .............................................................................................................................................. 14
Propiedades Básicas ........................................................................................................................................... 14
Opciones Avanzadas ........................................................................................................................................... 15
PROPIEDADES DEL ÍCONO DE LA BANDEJA ......................................................................................................................... 15
Propiedades Básicas ........................................................................................................................................... 15
Opciones Avanzadas ........................................................................................................................................... 15
LISTA DE TIPO DE PANTALLA DE DATOS .............................................................................................................. 16

CONFIGURANDO LA BARRA DE TÍTULO ............................................................................................................................. 17


CONFIGURACIÓN DE FILTROS.......................................................................................................................................... 18
Propiedades Básicas ........................................................................................................................................... 18
Validación y Comportamiento ............................................................................................................................ 18
Diseño y Estilo ..................................................................................................................................................... 18
Configurar una Fila ............................................................................................................................................. 18
Diseño y Estilo ..................................................................................................................................................... 19
TIPO DE PANTALLA DE DETALLES ........................................................................................................................ 19
CONFIGURANDO LA BARRA DE TÍTULO ............................................................................................................................. 20
LÍNEAS DE DETALLE ...................................................................................................................................................... 20

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 1
Propiedades Básicas ........................................................................................................................................... 20
Diseño y Estilo ..................................................................................................................................................... 20
Validación y Comportamiento ............................................................................................................................ 21
CREACIÓN DE UNA FÓRMULA............................................................................................................................. 21

NOMBRES DE DATOS DE CAMPO..................................................................................................................................... 21


CONSTRUCTORES DE FÓRMULAS Y TEXTO ......................................................................................................................... 21
INSERTAR UN CAMPO ................................................................................................................................................... 22
INSERTAR UNA FUNCIÓN ............................................................................................................................................... 22
INSERTAR COMENTARIOS .............................................................................................................................................. 22
VALIDAR FÓRMULA ...................................................................................................................................................... 23
REFERENCIANDO VALORES DE CAMPO ............................................................................................................................. 23
VALOR DINÁMICO ........................................................................................................................................................ 24
VISIBILIDAD ................................................................................................................................................................ 24
VALIDACIÓN ............................................................................................................................................................... 25
REFIRIÉNDOSE A COLUMNAS DE FUENTES DE DATOS ........................................................................................................... 26
IFLEX FORMS RECETAS........................................................................................................................................ 27

MOSTRANDO Y OCULTANDO CAMPOS (VISIBILIDAD) .......................................................................................................... 27


RESPUESTAS Y CÁLCULOS DINÁMICOS (VALORES DINÁMICOS) .............................................................................................. 28
TÍTULOS E INDICACIONES DINÁMICAS............................................................................................................................... 29
SELECCIÓN EN CASCADA (TAMBIÉN CONOCIDA COMO PADRE-HIJO) ...................................................................................... 30
CAMPOS CONDICIONALMENTE OBLIGATORIOS (CONDICIÓN REQUERIDA) ............................................................................... 32
PERMITIENDO A LOS USUARIOS SALTAR PÁGINAS (NAVEGACIÓN DE FORMULARIO PERSONALIZADA) ............................................ 33
GENERANDO UN NÚMERO/CÓDIGO ÚNICO ...................................................................................................................... 36
CÁLCULO DE LA DURACIÓN/TIEMPO TRANSCURRIDO ENTRE EL INICIO Y EL FINAL DEL FORMULARIO (O ENTRE DOS CAMPOS)............... 37
VALIDACIÓN DE RESPUESTAS (VALIDACIÓN PERSONALIZADA) ................................................................................................ 38
GUARDANDO VALORES DE ENTRADA PARA REUTILIZACIÓN / VALORES PREDETERMINADOS (VALORES GLOBALES) .......................... 40
USANDO VALORES GLOBALES EN UNA FÓRMULA ............................................................................................................... 41
BUSCANDO UNA FILA EN UNA FUENTE DE DATOS A PARTIR DE UN ESCANEO DE CÓDIGO DE BARRAS ............................................. 41
ESCANEANDO CÓDIGOS DE BARRAS EN UN CAMPO DE OPCIONES .......................................................................................... 41
RELLENANDO OTROS CAMPOS BASADOS EN UN ESCANEO DE CÓDIGO DE BARRAS .................................................................... 42
ESCANEO REPETIDO DE CÓDIGOS DE BARRAS / CÓDIGOS QR ............................................................................................... 43
MOSTRANDO IMÁGENES DINÁMICAMENTE DESDE FUENTE DE DATOS, WEB O MAPAS .............................................................. 43
Mostrar dinámicamente una imagen desde una columna de fuente de datos .................................................. 44
Descargar y mostrar dinámicamente una imagen desde una fórmula............................................................... 44
Mostrando una imagen de mapa para el resultado de un campo de Ubicación (o un conjunto dado de
coordenadas) ...................................................................................................................................................... 44
Imágenes de marcador de posición y qué significan........................................................................................... 45
CAPTURANDO DATOS REPETIBLES ................................................................................................................................... 46
Campo de Página ................................................................................................................................................ 46
Campo de Tabla .................................................................................................................................................. 48
ANIDACIÓN DE DATOS REPETIBLES .................................................................................................................................. 50
Limitaciones ........................................................................................................................................................ 51
PERSONALIZACIÓN DE LOS TÍTULOS DE LAS ENTRADAS DE FORMULARIOS EN PROGRESO ............................................................. 51
REFERENCIA DE FÓRMULAS: PREGUNTAS Y RESPUESTAS RÁPIDAS ..................................................................... 52

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 2
DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 3
IFLEXFORMS ADVANCED DEVELOPER
INTRODUCCIÓN

El tipo de pantalla de Formulario es la forma principal en la que puedes


construir pantallas de captura de datos en la plataforma. Esto te
permite reemplazar rápidamente los formularios en papel con
versiones digitales, así como extender las pantallas de captura de datos
existentes desde sistemas de escritorio o web hasta una aplicación
móvil.

Tus usuarios podrán recopilar datos en campo utilizando la aplicación


móvil y evitar los costos y retrasos en tiempo de la captura de datos
desde papel a tus sistemas existentes.

Siempre que quieras hacer cambios en un Formulario, nuestro proceso


de publicación se encarga automáticamente de distribuir los cambios a
los usuarios de la aplicación en campo. De esta manera, tus
trabajadores siempre tienen las pantallas de Formulario más recientes
al alcance de su mano, sin importar dónde se encuentren.

Creas Formularios utilizando nuestra herramienta de Diseño de


Formularios con función de arrastrar y soltar. Tus Formularios pueden
contener campos que aprovechen las capacidades del dispositivo móvil,
como tomar fotos y videos, escanear códigos de barras y capturar
firmas.

Todas estas funciones avanzadas se agregan fácilmente con un simple arrastrar y soltar.

DISEÑANDO FORMULARIOS

Después de crear una nueva pantalla de formulario, serás dirigido a la pantalla de diseño del formulario.

Cada formulario debe tener un diseño para poder ser publicado.

Puedes acceder a la pantalla del Diseñador de Formularios a través del enlace "diseño" que se muestra en la
pantalla de listado de formularios cuando pasas el cursor sobre una fila.

Puedes acceder a la pantalla del Diseñador de Formularios a través del enlace "diseño" que se muestra en la
pantalla de listado de formularios cuando pasas el cursor sobre una fila.

La pantalla del Diseñador de Formularios ofrece una vista visual de las preguntas de tu formulario y te brinda un
enfoque de arrastrar y soltar para crear el diseño de tu formulario.

En la sección izquierda del Diseñador verás una columna de iconos de tipos de preguntas, y cada uno tiene una
breve descripción.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 4
Los tipos de preguntas disponibles son los siguientes:

PÁGINA / GRUPO
Este es un tipo común que debes usar siempre que quieras repetir preguntas o mostrar múltiples campos en la
misma pantalla.

SECCIÓN
Este es un tipo de campo de solo lectura que te permite mostrar texto y/o una imagen en el formulario.

TEXTO
El tipo de pregunta más simple que permite la captura de cualquier valor de texto. Puedes especificar un formato
deseado para forzar la entrada de valores como correos electrónicos, direcciones web, así como números de
teléfono.

NUMÉRICO
Para la captura de valores numéricos. Puedes restringir a valores enteros o decimales, así como el rango de valores
permitidos.

FECHA/HORA
Permite la captura de valores de fecha y/o hora.

OPCIONES
Te permite especificar una lista de opciones para que el usuario elija. Puedes especificar si una pregunta de
opciones permite solo una respuesta o múltiples respuestas. Las preguntas de opciones también pueden usar
Fuentes de Datos para sus opciones, lo cual es una característica poderosa que te permite mantener listas de
respuestas de forma centralizada y compartir estas listas entre múltiples formularios.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 5
UBICACIÓN
Permite al usuario de la aplicación capturar una ubicación geográfica usando su GPS o seleccionando un punto en
un mapa.

MEDIA
Para la captura de fotos, videos y audio utilizando el dispositivo del usuario de la aplicación. Cualquier medio
capturado se carga como parte de la entrada del formulario.

DIBUJO / BOSQUEJO
Ofrece la capacidad de capturar dibujos en la pantalla táctil del dispositivo. Esto es útil para capturar firmas y
también para hacer bocetos simples.

CÓDIGO DE BARRAS
Permite la captura de formatos comunes de códigos de barras y códigos QR utilizando la cámara del dispositivo.
El valor de la respuesta devuelto es el contenido del código de barras, por ejemplo, el número de producto que se
encuentra en el código de barras.

CAMPO OCULTO
Almacena valores predeterminados o calculados que nunca se muestran al usuario.

ACCIÓN DEL USUARIO


Muestra un botón que puede llevar al usuario a realizar una serie de acciones diferentes, como:
• Marcar un número de teléfono
• Abrir una página web
• Crear un correo electrónico
• Abrir otra pantalla en la aplicación
• Abrir un documento para leerlo
• Mostrar una ubicación/dirección en un mapa

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 6
TABLA
Muestra una tabla de filas, cada fila contiene el mismo conjunto repetido de campos. Los usuarios pueden
agregar/editar filas al navegar hacia una página de campos de fila.

DATOS
Un campo oculto que selecciona la fila correspondiente de una Fuente de Datos dada en función de los filtros
dinámicos que especifiques.

PASO DE PROCESO
Este potente tipo de pregunta te permite crear formularios que se mueven entre múltiples usuarios de la
aplicación, útil para procesos como aprobaciones o confirmaciones.
Las Tareas del Formulario crean un "corte" que detiene el formulario dondequiera que aparezca la Tarea del
Formulario y pide al usuario de la aplicación que elija a otra persona a la que enviar el formulario.
La entrada del formulario se guarda en ese punto y luego se envía como una Tarea a la persona seleccionada.
Entonces podrías tener, por ejemplo, un formulario de pedido que utiliza una Tarea de Formulario para manejar un
proceso de aprobación: el primer usuario de la aplicación crea la entrada del formulario y completa los detalles del
pedido.
Luego, una Tarea de Formulario envía la entrada a un supervisor para su aprobación como una Tarea.

CAMPO NFC
Lee y escribe valores almacenados en una etiqueta de comunicación de campo cercano.
SOLO ANDROID

Para crear tu formulario, arrastra y suelta los tipos de preguntas que desees en el área de trabajo blanco.
Puedes mover preguntas para cambiar el orden, y arrastrar preguntas dentro y fuera de los Grupos de Páginas
como desees.
Cuando hagas clic en una pregunta en el área de trabajo, notarás que aparece una barra de Propiedades en el lado
derecho de la pantalla.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 7
La barra de Propiedades es donde especificamos los detalles y la función de cada pregunta.

• Cada pregunta debe tener un Nombre de Datos único, que es el encabezado de la columna que verás en
la pestaña de Datos, así como en las exportaciones de datos que puedas realizar.
Los Nombres de Datos no pueden tener espacios ni caracteres especiales.
• El Texto de Visualización es el texto de la pregunta que se mostrará en el Formulario al usuario de la
aplicación.
• La propiedad Sugerencia te permite especificar texto adicional para explicar la pregunta al usuario de la
aplicación.
• La mayoría de las preguntas tienen opciones de Solo Lectura y Requerido, que te permiten evitar la
entrada de datos y requerir una respuesta respectivamente.
La opción de Solo Lectura es generalmente útil cuando deseas mostrar un mensaje o una respuesta fija al
usuario de la aplicación.
• La mayoría de los tipos de preguntas también tienen una sección Avanzada que te permite especificar un
valor predeterminado, controlar la visibilidad de la pregunta, validar respuestas y redirigir respuestas a
otra pregunta.
Las propiedades avanzadas requieren que definas una fórmula especial que es similar a una fórmula de
Excel en su naturaleza. Consulta nuestro tema sobre la Creación de Fórmulas para obtener más detalles.

Una vez que hayas creado el diseño de tu formulario, asegúrate de hacer clic en el enlace "guardar cambios" en la
barra de opciones para guardar el contenido.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 8
CONFIGURACIÓN DEL FORMULARIO

El acceso a la configuración de un formulario se logra al ver su lista de pantallas navegando a Aplicaciones >
Pantallas y haciendo clic en el icono de engranaje que se muestra en la captura de pantalla a continuación.

En la página de Configuración, tienes acceso a lo siguiente:

• Opciones
• Configuración Básica
• Opciones Avanzadas
• Impresión en la Aplicación

OPCIONES

Nuestra plataforma ofrece un enfoque simple de versionado y publicación para administrar tus pantallas. Esto
significa que después de crear una nueva pantalla, su estado será "Modo de Prueba/Borrador" y solo los usuarios
de prueba asignados pueden ver la pantalla. Tras la publicación, la pantalla estará disponible para todos los
usuarios a menos que se hayan aplicado reglas de acceso más estrictas, y si la pantalla está asociada con una
carpeta, la pantalla estará disponible para usuarios seleccionados y/o un grupo de usuarios.

Las carpetas son una herramienta útil para gestionar y distribuir pantallas a tus usuarios.

Sin embargo, las opciones e información disponibles en la página de Configuración son las siguientes:

• Opciones (Exportar/Importar/Bloquear/Publicar/Nueva Versión/Archivar/Papelera/Guardar)


• Información de la Pantalla (Tipo/Estado/Versión/Actualizado)
• Carpetas Vinculadas
• Pantallas Vinculadas
• Historial de Versiones

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 9
Descargar un archivo Excel (.XLSX) de la pantalla que se puede usar para realizar
alteraciones masivas o simplemente para guardar una copia localmente.
Importar un archivo Excel (.XLSX) o Valores Separados por Comas (.CSV) que debe estar en
el formato requerido. Una plantilla descargable en el formato requerido está disponible
después de hacer clic en Importar.
Bloquea la pantalla para evitar que múltiples usuarios la editen. Las pantallas bloqueadas
solo pueden ser desbloqueadas por el usuario que la bloqueó o por un Administrador. Solo
las pantallas en Modo de Prueba/Borrador pueden bloquearse. Las pantallas Publicadas o
Archivadas no se pueden bloquear.
Publica una nueva versión de la pantalla, y las aplicaciones móviles descargan
automáticamente esta nueva versión.
Crea una nueva versión en borrador de la pantalla.
Las versiones en borrador no son visibles para la aplicación móvil hasta que se publiquen a
menos que se asignen usuarios de prueba.
Toma en cuenta que los usuarios seguirán teniendo acceso a la versión publicada
anteriormente, excepto para los usuarios de prueba asignados.
Archiva la pantalla y la elimina automáticamente de la aplicación móvil.

La pantalla y todos los datos y versiones asociados se moverán a la Papelera y ya no


estarán disponibles para su uso.
Tendrás 30 días para restaurar desde el área de Papelera antes de que los elementos se
eliminen permanentemente del sistema.
Guarda los cambios realizados.

Ten en cuenta que dependiendo del estado de la pantalla, es decir, Publicado/Borrador o Archivado, las opciones
mencionadas anteriormente se muestran respectivamente, y algunas están presentes en la página del Diseñador
del Formulario y Conectores de la pantalla.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 10
CONFIGURACIÓN BÁSICA

Título de la Pantalla El título/nombre de esta Pantalla se utilizará para cualquier visualización


predeterminada al usuario de la aplicación (por ejemplo, en la barra de título).
Si deseas categorizar esta Pantalla mediante un código u otro identificador externo,
consulta la opción ID Externo.
Icono para Mostrar Selecciona el icono que se muestra en la aplicación.
Descripción Introduce una descripción del propósito/funcionalidad de la Pantalla.
El Usuario Puede El número de días que las entradas de datos de este Formulario permanecerán en el
Mantener el Historial dispositivo del usuario en un estado de solo lectura. Un valor de cero significa que no se
almacenará ningún historial.
Mostrar Título de Si está establecido, entonces la respuesta del campo del Formulario elegido se muestra
Fila como el título de fila en las pantallas de Historial y Entradas Guardadas de la aplicación.

OPCIONES AVANZADAS

ID Externo Campo opcional que te permite vincular/seguir esta Pantalla con una entidad similar en
un sistema externo. Requerido si estás utilizando la API.
Plantilla de Word Sube una plantilla de Microsoft Word para usar al generar datos para este Formulario.
(.DOCX)
Plantilla de Excel Sube una plantilla de Microsoft Excel para usar al generar datos para este Formulario.
(.XLSX)
Orden de Controla dónde se mostrará el icono de esta Pantalla en la pantalla de inicio
Visualización de la predeterminada de tu aplicación.
Aplicación Los iconos se ordenan desde 1 en adelante, y los empates se ordenan alfabéticamente.
Registrar la Si se debe registrar o no la ubicación GPS actual del usuario (al rellenar el formulario)
Ubicación del automáticamente. La ubicación se devuelve en la columna "Completado En" de la
Usuario entrada de datos resultante en el área de Datos.
Ocultar al Usuario Evita que este elemento se muestre en la pantalla de inicio predeterminada. Útil
cuando este elemento solo debe ser abierto por una Interacción del Usuario (por
ejemplo, desde un icono en una pantalla de Tablero de Iconos)
No Guardar Entradas De forma predeterminada, la aplicación guarda automáticamente el progreso de las
en Progreso entradas del Formulario y pide al usuario que guarde o descarte los cambios si salen del
Formulario antes de cargarlo.
Esta opción desactiva todo el guardado en progreso y elimina el mensaje de
guardar/descartar cambios del usuario. Bueno para escenarios en los que el Formulario
es puramente para fines de navegación o para casos de "úsalo o piérdelo" donde las
entradas del Formulario deben capturarse y enviarse de inmediato.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 11
Ocultar Pantalla Oculta la pantalla inicial con el título de este Formulario, yendo directamente a la
Inicial primera página.
No Subir Datos Evita que este Formulario suba entradas de datos al servidor.
Se utiliza para Formularios que editan Valores Globales o para casos en los que los
datos capturados deben almacenarse sólo en el dispositivo.
Puede Editar Permite a los usuarios de la aplicación editar y actualizar las entradas de formularios
Entradas completadas. La edición está disponible desde la página de historial de entradas y la
Completadas interacción Open Entry en la aplicación. Una vez que se aplica la Actualización de la
Entrada del Formulario a la plataforma, todos los conectores y enlaces de fuente de
datos se volverán a procesar.

TIPO DE PANTALLA TABLERO DE ÍCONOS

El tipo de pantalla Tablero de Íconos es una de nuestras pantallas para la consulta de datos.

Permite un conjunto personalizado de íconos para ser añadidos con numerosas interacciones de usuario que
controlan lo que sucede cuando un usuario selecciona un ícono en la aplicación.

Ideal para organizar un conjunto de pantallas que pueden ser exploradas desde un único ícono en la pantalla de la
aplicación predeterminada o personalizada.

Para añadir una pantalla de Tablero de Íconos, navegue por el menú lateral cuando esté conectado a la plataforma
web, Aplicaciones>Pantallas.

1. Agregar nueva pantalla


2. Seleccionar Tablero de Íconos como tipo de pantalla
3. Introducir un nombre para la pantalla y un ícono para mostrar
4. Crear la nueva pantalla

Una vez creada, la página se cargará automáticamente en su nuevo Tablero de Íconos. Aquí es donde podrá añadir
íconos y configurar lo que sucede cuando un usuario selecciona un ícono en la aplicación.

Los pasos iniciales básicos a seguir al añadir y configurar íconos son los siguientes:

1. Agregar ícono
2. Seleccione un ícono para configurar, las propiedades del ícono seleccionado se mostrarán en la parte
derecha
3. Personalizar el ícono, texto y color
4. Establecer una interacción de usuario

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 12
5. Establecer el objetivo para la interacción de usuario elegida (Nota, algunas interacciones requieren
parámetros que se pueden pasar a una pantalla o página web lanzada desde dentro de la aplicación.)
6. Guarde los cambios antes de probar en la aplicación (Nota, puede que sea necesario forzar la
sincronización de la aplicación en el dispositivo de un usuario para pruebas rápidas)

La interacción del usuario en la imagen de arriba está configurada


para abrir otra pantalla publicada (es decir, Formulario de Entrada de
Datos, Pantalla de Detalles, Pantalla de Listado o Pantalla de Mapeo).
Y permite al usuario seleccionar una pantalla publicada para ser
lanzada cuando el usuario selecciona el ícono en la aplicación.

Dependiendo de la interacción del usuario establecida, propiedades


adicionales están disponibles para establecer objetivos y/o introducir
parámetros a pasar dependiendo de la interacción.

Por ejemplo: Se pasa un ID a un Formulario de Entrada de Datos que


se utiliza en un filtro para mostrar datos relacionados con el usuario
conectado.

O, una URL dinámica se llena en función del usuario conectado para


lanzar una dirección única a través del navegador web
predeterminado del dispositivo.

Varias interacciones de usuario están disponibles y esperamos que la siguiente lista le dé una mejor idea de lo que
es posible.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 13
PROPIEDADES DE LA BARRA DE TÍTULO

PROPIEDADES BÁSICAS
1. Texto del Título de la Pantalla - se muestra en la barra de título o puede optar por mostrar el logotipo de
la empresa en su lugar.
2. Mostrar Logotipo como Título: Superpone el logotipo de la empresa por defecto sobre el Título de la
Pantalla.
3. Generar Íconos Automáticamente (Casilla de Verificación): Cuando se selecciona, añade íconos para cada
Pantalla/Documento al que el usuario actual puede acceder, elimina la capacidad de añadir íconos
personalizados a la pantalla, pero los íconos añadidos cuando no está seleccionado se muestran.
4. Botones de Acción: Definir botones adicionales para aparecer en la barra de título (IZQUIERDA, DERECHA1
o DERECHA2) que pueden tener interacciones de usuario establecidas.

5. Visibilidad del Botón: Controlar la visibilidad de este botón mediante una fórmula

PROPIEDADES DEL ÍCONO

Nota: No visible si "Generar Íconos Automáticamente (Casilla de Verificación)" está seleccionada.

PROPIEDADES BÁSICAS
1. Configuración del Ícono
• Seleccionar un ícono
• Agregar texto estático al botón o controlar dinámicamente mediante funciones.
• Seleccionar el color del botón, la transparencia y el tamaño.
• Seleccionar la interacción del usuario
2. Visibilidad del Ícono: Controlar la visibilidad de este ícono mediante una fórmula.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 14
OPCIONES AVANZADAS
1. Configuración de la Insignia: Muestra el texto dado como una insignia circular en el ícono.
• Agregar texto estático a la insignia o controlar dinámicamente mediante funciones.
• Seleccionar el color de la insignia, la transparencia y el tamaño.
2. Visibilidad de la Insignia: Controlar la visibilidad de este botón mediante una fórmula.

PROPIEDADES DEL ÍCONO DE LA BANDEJA

PROPIEDADES BÁSICAS
1. Configuración del Ícono: Configurar la visualización y el comportamiento del ícono.
• Elegir el ícono para mostrar
• Cambiar el ícono a un solo color si se desea, seleccionar la transparente (Casilla de Verificación)
elimina el color y devuelve el ícono a su estado predeterminado.
2. Visibilidad del Ícono: Controlar la visibilidad de este ícono mediante una fórmula.

OPCIONES AVANZADAS
1. Configuración de la Insignia: Muestra el texto dado como una insignia circular en el ícono.
• Agregar texto estático a la insignia o controlar dinámicamente mediante funciones.
• Seleccionar el color de la insignia, la transparencia y el tamaño.
2. Visibilidad de la Insignia: Controlar la visibilidad de este botón mediante una fórmula.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 15
LISTA DE TIPO DE PANTALLA DE DATOS
El Tipo de Pantalla de Lista de Datos es uno de nuestros tipos de pantalla de consulta de datos. Este tipo de
pantalla está basado en datos y te permite visualizar las filas en una fuente de datos.

Para agregar una pantalla de lista, navega a Aplicaciones -> Pantallas.

Haz clic en el botón AGREGAR NUEVO+ que se encuentra en el lado derecho de la página.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 16
3. Dale un nombre a tu Pantalla de Listado.
4. Selecciona un icono adecuado.
5. Selecciona tu fuente de datos.
6. Haz clic en el botón CREAR+.

CONFIGURANDO LA BARRA DE TÍTULO


1. Título de Pantalla - Esto se llenará con el nombre de tu pantalla.
2. Botones de Acción - Define los botones que aparecerán en la barra de título.
• Selecciona qué botón deseas configurar, IZQUIERDA, DERECHA1 o DERECHA2.
• Selecciona un icono.
• Agrega el texto del botón.
• Selecciona los colores del botón.
• Selecciona la interacción del usuario.
3. Visibilidad del Botón - Controla la visibilidad de este botón mediante una fórmula.
4. Deshabilitar Estilos Condicionales - Si las fórmulas condicionales (es decir, específicas del valor de la
columna) definidas en la Fuente de Datos reemplazarán los estilos definidos en este diseño.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 17
CONFIGURACIÓN DE FILTROS
Haz clic en la Barra de Filtros en la parte superior del diseñador de la pantalla.

PROPIEDADES BÁSICAS
• Mostrar Cuadro de Búsqueda - Si se muestra o no un cuadro de búsqueda.
• Permitir a los usuarios filtrar por columna - Permite al usuario especificar sus propios filtros
personalizados para las filas que se muestran.
• Los filtros de usuario anulan el predeterminado - Por defecto, cualquier filtro de usuario se aplica junto
con el Filtro Predeterminado. Si se selecciona esta opción, el Filtro Predeterminado se ignora cuando se
especifican filtros de usuario.

VALIDACIÓN Y COMPORTAMIENTO
• Patrón de Búsqueda - Por defecto, la búsqueda filtrará las filas basándose en el texto de búsqueda del
usuario que coincide en cualquier parte de los valores de fila visualizables.
Esta opción te permite especificar una expresión regular de reemplazo para la coincidencia de filas.
Usa {{this}} para referirte al texto de búsqueda del usuario en tu expresión regular.
Por ejemplo, '^{{this}}' mostrará filas que comiencen con el texto de búsqueda.
• Filtro Predeterminado - Te permite especificar la fórmula de filtro predeterminada para esta pantalla.
Cualquier filtro entrante anulará cualquier filtro predeterminado especificado.
Por ejemplo, {{this[0]}} = ORGMETA('projectId')

DISEÑO Y ESTILO
• Ordenar por Columna - Ordena los Datos por una columna de la Fuente de Datos. Si se deja en
blanco, el orden es por la primera posición visible, por ejemplo, el Título.
• Agrupar por Columna - Agrupa los Datos por una columna de la Fuente de Datos.
• Fondo - El color de fondo predeterminado de los encabezados de grupo.
• Estilo Condicional de Agrupación - Si se deben aplicar o no estilos condicionales (es decir, específicos
del valor de la columna) al color de fondo o al texto en primer plano.
Los estilos condicionales se pueden definir en la página de Filas de la Fuente de Datos.
• Prioridad de Ordenación - Determina la prioridad/orden en la que se aplica la Agrupación u
Ordenación.

CONFIGURAR UNA FILA


Haz clic en una fila en el diseñador de la pantalla.

Configura los 4 elementos que se muestran en la pantalla, Título Izquierdo, Título Derecho, Subtítulo Izquierdo y
Subtítulo Derecho, haciendo una elección en el menú desplegable que corresponde a la columna en la fuente de
datos.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 18
Miniatura Vincula la miniatura de cada fila a una columna de la Fuente de Datos.
Interacción del Usuario Define una interacción del usuario para cada fila.

DISEÑO Y ESTILO
Fondo Predeterminado El color de fondo predeterminado de todas las filas.
Fondo Condicional Determina el color de fondo de cada fila según los estilos condicionales
en la columna especificada. Los estilos condicionales se pueden definir en
la página de Filas de la Fuente de Datos.

TIPO DE PANTALLA DE DETALLES

El Tipo de Pantalla de Detalles es uno de nuestros tipos de pantalla de consulta de datos. Este tipo de pantalla está
basado en datos y te permite visualizar las filas en una fuente de datos.

Para agregar una pantalla de detalles, navega a Aplicaciones -> Pantallas.

Haz clic en el botón AGREGAR NUEVO+.

1. Dale un nombre a tu Pantalla de Detalles.


2. Selecciona un icono adecuado.
3. Selecciona tu fuente de datos (opcional).
4. Haz clic en el botón CREAR+.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 19
CONFIGURANDO LA BARRA DE TÍTULO
1. Fuente de datos - una selección de fuentes de datos conectadas dentro
de tu aplicación para relacionar tu configuración.
2. Título de Pantalla - Esto se llenará con el nombre de tu pantalla.
3. Botones de Acción - Define los botones que aparecerán en la barra de
título.
• Selecciona qué botón deseas configurar, IZQUIERDA, DERECHA1 o
DERECHA2.
• Selecciona un icono.
• Agrega el texto del botón.
• Selecciona los colores del botón.
• Selecciona la interacción del usuario, por ejemplo:
• Casilla de verificación de selección de visibilidad
• Visibilidad del Botón - Controla la visibilidad de este botón mediante
una fórmula.

LÍNEAS DE DETALLE
Selecciona agregar una línea de detalle para crear una nueva entrada.
Fuente de datos una selección de fuentes de datos conectadas dentro de tu aplicación
para relacionar tu configuración de la línea de detalle.

PROPIEDADES BÁSICAS
• Texto Izquierdo: aquí se pueden ingresar texto estático y valores dinámicos relacionados con la
fuente de datos. También se pueden ajustar el color, la fuente y el tamaño del texto.
• Icono Izquierdo: La imagen de icono que se muestra para esta línea detallada, no se puede
seleccionar ningún icono.
• Texto/Botón Derecho: lo mismo que el texto izquierdo y el icono izquierdo combinados, pero en el
lado derecho del campo. También se pueden ajustar el color, la fuente y el tamaño del texto.
También se puede configurar una interacción del usuario con las mismas opciones que se mencionan
anteriormente.

DISEÑO Y ESTILO
• Fondo de la Línea: elige el color de fondo de las líneas de detalle.
• Casilla de verificación de Transparencia: selecciona para hacer que el fondo sea transparente y
viceversa.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 20
VALIDACIÓN Y COMPORTAMIENTO
1. Visibilidad de la Línea: Controla la visibilidad de una línea de detalle con fórmulas y datos relacionados.
2. Formato de Visualización (obsoleto): un valor heredado ahora reemplazado por funciones de fórmula, por
ejemplo, FORMAT-DATE(), FORMAT-NUMBER().

CREACIÓN DE UNA FÓRMULA

La mayoría de las funciones avanzadas de formularios implican el uso de una fórmula. Por lo tanto, es crucial que
entiendas cómo crear fórmulas para aprovechar al máximo nuestras características avanzadas.

En este sección:
• Nombres de Datos de Campo
• Constructores de Fórmulas y Texto
• Referenciando Valores de Campo
o Valor Dinámico
o Visibilidad
o Solo Lectura
o Requerido
o Validación
• Referencia a Columnas de Fuente de Datos

NOMBRES DE DATOS DE CAMPO

El nombre de datos único de un campo puede ser referenciado en otros campos y resultados. Por ejemplo, un
campo para recoger el nombre de un cliente podría ser "customer_name" o "custName", para que su valor sea
identificable al referenciarlo.

No puede comenzar con un número, contener espacios o incluir caracteres especiales.

CONSTRUCTORES DE FÓRMULAS Y TEXTO

Los constructores de fórmulas y texto están presentes en numerosas propiedades en toda la plataforma (Icono de
Martillo). Permiten valores dinámicos usando fórmulas o referenciando otros campos para determinar el valor del
campo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 21
Introduce una fórmula directamente en el cuadro de texto de la propiedad o pulsa el Icono de Martillo para lanzar
el constructor compatible.

Los Constructores de Fórmulas permiten funciones y escenarios complejos, mientras que los Constructores de
Texto tienen una función CONCAT() incorporada que simplemente requiere texto estático con nombres de datos
de campo.

INSERTAR UN CAMPO

Utiliza el menú desplegable para buscar y seleccionar campos de formulario existentes, insertando sus nombres de
datos en tu fórmula.

INSERTAR UNA FUNCIÓN

Utiliza este menú desplegable para buscar, ver ejemplos de uso y seleccionar funciones, insertando la estructura
de la función y los marcadores de posición para los valores requeridos.

Al introducir una fórmula, utiliza la tecla TAB para buscar y autocompletar nombres de funciones de fórmulas.

INSERTAR COMENTARIOS

El icono de Comentarios en el Constructor de Fórmulas que, al hacer clic en él, insertará un comentario para ti
(denotado por /* */). Utilízalo para asegurarte de que todos entienden las partes más complicadas de tus fórmulas
(y para desalentar manipulaciones no deseadas).

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 22
VALIDAR FÓRMULA

Haz clic en el icono adyacente a Añadir Comentario para validar la fórmula. Si este botón está deshabilitado, la
fórmula es válida. Haz cambios en la fórmula y valida.

Si el validador del formulario detecta algún error en tu fórmula, se mostrará un mensaje de error con detalles para
resolverlo.

REFERENCIANDO VALORES DE CAMPO

Primero, necesitas saber cómo dirigirte o referirte a un campo en tu formulario.

Esto se hace utilizando marcadores de posición donde quieras que el sistema inserte respuestas de los campos de
tu formulario. Los marcadores de posición se introducen utilizando la propiedad del nombre de datos único del
campo del formulario, encerrado entre llaves: {{dataname}}.

Así que, por ejemplo, si tienes un campo de texto con un nombre de datos de "field1", te referirías a él como
{{field1}} en un constructor de fórmulas o texto.

Ten en cuenta que los marcadores de posición y todas las demás funciones disponibles para su uso en una fórmula
distinguen entre mayúsculas y minúsculas.

Ahora que sabes cómo referenciar valores de campo, puedes usar este conocimiento para construir una fórmula.

Una fórmula contiene marcadores de posición o varios operadores y funciones, que juntos dan un resultado, de la
misma forma que funciona una fórmula de Excel.

Cuando la aplicación ejecuta la fórmula, cualquier marcador de posición se reemplaza por el valor actualmente
almacenado en el campo referenciado por ese marcador de posición.

Ten en cuenta que usamos comillas simples (' ') para incluir valores estáticos como parte de una fórmula.
Encerrando el texto entre comillas simples de apertura y cierre.

CONCAT({{dataname}}, 'Texto Estático')

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 23
Veamos algunos ejemplos...

Hemos configurado un campo de Acción que permite que las interacciones del usuario se configuren en función
del botón seleccionado. Para estos ejemplos, no usaremos esta funcionalidad, sino simplemente que cuando se
presiona un botón, el valor del campo se convierte en el texto del botón seleccionado.

La imagen de arriba muestra un campo de Acción con un nombre de datos de "btnAction" y cinco botones de texto
(Valor Dinámico, Visibilidad, Solo Lectura, Requerido, Validación) y colores configurados para los siguientes
ejemplos.

Cada botón seleccionado controla la funcionalidad respectiva en otro campo.

VALOR DINÁMICO

Referenciando el nombre de datos del campo de Acción, {{btnAction}}, en una propiedad de Valor Dinámico del
campo de Texto. El valor del campo cambiará dependiendo del botón seleccionado.

{{btnAction}}

VISIBILIDAD

La primera cosa que hay que tener en cuenta es que las propiedades de Visibilidad tienen una condición IF
incorporada. Si el resultado es verdadero, el campo será visible, y si el resultado es falso, el campo no será visible.
Los campos invisibles referenciados en otros campos o salidas devuelven un valor en blanco/sin valor.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 24
Si tienes la intención de no mostrar campos en la aplicación que calculan valores, utiliza el tipo de campo Oculto
(Campo Avanzado) en su lugar.

Crea una fórmula que devuelva un resultado verdadero/falso.

El ejemplo hace referencia al nombre de datos del campo de Acción, {{btnAction}}, y lo compara utilizando una
función de Igualdad con texto estático, 'Visibilidad'. Este texto estático debe coincidir con el valor del botón.

El campo se volverá visible cuando se presione el botón "Visibilidad" del campo de Acción.

{{btnAction}} = 'Visibilidad'

VALIDACIÓN

Lo primero que hay que tener en cuenta es que el campo requiere un valor para validar.

Para este ejemplo, el valor del campo se impulsa dinámicamente desde una condición IF cuando se presiona el
botón de Acción. Cuando se presiona, el valor del campo se convierte en el texto "Válido".

IF(condición, valorVerdadero, valorFalso)


IF({{btnAction}} = 'Validación', 'Válido', 'No Válido')

En segundo lugar, las propiedades de Validación Personalizada tienen una condición IF incorporada. Si el resultado
es verdadero, el valor del campo ha pasado la comprobación de validación y el usuario puede navegar fuera de la
página. Si el resultado es falso, se mostrará el mensaje de validación personalizado, evitando la navegación de la
página y requiriendo que el valor del campo se corrija.

Crea una fórmula que devuelva un resultado verdadero/falso.

El ejemplo hace referencia al nombre de datos del campo, {{validación}}, y lo compara usando una función Igual A
para el texto estático, 'Válido'. Si el valor del campo es el texto "Válido", entonces no se muestra ningún mensaje
de validación.

{{validación}} = 'Válido'

Según tus necesidades de validación, no estás limitado a comprobar sólo el texto exacto, sino también formatos,
contenido, rango, recuento de caracteres, etc.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 25
REFIRIÉNDOSE A COLUMNAS DE FUENTES DE DATOS

El Diseñador de Formularios te permite vincular campos de Opciones a Fuentes de Datos que hayas creado.

Las Fuentes de Datos pueden tener numerosas columnas; es posible que desees referirte a los valores en estas
columnas al crear un Formulario.

Los índices de columna de la Fuente de Datos siempre comienzan en cero. La primera columna tiene un índice de
0, la segunda columna tiene un índice de 1, la tercera columna tiene un índice de 2, etc.

La primera columna en una Fuente de Datos (la columna de Valor) siempre se usa como respuesta de un campo
por defecto.

Si deseas referirte al valor de cualquier otra columna, debes utilizar una sintaxis de indexación; específicamente,
debes añadir corchetes alrededor del número de índice de la columna, por ejemplo, {{opciones[índice]}}

Ejemplo

Veamos un ejemplo utilizando la Fuente de Datos de Inventario anterior que contiene tu lista de artículos con
columnas para el nombre, coste unitario, cantidad, etc.

Lo que necesitarás...

Un campo de Opciones vinculado a la Fuente de Datos que permita al usuario seleccionar un artículo de una lista
de nombres. El valor del campo de Opciones puede ser el nombre seleccionado. {{selecciónDeArtículo}}

Un campo Numérico que capture la cantidad del artículo seleccionado. {{cantidad}}

Un campo Numérico que calculará la cantidad total multiplicando el precio unitario del artículo por la cantidad.

Luego, en la propiedad de Valor Dinámico del campo que calcula la cantidad total, define una fórmula:

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 26
{{selecciónDeArtículo[4]}} * {{cantidad}}

Ten en cuenta los corchetes y el valor del índice de 4 utilizado para referirse a la quinta columna (Costo Unitario)
en la Fuente de Datos de Inventario.

IFLEX FORMS RECETAS

Como las implementaciones de iFlexForms pueden llegar a ser tan variadas, presentamos a continuación una serie
de recetas de los casos más comunes que se pueden encontrar, y cómo poder resolverlos de diferentes maneras.

MOSTRANDO Y OCULTANDO CAMPOS (VISIBILIDAD)

Existen muchas situaciones en las que puede desear mostrar/ocultar campos (o incluso páginas completas) según
la respuesta a una pregunta anterior.

Por ejemplo, supongamos que tenemos un campo de Opciones que pregunta "¿Ve algún peligro?", con las
opciones de Sí o No.

Ahora bien, si el usuario responde Sí, es posible que deseemos mostrar otro campo que les permita completar
detalles sobre el peligro.

Sin embargo, si responden No, no queremos llenar el formulario con campos innecesarios.

Para habilitar el escenario anterior, utilizaremos la propiedad de Visibilidad que se encuentra en la mayoría de los
campos del formulario en el diseñador de formularios.

Supongamos que su diseño de formulario actualmente tiene el campo "¿Tiene algún peligro?" con un Nombre de
Datos de "verPeligros".

También supongamos que el campo verPeligros tiene las opciones "Sí" y "No" como respuestas disponibles.

Agregue un nuevo campo de Texto a su diseño de formulario debajo del campo verPeligros.
Asigne un Nombre de Datos al nuevo campo, como "descripcionPeligros".
Encuentre la propiedad de Visibilidad en el nuevo campo.
Se encuentra cerca del final de la lista de propiedades, en la sección Avanzado.
Ahora necesitamos crear una fórmula que devuelva un resultado Verdadero o Falso.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 27
Cuando el resultado de la fórmula sea Verdadero, el campo se mostrará en la aplicación.
Cuando el resultado sea Falso, el campo se ocultará.

Ingrese la siguiente fórmula en la propiedad de Visibilidad:

{{verPeligros}} = 'Sí'

Lo que significa la fórmula anterior es que cuando el campo verPeligros se responda con un valor de Sí, la
aplicación deberá mostrar el campo descripcionPeligros.

Para obtener más información sobre cómo crear una fórmula, consulte la página de ayuda Creación de una
Fórmula.

¡Todo listo!

Guarde su formulario y pruébelo en su dispositivo para ver la funcionalidad de mostrar/ocultar en acción.

RESPUESTAS Y CÁLCULOS DINÁMICOS (VALORES DINÁMICOS)

A menudo, es posible que necesite mostrar algún texto o calcular un valor de manera dinámica.

Por ejemplo, es posible que desee mostrar un texto diferente en un campo según lo que el usuario haya
respondido anteriormente, o tal vez tiene un formulario de pedido de productos que debe calcular el monto total
a pagar.

Aquí es donde resulta útil la propiedad Valor Dinámico que se encuentra en la mayoría de los campos del
formulario.

El Valor Dinámico le permite crear una fórmula que genera o calcula un resultado que se asigna como la respuesta
del campo dado.

Entonces, por ejemplo, imagine que tiene los siguientes campos del formulario:

• "Ingrese el nombre del producto" - un campo de Texto con Nombre de Datos productName
• "Ingrese el costo del producto" - un campo de Número con Nombre de Datos productCost
• "Ingrese la cantidad de artículos" - un campo de Número con Nombre de Datos numberItems
1. Agregue un nuevo campo oculto a su formulario y configure el Nombre de Datos como
"totalConImpuestos".
2. En este nuevo campo, busque la propiedad Valor Dinámico.
Se encuentra cerca del final de la lista de propiedades, en la sección Avanzado.
3. Ingrese la siguiente fórmula en el Valor Dinámico:
{{productCost}} * {{numberItems}} * 1.10

Lo que hemos hecho hasta ahora es agregar un campo oculto (un campo que el usuario de la aplicación nunca
verá) que almacenará el resultado del cálculo de la fórmula.

La fórmula está aplicando una tasa de impuestos del 10% al costo del producto.

Este es el primer ejemplo de cómo puede usar la propiedad Valor Dinámico para calcular resultados.

Ahora vamos a usar el Valor Dinámico nuevamente para mostrar un mensaje al usuario de la aplicación.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 28
Queremos resumir los detalles de su pedido mediante un campo de Texto de solo lectura.

4. Agregue un nuevo campo de Texto a su formulario, configure el Nombre de Datos como


"resumenDelPedido".
5. Busque la propiedad Solo Lectura y marque la casilla.
Esto hará que el campo sea de solo lectura, por lo que el usuario no podrá cambiar el texto de la
respuesta que se muestra.
6. Busque la propiedad Valor Dinámico e ingrese la siguiente fórmula:
concat('Ha ordenado ', {{numberItems}}, ' de ', {{productName}}, '. Total (incluyendo impuestos) es: ',
{{totalConImpuestos}})

Lo que estamos haciendo con la fórmula anterior es construir un texto dinámico, concatenando fragmentos de
texto.

La función concat() se utiliza para construir el texto final y estamos utilizando los valores de varios campos (las
partes {{NombreDeDatos}}).

Consulte la sección Creación de una Fórmula para obtener más información sobre cómo funciona una fórmula.

TÍTULOS E INDICACIONES DINÁMICAS

En ocasiones, es posible que desee que el Título o el Texto de Indicación de un campo incluyan dinámicamente un
valor de un campo anterior.

Esto es útil en casos en los que la respuesta a una pregunta establece el contexto para los campos que la siguen.
Por ejemplo, supongamos que tiene un campo de opciones que pregunta "¿Cuál es el tipo de incidente?".

Dependiendo de lo que el usuario seleccione, queremos incluir el tipo de incidente en el Título de los campos que
siguen.

La función Text Builder, que se encuentra en las propiedades de Título de Texto y Texto de Indicación de campo,
resulta útil en estas situaciones.

Supongamos que tenemos un campo:

"¿Cuál es el tipo de incidente?" - un campo de Opciones con Nombre de Datos “incidentType”, con las opciones de
respuesta: Derrame, Lesión, Equipo

Agregamos un nuevo campo de Texto al formulario, con Nombre de Datos “incidentDescription”.

1. En este nuevo campo, buscamos la propiedad de Título de Texto.


Si coloca el mouse sobre la propiedad o hace clic en ella, verá aparecer un ícono de martillo.
2. Haga clic en el ícono de martillo.
3. Ahora se encuentra en el Constructor de Texto.
Esto le permite crear un valor de texto dinámico para mostrar en la propiedad de Título de Texto. Tenga
en cuenta que tiene un menú desplegable con todos los campos disponibles que insertarán el campo
seleccionado en su fórmula.
4. Ingrese lo siguiente:
Por favor, describa el {{incidentType}}
5. Haga clic en el botón Aplicar para configurar esto en su campo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 29
¡Excelente! Ahora tenemos un Título dinámico que mostrará dinámicamente el tipo de incidente seleccionado.

Por ejemplo, si el usuario selecciona "Lesión" en el campo incidentType, el Título del campo de descripción será
"Por favor, describa la Lesión".

Eso es todo lo que necesita saber para crear Títulos e Indicaciones dinámicos.

SELECCIÓN EN CASCADA (TAMBIÉN CONOCIDA COMO PADRE-HIJO)

A menudo, la respuesta a un campo de Opciones debe llenar o filtrar las opciones disponibles en un campo
posterior.

Llamamos a esto "elección en cascada", donde una elección principal impulsa uno o más campos secundarios.

Puede agregar fácilmente este comportamiento en cascada utilizando el Diseñador de Formularios. Nuestra
plataforma es lo suficientemente inteligente como para manejar varios niveles de elecciones en cascada, es decir,
donde un campo filtra otro, que a su vez filtra otro, etc.

Tenga en cuenta que debe estar utilizando una Fuente de Datos para su(s) campo(s) secundario(s) para agregar
funcionalidad en cascada a su Formulario.

Recomendamos utilizar Fuentes de Datos en todos sus campos de Elecciones; es un enfoque más simple y significa
que las listas comunes de opciones, como "Sí/No", se pueden compartir y reutilizar en campos y Formularios.

Supongamos que deseamos el siguiente comportamiento en cascada:

Campo de País

-> Campo de Estado

Entonces, cuando el usuario elija un país, el Campo de Estado sólo debería mostrar estados para ese país
seleccionado.

Ahora supongamos que las Fuentes de Datos de Estado y Ciudad son las siguientes:

Código de País Nombre del País


AU Australia
US Estados Unidos

Estado Nombre del Estado Código de País


NSW New South Wales AU
QLD Queensland AU
WA West Australia AU
AL Alabama US
AK Alaska US

Para seguir este ejemplo, vaya a la sección Fuentes de Datos del portal web y cree dos nuevas Fuentes de Datos:
País y Estados.

Los pasos para implementar el comportamiento en cascada utilizando los datos y la configuración de ejemplo
anteriores son los siguientes:

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 30
1. En el Diseñador de Formularios, agregue un campo de Opciones y nómbrelas País.
2. Seleccione el campo País; esto mostrará las propiedades del campo en el lado derecho.
3. Encuentre la propiedad titulada "Elecciones de Respuesta" y seleccione "Fuente de Datos".
Esto mostrará una serie de opciones para Fuentes de Datos.
4. En la lista desplegable de Fuentes de Datos disponibles, encuentre la Fuente de Datos de Países y
selecciónela.

¡Excelente! En esta etapa, su campo País mostrará una lista de países según lo definido en la Fuente de Datos de
Países.

Ahora conectemos el campo Estado junto con su filtro en cascada.

5. Agregue otro campo de Opciones y nómbrelo Estado.


6. Repita los pasos 2 - 4 en su campo Estado, pero esta vez seleccione la Fuente de Datos de Estados.
Mientras aún está en las propiedades del campo Estado, debería ver una opción "Filtrar Filas", con un
enlace "usar criterios" junto a ella.
7. Haga clic en este enlace para agregar un nuevo filtro.
Ahora verá tres campos que le permiten definir cómo debe funcionar el filtro.
8. Lo que queremos hacer es filtrar las filas en la Fuente de Datos de Estados de acuerdo con el Código de
País seleccionado en el campo País.

• El primer menú desplegable de filtro muestra las columnas disponibles en la Fuente de Datos de
Estados.
• Elija la opción "Código de País".
• El segundo menú desplegable de filtro muestra las operaciones lógicas que podemos usar para filtrar.
• Elija la opción "es igual a".
• El tercer campo es un campo de texto donde puede ingresar el nombre de otro campo o simplemente
un valor estático.
• Queremos filtrar según la respuesta del campo País, así que ingrese {{País}} en el cuadro de texto.

Su trabajo manual debería verse como la captura de pantalla a continuación:

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 31
¡Listo!

Ahora, si guarda el Formulario y lo configura en modo de prueba, puede probarlo en su dispositivo.

Debería ver que una vez que elija un país, el campo Estado se filtra automáticamente para mostrar solo las filas de
Estados que tienen el Código de País igual al país seleccionado.

CAMPOS CONDICIONALMENTE OBLIGATORIOS (CONDICIÓN REQUERIDA)

La opción estándar de Campos Obligatorios y Sólo Lectura en el diseñador de Formularios te permite definir
campos que siempre son obligatorios o solo de lectura, respectivamente.

Sin embargo, a veces necesitas hacer un campo obligatorio o de solo lectura basado en la(s) respuesta(s) a un
campo anterior.

Este es el momento en que debes usar las propiedades de Condición Requerida y Condición de Solo Lectura.

Ambas propiedades funcionan exactamente de la misma manera, así que para simplificar, solo nos referiremos a
Condición Requerida en el resto de esta guía.

Todo lo que sigue se aplica de igual manera a la Condición de Solo Lectura.

La Condición Requerida te permite definir una fórmula que controlará si el campo es obligatorio o no.

Funciona de una manera muy similar a la propiedad de Visibilidad, solo que para la obligatoriedad.

Supongamos que tu diseño de Formulario actualmente tiene un campo "¿Tienes algún riesgo?" con un Nombre de
Datos de "seeHazards".

También supongamos que el campo seeHazards tiene los valores "Sí" y "No" como respuestas opcionales
disponibles.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 32
1. Añade un nuevo campo de Texto a tu diseño de Formulario debajo del campo seeHazards.
2. Dale al nuevo campo un Nombre de Datos como "hazardsDescription".
3. Encuentra la propiedad Obligatorio en el nuevo campo, luego haz clic en el enlace "añadir condición" a la
derecha.
Esto ocultará la casilla de verificación Obligatorio estándar y mostrará el campo de fórmula de Condición
Requerida.
4. Ahora necesitamos crear una fórmula que dé un resultado Verdadero o Falso.
Cuando el resultado de la fórmula sea Verdadero, el campo se volverá obligatorio.
Cuando el resultado sea Falso, el campo no será obligatorio.
5. Introduce la siguiente fórmula en la propiedad de Condición Requerida:
{{seeHazards}} = 'Sí'

Lo que significa lo anterior es que cuando el campo seeHazards se responda con un valor de Sí, entonces el campo
hazardsDescription será obligatorio.

El usuario no podrá continuar hasta que haya rellenado algo en hazardsDescription.

Para entender más sobre cómo crear una fórmula, consulta la página de ayuda Creando una Fórmula.

Guarda tu Formulario y pruébalo en tu dispositivo para ver la funcionalidad condicionalmente obligatoria en


acción.

PERMITIENDO A LOS USUARIOS SALTAR PÁGINAS (NAVEGACIÓN DE FORMULARIO


PERSONALIZADA)

Por defecto, cada Formulario que creas tiene 4 botones de navegación personalizables en la barra de navegación
superior.

Los botones Izquierda1 e Izquierda2 están (por defecto) asignados como SALIR y Sincronización Rápida,
respectivamente. Puedes, por supuesto, editar estos botones como consideres apropiado.

Los botones Derecha1 y Derecha2 están tradicionalmente asociados con la navegación de páginas en la aplicación,
con Derecha1 usado para navegar hacia atrás una página y Derecha2 para navegar hacia adelante una página;
también se tiene la opción de asignar cualquier acción de usuario a estos botones.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 33
Para algunos Formularios, sin embargo, esta navegación secuencial no es ideal ya que el usuario necesita poder
saltar entre las páginas del Formulario mientras lo rellena.

Por ejemplo, si un usuario estaba realizando una inspección de casa, podrían rellenar una página de "dormitorio",
luego una de "baño", y luego necesitar rellenar otro dormitorio.

Esto se vuelve tedioso si el usuario tiene que seguir moviéndose hacia atrás o hacia adelante para encontrar las
páginas que necesita completar.

La solución es agregar tus propios botones de navegación.

Puedes añadir los botones utilizando el tipo de campo Acción del Usuario disponible en el Diseñador de
Formularios, que te permite añadir botones a cualquier página del Formulario.

Pasemos por un ejemplo sencillo.

Suponemos que ya tienes un Formulario existente que tiene algunas páginas en él. Si no lo tienes, crea uno y
añade algunas páginas y campos.

Asegúrate de tener tu Formulario abierto en el Diseñador de Formularios antes de continuar:

Generalmente, la idea es tener una página de "menú" (generalmente la primera página de tu Formulario), que
tendrá un conjunto de botones en ella.

Cada botón llevará al usuario a una página específica en el Formulario.

Adelante, añade ahora una página a tu formulario:

• Pon el nombre de datos de la página como algo parecido a "menú".


• Ahora añade un botón de Acción del Usuario para cada una de las páginas de tu formulario.
• En cada uno de estos botones:
o Pon el título del botón como el nombre de esa página, por ejemplo, "Dormitorio", "Baño", etc.
o Establece la propiedad de interacción en la opción "Saltar a Página" y luego especifica la página
objetivo de tu formulario a la que saltar.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 34
El paso 1 - Añadir botón de Acción
El paso 2 - Establecer interacción en "Saltar a la Ubicación del Formulario"
El paso 3 - Especificar la página a la que el usuario debe saltar cuando haga clic en el respectivo botón de acción

Ahora, en cada una de las páginas de tu Formulario, necesitas añadir botones que lleven al usuario de vuelta a la
página del "menú".

Para añadir estos botones, utiliza el tipo de campo Acción del Usuario, que te permite añadir botones en tu
formulario.

Generalmente es mejor colocar estos botones en la parte inferior de cada página, pero la ubicación depende de ti.

En cada uno de estos botones de Acción del Usuario:

• Pon el título como algo similar a "Volver al Menú"


• Establece la propiedad de interacción en la opción "Saltar a Página" y luego especifica tu página de "Menú" del
Paso 1 anterior.
Esto significa que el usuario podrá saltar de nuevo a la página del Menú desde cada una de tus páginas.

Dependiendo de tu diseño, también podrías querer añadir un botón de "Finalizar" en cada página, que llevará al
usuario al final del Formulario.

Para hacer esto, simplemente selecciona la opción "Fin del Formulario" en la lista de páginas a las que saltar
cuando configures la propiedad de interacción en el botón.

También puedes usar la opción de interacción "Subir Formulario" si quieres omitir completamente la pantalla final
del Formulario.

Recuerda, toda la navegación del Formulario depende de ti, así que asegúrate de que haya una forma para que tus
usuarios realmente puedan navegar y enviar sus entradas de Formulario de la manera más conveniente posible.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 35
GENERANDO UN NÚMERO/CÓDIGO ÚNICO

A menudo necesitarás generar un número o código único como parte de la salida de datos de una pantalla de
Formulario en particular.

Esto es común en casos como números de pedido, códigos de factura, identificadores de documentos y muchos
otros escenarios.

Puedes lograr esto utilizando una fórmula para crear un valor de texto que asignarás a la propiedad Valor Dinámico
del campo de Formulario designado.

Esencialmente, concatenarás varios fragmentos de datos para crear un código significativo, pero razonablemente
único.

Nota que decimos "razonablemente único".

Esto se debe a que, en última instancia, la fórmula generará un código único para el contexto del dispositivo local.

Es importante utilizar elementos de datos como la fecha/hora o los detalles del usuario para asegurar que el
código resultante no pueda duplicarse en otros usuarios o dispositivos.

A menudo se nos pregunta si es posible tener un número secuencial central que todos los dispositivos conozcan.

De esta manera, los códigos en todas las entradas del formulario podrían ser secuenciales y numerados en orden
de entrada/captura.

Apoyamos este escenario principalmente en el lado de la Plantilla de Datos al hacer disponible un marcador de
posición especial incorporado llamado {{%ENTRYID}}.

Este marcador de posición especial no está actualmente disponible para el uso del formulario; sólo está disponible
en Plantillas de Datos.

Por lo tanto, puedes producir salidas numeradas si utilizas plantillas de datos.

Consulte el artículo "Marcador de posición incorporado" en la sección de Plantillas de Datos de nuestra


documentación.

Aparte de la opción ENTRYID en las plantillas de datos, no apoyamos la numeración central en el lado del
formulario, ya que no hay garantía sobre la conectividad de la red en el momento de capturar el formulario.

¿Qué pasa si el usuario está desconectado en el momento de capturar un formulario?

También ten en cuenta que puede haber un desfase de tiempo entre la captura de entrada del formulario en el
dispositivo y cuando los datos realmente se cargan en el servidor (de nuevo, depende de la conexión de red y otros
factores del dispositivo).

Por lo tanto, recomendamos generar códigos de manera específica para el dispositivo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 36
Te recomendamos que utilices algo como la función counter() concatenada con userexternalid()/useremail() y
quizás con format-date() en today()/now() también.

El ID externo en los usuarios es particularmente útil para almacenar algo como un ID de nómina u otro código que
tenga significado en el sistema de destino final.

Si debes tener un número secuencial central, entonces necesitas manejar esto en tu sistema externo de backend.

Es decir, cuando los datos de entrada del formulario se mueven a tu sistema de backend relevante, en ese punto
asigna a cada entrada un nuevo número secuencial centralizado.

Aquí hay algunos ejemplos de fórmulas para generar códigos únicos específicos del dispositivo:

uuid(10) da algo como: X7E5F3A2L3


random() da algo como: 0.14935942, que luego puedes multiplicar/redondear, etc., para obtener la precisión
deseada.
counter() te da un número secuencialmente creciente que es específico del dispositivo.

Recomendamos encarecidamente concatenar el valor del counter() del dispositivo con la fecha y/o identificadores
de usuario, como estos a continuación:

concat(format-date(now(), 'yyyyMMdd'), '-', counter()) da algo como: 20140313-39


concat(format-date(now(), 'yyyyMMdd'), '-', userexternalid(), '-', counter()) da algo como: 20140313-USER1-39

CÁLCULO DE LA DURACIÓN/TIEMPO TRANSCURRIDO ENTRE EL INICIO Y EL FINAL DEL


FORMULARIO (O ENTRE DOS CAMPOS)

Para algunos escenarios de tipo cuestionario/encuesta, es posible que desees realizar un seguimiento del tiempo
que tarda el usuario en completar un Formulario o quizás una sección en el Formulario.

Esto se hace almacenando un valor de fecha/hora de inicio y fin correspondiente, y estos valores se establecen
cuando el usuario responde a las primeras y últimas preguntas en el Formulario o sección objetivo.

Una vez que tienes los valores de fecha/hora de inicio y fin, puedes utilizar una función de fórmula DATEDIFF()
para calcular el tiempo transcurrido en tu unidad de medida deseada.

Vamos a usar campos Ocultos para este ejemplo, ya que no queremos que el usuario vea estos valores
almacenados.

También puedes usar campos de Texto o Fecha/Hora si quisieras mostrar al usuario los valores de fecha/hora de
inicio y fin.

También asumimos que tienes al menos dos campos de preguntas: uno al inicio con el nombre de datos
"myfirstquestion" y uno al final llamado "mylastquestion".

1. Añade un campo Oculto con el nombre de datos "starttime" al inicio de tu diseño de Formulario, y un
campo Oculto similar "endtime" al final del Formulario.
2. En estos campos Ocultos, establece el Valor Dinámico de la siguiente manera:
Campo starttime: FORMAT-DATE(NOW({{myfirstquestion}}), 'yyyy-MM-dd HH:mm:ss')
Campo endtime: FORMAT-DATE(NOW({{mylastquestion}}), 'yyyy-MM-dd HH:mm:ss')

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 37
Explicamos lo que hace la fórmula anterior:

• La función NOW() devolverá la fecha/hora actual en el momento en que se active la función.


• El parámetro {{dataname}} significa que la función NOW se activará cada vez que se establezca una
respuesta en el campo nombrado.
• La función FORMAT-DATE() es necesaria porque los campos Ocultos almacenan texto, no valores de
fecha.
• Si no hicieras esto, probablemente perderías la porción de tiempo del valor NOW.
• El parámetro de formato asegura que la fecha/hora se capture como texto, como: "2016-10-21
14:10:55".

También vale la pena mencionar que la mayoría de las cadenas de formato .NET pueden funcionar con
nuestra función de fórmula FORMAT-DATE() para una mayor personalización de las fechas y horas
capturadas.

3. La pieza final de esta solución es agregar un campo más (Oculto, Texto o Número) que tenga una fórmula
de Valor Dinámico para calcular la diferencia entre los valores de fecha/hora de inicio y fin.
4. La fórmula de este campo sería:

DATEDIFF(({{starthidden}}), {{finishhidden}}, 'SS')

Esto te dará la diferencia en segundos entre los tiempos de inicio y fin.

Por supuesto, luego puedes dividir este valor entre 60 según lo desees para obtener un valor en minutos.

Si deseas obtener la diferencia en minutos, horas, etc., simplemente cambia el parámetro 'SS' según sea necesario.

VALIDACIÓN DE RESPUESTAS (VALIDACIÓN PERSONALIZADA)

Cuando se trata de validar las respuestas de los usuarios, tienes las siguientes opciones estándar:

• Requerido: obliga al usuario a proporcionar algo como respuesta.


• Rango de fecha/número: te permite establecer fácilmente límites inferiores y superiores para las respuestas
de fecha y número.
• Formato de respuesta: encontrado solo en tipos de campo de texto, esto impone requisitos básicos de
formato en el valor de la respuesta.

Sin embargo, imagina que tu Formulario implica capturar un código de trabajo en un campo de texto.

El usuario siempre debería ingresar un código de trabajo conocido, pero la verdad es que pueden poner cualquier
valor textual.

Sabemos que un código de trabajo válido se parece a "JOB-XXXX", donde las XXXX son un valor numérico.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 38
¿No sería genial si pudiéramos validar su entrada para asegurarnos de que el valor al menos contenga el texto
"JOB-"?

Aquí es cuando debes usar la propiedad de Validación personalizada.

La Validación personalizada es una propiedad de propósito general que te permite definir una fórmula de
formulario para verificar si un valor de respuesta es válido.

Un resultado verdadero significa que el campo es válido y el usuario puede continuar.

Falso significa que el campo no es válido y el usuario necesita proporcionar una respuesta válida.

La Validación personalizada te da la libertad de definir prácticamente cualquier lógica para validar un valor de
respuesta.

NOTA IMPORTANTE: La validación personalizada solo funciona cuando hay un valor ingresado en el campo. Para
obligar al usuario a ingresar un valor, usa la propiedad Requerido junto con la Validación personalizada.

Pasemos por los pasos necesarios para proporcionar una validación personalizada para el escenario del Código de
Trabajo descrito anteriormente.

Abre un Formulario nuevo o existente en el Diseñador de Formularios y realiza los siguientes pasos:

1. Agrega un campo de texto a tu Formulario, con el título de "Código de Trabajo" y el nombre de datos
"jobCode".
2. Encuentra la propiedad de Validación personalizada en este campo de Código de Trabajo.
Se encuentra en la parte inferior de la lista de propiedades, en la sección Avanzada.
3. Ahora necesitamos crear una fórmula que dará un resultado Verdadero o Falso.
Cuando el resultado de la fórmula es Verdadero, el campo se considerará válido.
Cuando el resultado es Falso, el campo será inválido.
Ingresa la siguiente fórmula en la propiedad de Validación personalizada:
string-length({{jobCode}}) = 8 and substr({{jobCode}}, 0, 4) = 'JOB-'
Desglosamos la formula:
• string-length({{jobCode}}) = 8
Primero queremos asegurarnos de que la respuesta tenga exactamente 8 caracteres de longitud.
Recuerda que esperamos que los códigos de trabajo se ingresen en el formato fijo "JOB-XXXX",
que tiene un total de 8 caracteres de longitud.
• substr({{jobCode}}, 0, 4) = 'JOB-'
Luego queremos asegurarnos de que el código de trabajo proporcionado comience con el prefijo
"JOB-".
Por lo tanto, usamos substr() para tomar los primeros 4 caracteres de la respuesta y verificar si
realmente coinciden con el prefijo requerido.
Usamos el operador lógico 'and' para asegurarnos de que ambas condiciones anteriores deben
cumplirse para devolver un resultado VERDADERO.
Para obtener más información sobre cómo crear una fórmula, consulte la seccion Creando una
fórmula.
4. Encuentra la propiedad de Mensaje no válido en el nuevo campo.
Se encuentra cerca de la parte superior de la sección Avanzada.

Por defecto, la aplicación mostrará un mensaje genérico "El Código de Trabajo no es válido" al usuario si el
resultado de la propiedad de Validación personalizada es falso.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 39
Mostremos un mensaje más personalizado.

Por lo tanto, establece la propiedad de Mensaje no válido en algo como "Debes proporcionar un Código de Trabajo
válido en el formato JOB-XXXX".

De esta manera, el usuario comprende cómo debe completar el campo de Código de Trabajo.

¡Todo listo!

Guarda tu Formulario y pruébalo en tu dispositivo para ver tu Validación personalizada en acción :)

GUARDANDO VALORES DE ENTRADA PARA REUTILIZACIÓN / VALORES PREDETERMINADOS


(VALORES GLOBALES)

A veces es posible que desees almacenar valores en el dispositivo para reutilizarlos en la misma pantalla o en
múltiples pantallas.

Por ejemplo, supongamos que tienes un campo común en varias pantallas de formulario que el usuario debe
seleccionar cada vez, como un proyecto, cliente o número de trabajo.

Si el usuario tiende a seleccionar el mismo valor cada vez, entonces deberías considerar almacenarlo en un Valor
Global.

Los Valores Globales te permiten especificar que un campo de formulario debería obtener su valor
predeterminado a partir de un nuevo almacén de pares clave/valor que existe en el dispositivo.

La funcionalidad funciona como dice el nombre: es un almacenamiento accesible globalmente en todas las
pantallas en un dispositivo específico.

Por ahora, solo las pantallas de formulario pueden aprovechar esto, pero pronto introduciremos Valores Globales
para otros tipos de pantalla.

Consideremos un ejemplo:

Supongamos que tienes una pantalla que tiene un campo de Proyecto y un campo de Sitio.

El Proyecto debe ser elegido primero de la lista de proyectos disponibles, y esto a su vez filtrará el campo del Sitio
con los sitios disponibles para ese proyecto.

1. En tu campo de Proyecto, establece la propiedad "Vincular a Valor Global" para que sea un nombre de tu
elección, por ejemplo, "defaultProject".
2. En tu campo de Sitio, establece la propiedad "Vincular a Valor Global" para que sea un nombre diferente
de tu elección, por ejemplo, "defaultSite".
3. Guarda y establece el formulario en modo de Prueba o Publicado.

Cuando se sube una entrada para este formulario, la aplicación ahora guardará automáticamente la respuesta para
el Proyecto en la clave de Valores Globales de "defaultProject", y hará lo mismo para "defaultSite".

La aplicación ha creado efectivamente un diccionario/búsqueda local que se ve así:

defaultProject = "Último proyecto que seleccionó el usuario"

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 40
defaultSite = "Último sitio que seleccionó el usuario"

Cuando el usuario abra de nuevo tu formulario, estos Valores Globales se cargarán y se establecerán por defecto
en los respectivos campos de Proyecto y Sitio, recordando efectivamente los últimos valores seleccionados para
esos dos campos.

Del mismo modo, ahora también podrías establecer campos de Proyecto y Sitio en otros formularios para
vincularlos a los Valores Globales de defaultProject y defaultSite.

Ocurrirá el mismo comportamiento que se describió anteriormente cuando el usuario abra estos formularios;
verán que el Proyecto y el Sitio están preestablecidos.

Esto es poderoso para casos en los que quieras tener un contexto de Proyecto y Sitio persistente para el usuario en
múltiples formularios.

USANDO VALORES GLOBALES EN UNA FÓRMULA

Si deseas hacer referencia a un Valor Global en una fórmula, esto también es posible; simplemente usa la función
de fórmula GLOBALVAL('nombreDeLaClave').

Ten en cuenta que todos los Valores Globales se almacenan como texto, por lo que si usas GLOBALVAL() como una
asignación a un campo de Fecha/Hora o Número, entonces necesitarás convertir el valor al tipo de datos correcto
del campo objetivo. Esto se hace utilizando nuestras funciones TODATE() y TONUMBER() respectivamente.

BUSCANDO UNA FILA EN UNA FUENTE DE DATOS A PARTIR DE UN ESCANEO DE CÓDIGO DE


BARRAS

Un escenario común en el mundo de los negocios móviles es la necesidad de escanear un código de barras para
buscar información sobre el artículo al cual está adherido el código.

En esencia, se desea un formulario que capture el código de barras y recupere una fila de una Fuente de Datos.

La forma de hacerlo es utilizar un campo de "Opciones" (Choices) junto con una Fuente de Datos.

ESCANEANDO CÓDIGOS DE BARRAS EN UN CAMPO DE OPCIONES

Primero que todo, la Fuente de Datos debe contener las diversas piezas de información para cada artículo con
código de barras que esperas escanear.

Por ejemplo, llamémoslo la fuente de datos "Equipamiento", donde podría verse algo como:

CÓDIGO DE BARRAS NOMBRE DEL EQUIPO PERSONA DE CONTACTO ÚLTIMO SERVICIO


123456 Silla Premier John Smith 23-09-2015
654321 Mesa Estándar Mike Doe 15-11-2014

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 41
La primera columna en tu Fuente de Datos DEBE contener los valores reales de los códigos de barras, es decir, el
número o texto que será escaneado por la aplicación.

Ahora, en el diseño de tu formulario, añadirías un campo de Opciones con:

• Nombre de los datos, digamos "equipmentChoice"


• Fuente de Datos sería "Equipamiento", que se configuró previamente
• Marca la opción "Permitir búsqueda por código de barras"

Guarda tu diseño y pulsa el botón TEST para poner el formulario en modo de prueba para que puedas probarlo.

Una vez en el modo de prueba, cada vez que guardes cambios en el diseño del formulario, podrás probar estos en
el dispositivo sin tener que publicar cada vez.

A continuación, ejecuta el formulario en tu dispositivo, esperando primero el mensaje "Sincronización completa"


para confirmar que se ha descargado el nuevo diseño.

En el formulario, deberías notar que hay un botón de código de barras en el campo de opciones
"equipmentChoice".

Presiona el botón y escanea un código de barras con la cámara del dispositivo.

Suponiendo que el código coincida con una de las filas en tu fuente de datos de Equipamiento, la aplicación
debería mostrar esa fila como seleccionada.

RELLENANDO OTROS CAMPOS BASADOS EN UN ESCANEO DE CÓDIGO DE BARRAS

En cuanto a llenar otros campos basados en la fila seleccionada en tu campo "equipmentChoice", esto se hace de
nuevo en el diseñador del formulario.

Regresa al diseñador y añade un par de campos más debajo de tu campo "equipmentChoice".

Por ejemplo, un campo de texto para el Nombre del Equipo, otro texto para el Nombre de Contacto y un campo
solo de fecha para la Última Fecha de Servicio.

Ahora, en cada uno de estos campos, desplázate por la lista de propiedades en el lado derecho hasta que veas la
opción "Vincular a columna de fuente de datos".

En cada campo, elige la fuente de datos de Equipamiento y luego selecciona la columna relevante que coincida con
el campo.

Si guardas tu diseño y vuelves a la aplicación, asegúrate primero de forzar una sincronización para recibir el cambio
de diseño.

Puedes hacer esto a través del botón "Buscar actualizaciones" en la pantalla de configuración de la aplicación, o
simplemente poniendo la aplicación en segundo plano y trayéndola de nuevo al primer plano a través de la
multitarea de tu dispositivo.

Una vez que veas el mensaje "Sincronización completa", abre una nueva entrada para tu formulario y repite los
pasos para escanear un código de barras y obtener una fila seleccionada.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 42
Esta vez deberías ver que, una vez seleccionada la fila en el campo "equipmentChoice", los otros campos debajo
también se llenan automáticamente.

ESCANEO REPETIDO DE CÓDIGOS DE BARRAS / CÓDIGOS QR

Dependiendo de tu escenario, es posible que desees crear una lista de códigos de barras que son escaneados por
el usuario a través de un formulario.

Una forma de hacerlo es tener un diseño de formulario muy simple que contenga solo un campo para códigos de
barras, junto con un campo de Fuente de Datos.

El campo de Fuente de Datos se enlazaría con una Fuente de Datos existente, que es donde se recopilan tus
escaneos de códigos de barras.

El usuario capturaría entonces una entrada de formulario separada para cada código de barras, subiendo cada uno
por turno y creando así una nueva fila cada vez en la Fuente de Datos vinculada.

Otra forma más rápida es usar una Página repetitiva para capturar continuamente todos los códigos de barras
hasta que el usuario esté listo para subir todos como parte de una sola entrada de formulario.

Esto requiere que utilices una combinación de características en nuestra plataforma de la siguiente manera:

1. En el diseño de tu formulario, añade una Página configurada para ser repetitiva.


2. Añade un campo de Código de Barras en la Página repetitiva.
3. Haz clic en el campo de Código de Barras que acabas de añadir y, en la lista de propiedades a la derecha,
busca la opción "Acción al Escanear".
4. Elige "Saltar a la Ubicación del Formulario" de la lista de Acciones al Escanear.
5. En el menú desplegable que aparece debajo, elige "Añadir Nueva Repetición/Fila" de la lista.

De esta manera, cada vez que se escanee un código de barras, la aplicación almacenará ese código de barras en el
campo correspondiente y también creará automáticamente y moverá la visualización del formulario a una nueva
repetición de la Página, lista para el próximo escaneo.

Para ahorrar aún más tiempo al usuario, intenta habilitar la opción "Mostrar en línea", que se encuentra en el
campo de Código de Barras en el diseñador del formulario.

Esto mostrará una vista previa en vivo de la cámara que escaneará códigos de barras sin que el usuario necesite
presionar el botón "Capturar Código de Barras" cada vez.

MOSTRANDO IMÁGENES DINÁMICAMENTE DESDE FUENTE DE DATOS, WEB O MAPAS

La propiedad "Imagen Dinámica" te permite cargar imágenes de manera dinámica en los campos de Medios,
Bocetos y Secciones, generalmente a través de una columna de fuente de datos o el resultado de una fórmula.

Esta propiedad acepta URL a imágenes almacenadas en la web, así como referencias a celdas de fuente de datos
que contienen URL de imágenes.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 43
MOSTRAR DINÁMICAMENTE UNA IMAGEN DESDE UNA COLUMNA DE FUENTE DE DATOS

En algunos escenarios, podrías querer vincular un campo de opciones con una Fuente de Datos que contenga URL
de imágenes y luego, basándote en el elemento seleccionado en el campo de opciones, tener un campo de imagen
que se actualice dinámicamente para mostrar la imagen ubicada en el valor de columna seleccionado.

1. Añade un campo de Opciones a tu formulario y asígnale un nombre de datos, por ejemplo, "opciones".
2. Añade un campo de Medios (tipo imagen), Boceto o Sección a tu formulario.

3. En el campo de opciones, ubica la propiedad "Opciones de Respuestas" y selecciona una fuente de datos
que contenga imágenes almacenadas dentro de una columna "Imagen".
4. En el campo de medios, boceto o sección que agregaste previamente, configura la propiedad Vincular a
Columna de Fuente de Datos para que apunte a la columna Imagen.
5. Guarda tu formulario y pruébalo.
6. Notarás que cada vez que seleccionas una opción diferente en tu campo de Opciones, la imagen mostrada
en tu campo de Medios, Boceto o Sección cambiará dinámicamente a la imagen almacenada en la base de
datos para ese artículo en particular.
Nota:
• El dispositivo debe tener una conexión a internet para recuperar la imagen.
• Las imágenes descargadas de esta manera se almacenarán en caché en el dispositivo para cargas posteriores
más rápidas.
• Mientras la aplicación está ocupada descargando la imagen, se mostrará una imagen de marcador de posición
(más sobre eso a continuación) y una vez terminada, mostrará la imagen descargada en el campo.

DESCARGAR Y MOSTRAR DINÁMICAMENTE UNA IMAGEN DESDE UNA FÓRMULA


1. Añade un campo de Opciones a tu formulario y asígnale un nombre de datos, por ejemplo, "opciones".
2. Añade un campo de Medios (tipo imagen), Boceto o Sección a tu formulario.
3. Encuentra la propiedad Imagen Dinámica dentro del panel de propiedades de ese campo y añade una
fórmula que construya una URL.
Por ejemplo, CONCAT('http://miejemplositio.com/', {{micampo}}, '.jpg')
4. Guarda tu formulario y pruébalo.

MOSTRANDO UNA IMAGEN DE MAPA PARA EL RESULTADO DE UN CAMPO DE UBICACIÓN


(O UN CONJUNTO DADO DE COORDENADAS)

Primero, necesitarás generar una URL que devuelva una imagen PNG o JPG. La aplicación visitará esta URL y
cargará dinámicamente la imagen devuelta.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 44
Para este tipo de requerimiento, necesitas utilizar un servicio de API de mapas estáticos.

Estos servicios toman un conjunto de longitud y latitud en una URL, devolviendo una imagen de mapa.

La mayoría de los servicios requieren que te registres para obtener una cuenta; muchos tienen una opción de uso
gratuito.

Echa un vistazo al sitio de abajo, que enlaza con múltiples servicios y ofrece una forma práctica de generar la URL
de mapas estáticos:

https://staticmapmaker.com

Una vez que hayas seleccionado un servicio objetivo, puedes crear una fórmula CONCAT() que insertará los valores
de longitud y latitud del campo de Ubicación en el lugar relevante de la URL de mapas estáticos.

Por ejemplo, algo así (si usaste Google Maps API):

CONCAT(
'https://maps.googleapis.com/maps/api/staticmap?center=',
LAT({{micampoubicacion}},
',',
LON({{micampoubicacion}},
'&zoom=13&scale=1&size=600x300&maptype=roadmap&key=TUCLAVEAPIAQUI&format=png&visual_r
efresh=true'
)

En lo anterior, el campo de ubicación objetivo tiene un nombre de datos de


"micampoubicacion" y tu clave de API de Google Maps reemplazaría el texto
TUCLAVEAPIAQUI. Además, podrías cambiar la configuración del zoom según lo desees.

IMÁGENES DE MARCADOR DE POSICIÓN Y QUÉ SIGNIFICAN

1. "Cargando" imagen de marcador de posición

Esta es una imagen de marcador de posición que se muestra mientras la aplicación está descargando una imagen
de la web o mientras está cargando la imagen desde el dispositivo al campo.

2. Imagen de marcador de posición "No encontrado"

Esta es una imagen de marcador de posición que se muestra cuando la aplicación no pudo descargar una imagen o
cargarla desde el dispositivo a un campo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 45
A continuación se presentan algunas razones potenciales por las que una imagen puede no cargarse:

Conexiones a internet muy lentas que activan el tiempo de espera de descarga de 30 segundos.

URL incorrectas.

Errores con la fórmula "Imagen Dinámica" que la hacen resolver a un valor que no es una URL apuntando a una
imagen en la web o una referencia a una columna de fuente de datos que contenga imágenes.

CAPTURANDO DATOS REPETIBLES

Hay 3 tipos de campos que te permiten capturar datos de forma repetitiva. Los campos de Página, Tabla y Galería.

Puedes usar cualquiera de estos 3 tipos de campos repetibles para permitir a tus usuarios capturar múltiples
entradas de datos.

Identificar cómo quieres capturar múltiples conjuntos de datos en el mismo formato te ayudará a decidir qué tipo
de campo usar:

CAMPO DE PÁGINA

Un tipo de campo básico que permite agrupar varios campos juntos en una sola pantalla con funcionalidad
repetible opcional.

Al seleccionar un campo de Página que se ha añadido a tu Diseñador de Formularios, puedes ver sus Propiedades
Básicas que te permitirán configurar las siguientes propiedades.

• Repetible
• Rango de Repetición
• Evitar la Eliminación de Repeticiones

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 46
1. REPETIBLE

Permitir que esta página repita sus campos.


La aplicación preguntará al usuario si desea seguir añadiendo más repeticiones de esta página.

2. RANGO DE REPETICIÓN

Número mínimo y/o máximo de veces que esta página debe repetirse.
Si se establece un mínimo, la aplicación repetirá automáticamente esta página ese número de veces.
Posteriormente, se pedirá al usuario que añada más.
Una vez alcanzadas las repeticiones máximas, la App pasará a la siguiente página.

3. EVITAR LA ELIMINACIÓN DE REPETICIONES

Por defecto, los usuarios pueden eliminar repeticiones a través de un botón proporcionado en la parte
superior de cada página repetible. Esta opción elimina el botón, evitando la eliminación de repeticiones.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 47
CAMPO DE TABLA

Un tipo de campo avanzado que permite que un conjunto de campos se muestren como filas editables de datos
capturados repetidamente dentro de una página de formulario.

Agrega campos al campo de Tabla en el Diseñador de Formularios que quieres capturar en entradas repetidas, se
mostrarán como filas con los respectivos títulos de los campos como encabezados de columna en la aplicación.

NOTA: El campo de Tabla tiene su propio borde de línea punteada que indica los campos dentro de él.

Al seleccionar un campo de Tabla que ha sido añadido a tu Diseñador de Formularios, podrás ver sus Propiedades
Básicas que te permitirán configurar las siguientes propiedades.

• Botón de Nueva Fila


• Tamaño de Paginación de la Tabla
• Límites de filas

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 48
• Prevenir la Eliminación de Repeticiones

1. BOTÓN PARA NUEVA FILA


Personaliza el botón que permite al usuario añadir nuevas filas a la tabla.
Si se deja en blanco, se muestra un botón estándar con el texto 'Agregar fila' o su equivalente local.
a. Ícono del botón
b. Texto del botón
c. Personalizar texto del botón
d. Personalizar fondo del botón
2. TAMAÑO DE PAGINACIÓN DE LA TABLA
El número máximo de filas para mostrar en esta tabla.
Si la tabla está poblada con más filas que este máximo, la aplicación mostrará botones de paginación para
permitir al usuario ver todas las filas.
3. LÍMITES DE FILA
Número mínimo y/o máximo de filas que esta tabla puede contener.
NOTA: Actualmente el máximo no puede ser más grande que 50 filas.
4. PREVENIR ELIMINACIÓN DE FILAS
Por defecto, los usuarios pueden eliminar filas mediante un botón proporcionado en la parte superior de
cada página de fila.
Esta opción elimina el botón, previniendo la eliminación de filas. Esto es útil en casos como filas pre-
populadas y/o fijas.

En la aplicación, seleccionar el botón "agregar nuevo" para crear una entrada o seleccionar una fila para editar los
campos de una entrada existente es cómo se llena el campo de Tabla con datos repetidos.

NOTA: Aunque puedes tomar fotos en un campo de Tabla, estas no se mostrarán como filas en la tabla en la
aplicación móvil.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 49
En ambos casos anteriores, podrás capturar tantas instancias repetidas de tus campos
objetivo como desees.

ANIDACIÓN DE DATOS REPETIBLES

Así que estás capturando datos repetibles y personalizando la salida. Sin embargo, ciertos escenarios requieren la
captura de un conjunto único de campos repetibles y un subconjunto, es decir, repetición de Padre e Hijo.

Aquí es donde anidar un campo de Tabla (Hijo) dentro de otra Tabla (Padre) puede lograr esto en la aplicación y es
compatible con plantillas de datos personalizadas.

Supongamos que eres un administrador de propiedades que necesita auditar un edificio que contiene múltiples
apartamentos y habitaciones en cada apartamento.

O estás reparando equipos en el sitio con numerosos componentes, cada uno con un subconjunto de piezas que
deben ser registradas.

O, por cualquier razón, necesitas capturar un conjunto de datos repetitivos que también necesita otro conjunto de
repeticiones dentro de él.

Aquí es donde anidar un campo de Tabla dentro de otro campo de Tabla debería ser útil.

Al diseñar tu formulario, añade un campo de Tabla (padre) y complétalo con campos adicionales, luego arrastra y
suelta otro campo de Tabla (hijo) dentro de la tabla padre, y complétalo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 50
LIMITACIONES

Los repeticiones anidadas admiten lo siguiente:

• Máximo de 2 niveles (repetición padre > repetición hijo).


• Configuración de un campo de Tabla (hijo) dentro de otra tabla (padre) ÚNICAMENTE.
• La tabla hija no admite la opción de Poblar desde una Fuente de Datos.

PERSONALIZACIÓN DE LOS TÍTULOS DE LAS ENTRADAS DE FORMULARIOS EN PROGRESO

Ofrecemos una opción para establecer la respuesta de un campo de formulario elegido como el título de la fila en
las pantallas de Historial y Entradas Guardadas de la aplicación.

Para configurar esto, simplemente sigue estos pasos:

1. En el portal web, ve a la página de Configuración del diseño de tu formulario.

2. Selecciona la opción llamada "Mostrar Título de Fila" y simplemente elige el campo del formulario que
deseas usar para el título de las entradas de tu formulario.
Si no tienes un campo que proporcione el texto de título deseado, añade un campo oculto a tu diseño de
formulario que tenga una fórmula de valor dinámico que concatene las respuestas de otros campos para
formar un título significativo.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 51
3. Luego, pulsa el botón Guardar en la parte superior derecha para aplicar tu cambio.

Esto debería resultar en que todos los usuarios vean el campo del formulario nominado como el título en las
pantallas de Entradas Guardadas e Historial de la aplicación.

REFERENCIA DE FÓRMULAS: PREGUNTAS Y RESPUESTAS RÁPIDAS

A continuación se presenta una lista de escenarios comunes que implican el uso de una fórmula para lograrlo. Esto
es puramente una guía de referencia rápida en formato de preguntas y respuestas (P&R).

Para explicaciones más completas, incluyendo ejemplos prácticos, consulte la seccion “Recetas“.

P: ¿Cómo muevo campos entre páginas en el diseñador de formularios?

R:Puede mover campos entre páginas cuando coloca el diseñador en modo "continuo".

Para hacer esto, haga clic en el enlace Modo de vista: "Paged" cerca de la parte superior derecha del diseñador.

Esto cambiará el diseñador para mostrar todas las páginas una debajo de la otra, lo que le permitirá arrastrar
elementos entre ellas.

Otra forma de mover campos es exportar su diseño a Excel, utilizando el botón Exportar en la parte superior
derecha de la página del diseñador.

Abra el archivo de Excel que se descarga y mueva los campos según sea necesario.

Luego, use el botón Importar para traer su diseño de vuelta a la plataforma.

La opción de importación/exportación de Excel merece la pena considerarla, ya que también es una forma mucho
más rápida de construir formularios en general.

Escenario:

Tengo un campo de opciones de elección múltiple con las opciones 'Manzana', 'Plátano', 'Naranja', 'Mango'.

P: ¿Cómo accedo a las opciones seleccionadas del campo de elección múltiple?

R:Utilice la función SELECTED() para obtener un resultado verdadero/falso para cada opción en su campo de
elección múltiple.

Por ejemplo, si desea controlar la visibilidad de otros campos en su formulario según si la opción 'Manzana' está
seleccionada:

SELECTED({{micampodeopciones}}, 'Manzana')

Escenario:

Tengo un conjunto de campos de opciones con nombres de datos q1, q2, q3, q4. Todos tienen opciones de
respuesta fijas, por ejemplo, 'Sí', 'No', 'N/D'.

P: ¿Cómo puedo unir las respuestas de estos campos en un solo texto?

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 52
R: Utilice la función CONCAT() para crear el resultado deseado, de manera similar a como lo haría con la función
CONCATENAR de Microsoft Excel.

Puede mezclar respuestas dinámicas con fragmentos de texto estático según sea necesario.

CONCAT('Respuesta de la pregunta 1: ', {{q1}}, '; Respuesta de la pregunta 2: ', {{q2}}, '; Respuesta de la pregunta
3: ', {{q3}})

P: ¿Cómo puedo contar cuántas preguntas se respondieron con 'Sí'?

R: Utilice la función IF() para verificar si la respuesta de cada pregunta es 'Sí' y asignar 1 o 0 en función de un
resultado verdadero/falso igual a 'Sí'.

IF({{q1}} = 'Sí', 1, 0) + IF({{q2}} = 'Sí', 1, 0) + IF({{q3}} = 'Sí', 1, 0) + IF({{q4}} = 'Sí', 1, 0)

P: ¿Cómo puedo asignar una puntuación a cada opción de respuesta y sumar la puntuación de todas las
preguntas? Por ejemplo, 'Sí' = 3, 'No' = 1, 'N/R' = 0

R1:Haga que las opciones de respuesta tengan un valor igual a la puntuación en cuestión en lugar de 'Sí', 'No',
'N/D'.Todavía puede tener el texto de visualización de cada opción como 'Sí', 'No', 'N/R' para que el usuario de la
aplicación sepa qué elegir.

Por ejemplo, su opción 'Sí' tendría un valor de respuesta de 3 y un texto de visualización de 'Sí'.

Este es el enfoque más simple, ya que todo lo que necesita hacer para una fórmula de sumatoria es:

{{q1}} + {{q2}} + {{q3}} + {{q4}}

R2:Utilice la función IF() de manera anidada para verificar el valor de cada respuesta y asignar la puntuación
relevante en función de un resultado verdadero/falso.

IF({{q1}} = 'Sí', 3, IF({{q1}} = 'No', 1, 0)) +

IF({{q2}} = 'Sí', 3, IF({{q2}} = 'No', 1, 0)) +

IF({{q3}} = 'Sí', 3, IF({{q3}} = 'No', 1, 0)) +

IF({{q4}} = 'Sí', 3, IF({{q4}} = 'No', 1, 0))

R3: Agregue un campo oculto para cada pregunta, con el campo oculto que contenga solo la fórmula IF() para su
pregunta asociada.

Por ejemplo, un campo oculto llamado {{q1Score}} tendría una fórmula de Valor Dinámico de IF({{q1}} = 'Sí', 3,
si({{q1}} = 'No', 1, 0))

P: Estoy asignando la función NOW() / UTCNOW() a un campo, ¡pero la parte de la hora se está perdiendo!

R:Si está asignando NOW() a un campo de texto, o indirectamente asignando a un valor de texto (por ejemplo, en
su campo oculto), siempre obtendrá solo un valor de fecha, ya que la aplicación convierte automáticamente los
datos de fecha/hora en datos de texto.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 53
Para obtener explícitamente la parte de la hora del valor NOW(), debe envolver el uso del valor NOW() en una
función FORMAT-DATE(), especificando la parte de la hora como parte de la salida de texto deseada.

Por ejemplo:

FORMAT-DATE(NOW(), 'yyyy/dd/MM HH:mm:ss')

P: ¿Cómo puedo configurar una fecha/hora para que se almacene en el momento exacto en que se presiona un
botón?

R: El tipo de campo Botón le permite establecer un valor de respuesta cuando se presiona el botón; consulte el
resultado "Resultado de interacción".

El valor del resultado debe ser un valor de texto estático, actualmente no admitimos fórmulas en esa opción.

Por ejemplo, puede configurar el Resultado de interacción como "Presionado".

La razón por la que mencionamos esto es que luego puede vincular un campo adicional, como un campo oculto,
para que se actualice cuando el campo Botón tenga su valor configurado.

Puede hacer esto especificando una fórmula de Valor Dinámico para su campo oculto, donde la función NOW() se
llamaría según si el campo Botón tiene un valor o no.

Por ejemplo:

IF({{micampodeboton}} = 'Presionado', FORMAT-DATE(NOW(), 'yyyy/dd/MM HH:mm:ss'), '')

Tenga en cuenta que en la fórmula de ejemplo anterior, debe utilizar la función FORMAT-DATE() para especificar la
salida de fecha/hora que desea.

Consulte las pistas de ayuda de la función FORMAT-DATE en el Constructor de fórmulas para comprender más
acerca de las opciones de formato.

P: ¿Cómo puedo crear un contador/contador en mi formulario que incremente/decremente un número cada vez
que el usuario presiona un botón?

R: Una combinación de características del tipo de campo Acción le permite crear funcionalidad de contador.

Utilice la opción "Disparar siempre al presionar el botón" que se encuentra en los campos de Acción en el
diseñador de formularios.

De forma predeterminada, los botones solo disparan cualquier fórmula dependiente una vez; con la opción
mencionada, las fórmulas dependientes se activarán cada vez que se presione el botón.

Los campos de Acción también establecen su respuesta como el título del botón presionado de forma
predeterminada.

Esto es útil en casos donde tiene varios botones en un campo y necesita ejecutar fórmulas según el botón
presionado.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 54
Supongamos que tiene un campo de acción con nombre de datos "campodeaccion", con dos botones definidos:
uno con el título "Aumentar" y el otro con el título "Disminuir".

También suponemos que tiene un campo de número con nombre de datos "camponumerico".

En su campo de número, configure la propiedad de Valor Dinámico como:

IF(NOTBLANK({{campodeaccion}}),IF({{campodeaccion}}='Aumentar',AL('camponumerico')+1,
VAL('camponumerico')-1 ), 0 )

En la fórmula anterior, ocurren varias cosas:

Primero, verificamos si el campo de Acción tiene un valor configurado mediante NOTBLANK().

Si no hay ningún valor, el “campodeaccion” se establecerá en 0 ya que aún no se han presionado botones.

Si el campo de botón tiene un valor, esto significa que el usuario ha presionado uno de nuestros botones.

Entonces, la siguiente parte de la fórmula verifica cuál botón se presionó.

Si se presionó el botón con el título "Aumentar", obtenemos el valor actual del “camponumerico” mediante VAL() y
le sumamos 1.

De lo contrario, suponemos que se presionó el botón "Disminuir" y obtenemos el valor actual de


“camponumerico” y le restamos 1.

DERECHOS RESERVADOS ©2023 POR MINDSGROUP S.A. QUEDA PROHIBIDA LA REPRODUCCIÓN TOTAL O PARCIAL DE ESTE DOCUMENTO SIN AUTORIZACIÓN PREVIA POR ESCRITO DEL
TITULAR DE LOS DERECHOS. 55

También podría gustarte