Hola a todos,
Tenéis que perdonar por el título, porque es muy grande y aún así no cabe todo sobre lo que quiero hablar. Y quiero hacerlo sobre como configurar listas desplegables dependientes cuando nuestra fuente de datos es Dataverse. Os recuerdo este post para hacerlo pero con SharePoint: LISTAS DESPLEGABLES DEPENDIENTES EN POWER APPS.
Pues bien, la principal diferencia es que en estas listas el añadir un registro en blanco es una tarea que hasta la fecha no he podido resolver y, francamente, añadir en la propia base de datos una fila en blanco me parece una solución poco elegante. Si consultáis el post donde lo hago con SharePoint, lo que hago es añadir un registro en blanco pero desde la lista, pero con Dataverse no es posible. Luego os digo una solución alternativa que me ha ido muy bien.
En la primera lista que selecciona las SECCIONES, en la propiedad Items:
Distinct(
[@BBDD_DATAVERSE];
SECCION
)
En la segunda lista (ESTUDIOS) y que es dependiente de la primera,
Distinct(
Filter(
[@BBDD_DATAVERSE];
SECCION = Dropdown1.Selected.Value
);
ESTUDIOS
)
En la tercera lista (IDIOMA) y que es dependiente de la primera y la segunda:
Distinct(
Filter(
[@BBDD_DATAVERSE];
SECCION = Dropdown1.Selected.Value And ESTUDIOS = Dropdown2.Selected.Value
);
IDIOMA
)
De esta manera, hemos creado nuestra lista desplegable. Pero, ¿cómo podemos añadir una opción en blanco? En realidad, lo que buscamos es que ningún elemento quede seleccionado cuando elegimos la opción vacía.
Para lograrlo, podemos utilizar la propiedad AllowEmptySelection de la lista desplegable. Al configurarla en true, permitimos que, al hacer clic en un elemento ya seleccionado, este se desmarque automáticamente, dejando la lista en blanco.

Para que nuestra galería muestre lo que estamos seleccionando en las listas y que, cuando estén en blanco, lo muestre todo, vamos a incluir este código en la propiedad Items:
Filter(
BBDD_DATAVERSE;
IsBlank(Dropdown1.Selected.Value) Or SECCION=Dropdown1.Selected.Value;
IsBlank(Dropdown2.Selected.Value) Or ESTUDIOS = Dropdown2.Selected.Value;
IsBlank(Dropdown3.Selected) Or IDIOMA = Dropdown3.SelectedText.Value
)
Cuando trabajamos con Dataverse, es importante tener en cuenta que algunos campos pueden ser de tipo opción y otros simplemente texto. Esta diferencia afecta la forma en que accedemos a los valores seleccionados en un desplegable en Power Apps. Si el campo de sección es de tipo opción, el valor seleccionado se obtiene utilizando Selected.Value, ya que Value es una propiedad del campo de opción que devuelve el valor visible para el usuario. Por otro lado, si el campo de idioma es de tipo texto, debemos acceder al valor con SelectedText.Value, que devuelve directamente el texto seleccionado en la lista.
Los gráficos, para que muestren lo que tenemos seleccionado en la galería:
Para el gráfico de barras, en la propiedad Ítems y que mostrará el número de elementos filtrados en SECCIÓN:
AddColumns(
GroupBy(
Filter(
BBDD_DATAVERSE;
IsBlank(Dropdown1.Selected.Value) Or SECCION = Dropdown1.Selected.Value;
IsBlank(Dropdown2.Selected.Value) Or ESTUDIOS = Dropdown2.Selected.Value;
IsBlank(Dropdown3.Selected) Or IDIOMA = Dropdown3.SelectedText.Value
);
'SECCION'; 'RegistrosAgrupados'
);
'Cantidad'; CountRows(RegistrosAgrupados)
)
En la misma propiedad para los gráficos circulares de ESTUDIOS:
AddColumns(
GroupBy(
Filter(
BBDD_DATAVERSE;
IsBlank(Dropdown1.Selected.Value) Or SECCION = Dropdown1.Selected.Value;
IsBlank(Dropdown2.Selected.Value) Or ESTUDIOS = Dropdown2.Selected.Value;
IsBlank(Dropdown3.Selected) Or IDIOMA = Dropdown3.SelectedText.Value
);
'ESTUDIOS'; 'RegistrosAgrupados'
);
'Cantidad'; CountRows(RegistrosAgrupados)
)
e IDIOMAS:
AddColumns(
GroupBy(
Filter(
BBDD_DATAVERSE;
IsBlank(Dropdown1.Selected.Value) Or SECCION = Dropdown1.Selected.Value;
IsBlank(Dropdown2.Selected.Value) Or ESTUDIOS = Dropdown2.Selected.Value;
IsBlank(Dropdown3.Selected) Or IDIOMA = Dropdown3.SelectedText.Value
);
'IDIOMA'; 'RegistrosAgrupados'
);
'Cantidad'; CountRows(RegistrosAgrupados)
)
Y esto es todo, espero que sea de interés.
