Parte IV: Configurando todo lo anterior

Hola! Cómo están?

Hoy nos toca avanzar con la aplicación de carga. Ya que en capítulos anteriores entendimos qué es un control y sus propiedades, voy a dejar de explicar algunas cosas en este capítulo y en los que sigan (al menos hasta que lleguemos a Power Automate). Esto es para hacer capítulos más cortos y que vayan directamente al paso a paso.

Empecemos!!


Cuadros Combinados (Combo Boxes):

En el capítulo pasado dejamos a la aplicación más o menos así:


Por el momento es un buen pisapapeles, porque, si bien se ve bastante bonita, esos controles no sirven para nada.

Vamos a arrancar con los Combo boxes, o sea, los Cuadros combinados que agregamos para incorporar Tipo de Documento, Estado y Documentos Regulatorios.

Primero vamos a ir al panel izquierdo, al botón Datos, de ahí vamos a Agregar datos, buscamos sharepoint y seleccionamos SharePoint:

Seleccionamos la conexión del usuario con el que estamos haciendo la aplicación, y esperamos que del lado izquierdo aparezca el sitio de SharePoint que nos sirve de almacenamiento para la aplicación. Una vez seleccionado el Sitio, elegimos la Biblioteca Edición, que es la que usaremos en toda esta app porque, recordemos que en esta Biblioteca llegan los documentos para ser editados, es decir, los subimos desde la aplciación de Carga que estamos haciendo ahora. Además, las columnas de Tipo de Documento, Estado y Documentos Regulatorios las hicimos de tipo Opción, así que las linkearemos a los comboboxes.

Ahora seleccionamos uno de los Comboboxes, empecemos por Tipo de Documento. Vamos a la propiedad Items. Pero en vez de escribir desde el panel derecho, como les mostré en partes anteriores, lo vamos a hacer desde la barra de fórmulas, porque es más cómodo:


Vamos a escribir

Choices(Edición.'Tipo de documento')

La función Choices toma de algún lugar que elijamos, una serie de datos que funciona a modo de selección. En este caso lo que hicimos fue especificar que esas Elecciones las queremos obtener de la Biblioteca Edición, específicamente de la columna Tipo de documento, que ya sabemos que es una columna de tipo Elección:

  

(La foto de la izquierda es el panel de configuración de la columna en SharePoint. La foto de la derecha es el resultado del ComboBox, una vez escrita la fórmula explicada.)

 

Otra propiedad que vamos a cambiar en este ComboBox será la que se llama SelectMultiple. Por defecto está en true, pero vamos a dejarla en false, porque el usuario final debe poder seleccionar solamente una opción, y no varias. 

Vamos a hacer lo mismo con el ComboBox de Estado y el de Documentos Regulatorios:

 

 

La única diferencia con este último será que en la propiedad SelectMultiple, vamos a dejar true, ya que habíamos comentado que el usuario debe poder seleccionar al menos hasta dos Documentos Regulatorios.

No quiero dejar los combos sin otra propiedad: IsSearchable. Si queremos habilitarla, es decir, dejarla en true, nos da la posibilidad de buscar escribiendo la opción:

 

Podemos aplicar a gusto esta propiedad en el ComboBox que querramos, siempre y cuando justifique su uso (no la activaría para las cuatro opciones del ejemplo, sin embargo, si tuviera muchas más de diez opciones, lo haría).


Entradas de texto:

En la aplicación que estamos generando, tenemos tres de estos controles. Arrancamos por el que usaremos para escribir el Nombre del Documento. Este es el más sencillo. Una de las propiedades que podríamos poner en true es la de Clear. Esta propiedad ayuda a eliminar cualquier texto que estemos escribiendo, con la ayuda de una X que se agrega al momento de comenzar a escribir:

También podemos configurar MaxLenght con algún valor numérico que sea lógico para el nombre de un documento, por ejemplo, puedo limitar que los nombres de Documento tengan hasta 150 caracteres escribiendo ese número en la propiedad.


Pasando al control de texto perteneciente al Número de Tipo de Documento, sabemos que en SharePoint configuramos esa columna para que se pueda usar con un valor de texto y no numérico. La razón que expliqué en este punto es que precisamos un número que siempre tenga 5 dígitos. Y en el caso cuyo número sea, por ejemplo 15, el número real sea 00015. Si la columna fuera de tipo número, no se podríamos poner los ceros a la izquierda. Ahora, lo que tenemos que hacer, es limitar la entrada de texto a número a través de la propiedad Format. Por defecto está como TextFormat.Text, pero en este caso la configuraremos como TextFormat.Number. De esta forma no podremos escribir letras, sino solo números. También vamos a ir a la propiedad MaxLenght y la vamos a configurar con el número 5, con el fin de que, por algún error, el usuario escriba más de 5 dígitos. (nota: más adelante veremos alguna forma de cómo hacer para que el usuario se vea obligado a escribir los cinco dígitos, ya que, por error, podría escribir menos dígitos.)

 

Nos queda el control para la Revisión. Es parecido al anterior. Es decir, Format como TextFormat.Number y un MaxLenght de 3 (porque el proveedor nos dijo que no habrán más de 999 revisiones).


Fechas:

Tenemos tres Fechas, la fecha de Emisión, la de Vigencia y la de Validez. Los controles de las mismas pueden dejarse por defecto. Si revisan ustedes las diferentes propiedades, no hay mucho para mostrar y/o modificar.

Lo que sí vamos a tener en cuenta es que el usuario de la aplicación nos pidió que la Fecha de Validez debe calcularse automáticamente a tres años posteriores a la fecha seleccionada en la Fecha de Vigencia. Por lo tanto, vamos a hacer una pequeña fórmula en la propiedad DefaultDate en el control de fecha de Validez:

DateAdd(dte_FechaVigencia.SelectedDate;3;Years)

La propiedad DefaultDate, por defecto, muestra today(), es decir, la fecha de hoy. Lo que estamos haciendo mediante DateAdd es agregar una cantidad de tiempo, para esta fórmula, vamos a tomar el control dte_FechaVigencia, vamos a seleccionar la propiedad SelectedDate y vamos a agregar el número 3, explicando, por último, que ese tres implica Años.


Nótese (lo voy a repetir seguido) que la separación en las partes de la fórmula se hace con el punto y coma. Esto ocurre en la versión sudamericana de Power Apps. Si ven en internet tutoriales de personas de Europa y/o USA, van a notar que la separación es mediante coma.


Control de Attach:

El último control que vamos a revisar hoy es el que usaremos para adjuntar archivos.

La propiedades que queremos modificar:

MaxAttachments: 1 (porque queremos adjuntar solamente un archivo cada vez que presionemos el botón de carga)

MaxAttachmentSize: 100 (es un valor en Mb, por defecto está en 10, pero van a notar que ese número va a quedar corto para varios archivos que quieran cargar).

MaxAttachmentsText: "Un archivo seleccionado." (esto es a gusto también, el fin de esto es que, cuando seleccione ese archivo solo, algo me indique que elegí un archivo. Si dijera que se alcanzó el máximo, que es el texto por defecto, el usuario podría tomarlo con un error). Ah, recuerden que los textos van siempre entre comillas dobles!!


TabIndex

Dejé esta propiedad para lo último porque está en todos los controles que mencionamos arriba. TabIndex es un número que agregaremos en cada control, de forma ordenada, para que la aplicación entienda a qué control tiene que ir cuando apretamos la tecla Tab en el teclado. Es decir que, si nuestra aplicación arranca con el control para escribir el Nombre del Documento, tenemos que agarrar ese control y poner el número 1 en la propiedad TabIndex, y desde ahí contaremos 2, 3, 4, etc, y asignaremos cada uno de esos números a los demás controles. Se supone que el botón para cargar debería tener el número más alto.

Algo más que vamos a hacer, para completar con esta propiedad, es indicar en la aplicación que el primer foco de la app, es decir, el primer objeto seleccionado para arrancar a usar, sea el del control de texto de nombre del documento. Eso lo haremos yendo a las propiedades del lienzo (en nuestro caso, se llama screen_main) donde estamos trabajando, y en la propiedad OnVisible escribimos:

SetFocus(txt_NombreDelDocumento)

Esa función establece el foco en el control que querramos, entre paréntesis puse el nombre de ese control.



Hoy no veremos cómo configurar el botón de carga. Vamos a necesitar un capítulo entero, ya que, en conjunto con ese botón, empezaremos a ver Power Automate.

De todas formas, el capítulo siguiente estará relacionado al control de la información, es decir, alertas, mensajes y otras cosas para que la aplicación le indique al usuario si le faltó cargar un dato, o si lo cargó de manera errónea.

 

Saludos!!!!!














 


Comentarios

Entradas más populares de este blog

Parte III (bis): Dónde está el control para adjuntar archivos?

Parte III: Poniendo cositas en el lienzo (algunos controles y sus propiedades)