6 febrero, 2025

SEPARAR TEXTO Y MOSTRAR DATOS EN COLUMNA O EN UNA GALERÍA

Hola a todos,

No hace mucho tiempo tuve que trabajar con una serie de datos cuya estructura no se adaptaba bien al proyecto en Power Apps en el que estaba trabajando.

La entrada de datos que estaba recibiendo era la siguiente:

Manzana; Naranja; Pera; Plátano; Uva; Fresa; Kiwi; Mango; Piña; Sandía; Melón; Papaya; Durazno; Cereza; Frambuesa; Mora; Limón; Lima; Pomelo; Aguacate; Coco; Lichi; Mandarina; Albaricoque; Grosella; Higo; Guayaba; Granada; Ciruela; Zarzamora; Arándano; Chirimoya; Maracuyá; Tamarindo; Caqui; Guanábana; Carambola; Noni; Rambután; Longan; Mangostán; Níspero; Nuez moscada; Jackfruit; Durian; Atemoya; Pitahaya; Kumquat; Membrillo; Zapote

En este ejemplo voy a usar una lista de nombres de frutas. La estructura era, fruta + punto y coma + espacio y lo tenía que mostrar toda esa lista en una única columna. La forma de resolverlo fue muy sencilla, dado que únicamente requería mostrar los datos:

Fue así como lo logré:

Como podéis ver, tan solo he tenido que usar la función sustituir y aplicarla cuando los caracteres o la cadena era un punto y coma y un espacio: «; » y sustituirlo por un salto de carro, Char(13).

Substitute(TextInput2.Text; "; ";Char(13))

El resultado es el que veis.

Pero que sucedería si, por ejemplo, tengo que mostrar los datos en dos galerías y la mitad del listado de frutas en cada una de ellas?

Para hacer eso, vamos trabajar con colecciones.

En el primer textInput2 vamos insertar este código en la propiedad OnChange:

//Creamos la primera colección, con el detalla de todas las frutas
ClearCollect(
    ColFrutas;
    Split(TextInput2.Text; "; ")
);;

//creamos dos colecciones para cada galería.
//usando las funciones FirstN y LastN podemos extraer los datos.
Set(totalFrutas; CountRows(ColFrutas));;
ClearCollect(ColGaleria1; FirstN(ColFrutas; RoundDown(totalFrutas/2;0)));;
ClearCollect(ColGaleria2; LastN(ColFrutas; RoundUp(totalFrutas/2;0)));;

De forma que en el momento en que el modifiquemos el contenido se creará una colección que luego vamos a dividir en otras dos colecciones usando las funciones FirstN y LastN.

Obviamente tenemos que poner cada colección como fuente de datos de cada galería.

Podéis adaptar el código según vuestras necesidades, y programar que las galerías se refresquen automáticamente o que se muestre otra galería, etc.

Por cierto, la solución de las colecciones también sirve para mostrar una única columna con los datos, sería la colección: colFrutas en una galería.

Espero que sea de utilidad.

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies