Power Apps TIP – Calcular el índice de los elementos dentro de un gallery

Power Apps TIP – Calcular el índice de los elementos dentro de un gallery

Caso de uso

Digamos que tienes un gallery mostrando cierto contenido de un datasource (en el ejemplo debajo se utiliza el datasource de ejemplo provisto nativamente por PowerApps cuando uno añade un gallery a la pantalla, en este caso un gallery horizontal):

No hay texto alternativo para esta imagen

Meta

En ese gallery queremos mostrar el índice de cada elemento del datasource sin tener que agregar una columna incrementando cada valor iterado. (Agreguen un comentario pidiéndolo y les mostraremos como se hace)

No hay texto alternativo para esta imagen

Truco

Tenga bien presente que el datasource es llamado CustomGallerySample y que este está estructurado de la siguiente forma:

No hay texto alternativo para esta imagen

Formula mágica :)

Una simple formula colocada en un label con fondo Amarillo (dentro del gallery) nos permite calcular el índice:

No hay texto alternativo para esta imagen

menucemos y analicemos como la formula actúa sobre el tercer elemento del gallery: Lorem ipsum 3

No hay texto alternativo para esta imagen

Paso 1

Usando la función Concat () iniciamos por concatenar en un string uno de los campos del datasource el cual debe ser un identificador único de cada elemento (PrimaryKey). El resultado se verá así:

No hay texto alternativo para esta imagen

Paso 2

Luego, usando la función Split () dividimos el string en 2 partes desde el valor del elemento actual de gallery (en este caso ThisItem.SampleHeading). Recordemos que estamos analizando el tercer elemento de nuestro gallery. Así que el resultado lucirá así:

No hay texto alternativo para esta imagen

Paso 3

Usando la función First() devolvemos el primer elemento de la tabla, el cual será:

No hay texto alternativo para esta imagen

Paso 4

Usando la función Split () otra vez, dividimos ese elemento justo desde nuestro separador en este caso “|”, entonces nos quedaría la siguiente table:

No hay texto alternativo para esta imagen

Paso 5

Con la función CountRows() contamos la cantidad de filas en la table en este caso 3. Y así conseguimos el índice de un gallery.

Advertencia

Asegúrate de que en el paso 2 se ha divide una columna con un identificador único para cada elemento de tu datasource.

La fórmula por copiar es:

CountRows(Split(First(Split(Concat(CustomGallerySample, SampleHeading, "|"), ThisItem.SampleHeading)).Result, "|"))        


 

Yasser Giancarlo Espinoza Valencia

Analista de Mejora Continua en Camposol

1 año

Hola, muy buen post. Podrías por favor ayudarme a agregar una columna autoincrementada que propones como alternativa?

Inicia sesión para ver o añadir un comentario.

Otros usuarios han visto

Ver temas