Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

No se puede enlazar una columna de fecha y hora rellenada en modo DirectQuery con un parámetro de fecha y hora

Hola

Estoy trabajando en un informe que obtiene los datos de una función con valores de tabla hospedada en un servidor SQL de Azure. Esa función tiene cuatro parámetros: "TeamList", "OwnerNameList", "AnalysisBeginDate" y "AnalysisEndDate".

Me gustaría usar parámetros de consulta M dinámicos para que cuando los usuarios cambien un valor en los controles que se muestran en el informe, llamen a la función con los valores de los parámetros actualizados. Bueno, justo lo que la funcionalidad parece estar ofreciendo.

Logré hacerlo para los dos primeros parámetros de texto ("TeamList" y "OwnerNameList") pero no puedo hacer lo mismo para los dos últimos. Aparentemente, es porque tienen un formato de fecha. Trataré de compartir tantos detalles como sea posible, no solo por el bien de presentar mi problema, sino también para las personas que intentan usar parámetros M dinámicos porque, para mí, eso fue una lucha.

Presentación del informe

Me centraré en la lista desplegable "Equipo", una de las dos que realmente funciona.

Diseño

Puede ver, en la parte superior de la tabla, agregué cuatro controles que permiten al usuario cambiar los parámetros enviados a la función SQL. Por ahora solo funciona para "Equipo" y "Propietario del formulario de control".

Loy_0-1741599771884.png

Valores de la tabla de equipo y vínculo al parámetro

El menú desplegable "Equipo" se rellena con una llamada de función en modo DirectQuery (hice esa DirectQuery porque pensé que era obligatoria para los parámetros M dinámicos, aunque creo que solo se aplica a la llamada de función de datos principal):

let
    Source = Sql.Database("<server>", "<database>", [Query="SELECT TOP 100 PERCENT *#(lf)FROM dbo.GetTeamList()#(lf)ORDER BY 1"])
in
    Source

Loy_1-1741600525387.png

Loy_2-1741600593573.png

Loy_3-1741600696365.png

La lista desplegable "Equipo" es una segmentación de datos vinculada a la columna "Equipo" de la tabla "TeamListQuery".

Función principal de datos

Y, por último, así es como se envía el valor de "TeamParameter" a la función de datos principal (también DirectQuery).

let
    selectedTeams = if TeamParameter = null then
        "default"
    else 
        if Type.Is(Value.Type(TeamParameter), List.Type) then
            Text.Combine({"'", Text.Combine(TeamParameter, "|"), "'"})
         else
            Text.Combine({"'", TeamParameter, "'"}),

    selectedUsers = if UserNameParameter = null then
        "default"
    else 
        if Type.Is(Value.Type(UserNameParameter), List.Type) then
            Text.Combine({"'", Text.Combine(UserNameParameter, "|"), "'"})
         else
            Text.Combine({"'", UserNameParameter, "'"}),

    selectedAnalysisStartDate = if AnalysisBeginDateParameter = null then
        "default"
    else
        Text.Combine({"'", DateTime.ToText(AnalysisBeginDateParameter, "yyyy-MM-dd"), "'"}),

    selectedAnalysisEndDate = if AnalysisEndDateParameter = null then
        "default"
    else
        Text.Combine({"'", DateTime.ToText(AnalysisEndDateParameter, "yyyy-MM-dd"), "'"}),

    finalQuery = Text.Combine({"SELECT * FROM ",
                               "dbo.GetControlFormStatus(",
                               selectedTeams, ",",
                               selectedUsers, ",",
                               selectedAnalysisStartDate, ",",
                               selectedAnalysisEndDate, ")"}),
    
    Source = Sql.Database("<server>", "<database>", [Query=finalQuery])
in
    Source

El problema

Si sigo exactamente los mismos pasos para "AnalysisBeginDate" y "AnalysisEndDate", me refiero a: recopilar la lista de fechas a través de una llamada de función de modo DirectQuery (que devuelve una columna SQL DATE) y crear un parámetro Date. La lista desplegable "Enlazar al parámetro" no se muestra en la columna correspondiente.

let
    Source = Sql.Database("<server>", "<database>", [Query="SELECT *#(lf)FROM dbo.GetAnalysisBeginDateList()"])
in
    Source

Loy_4-1741601694185.png

Loy_6-1741602047650.png

Y parece ser solo porque la columna es de tipo "Fecha", porque, si cambio el tipo a "Texto", la lista desplegable "Vincular al parámetro" aparece en la sección "Avanzado" :

Loy_7-1741602320116.png

He seguido este artículo sobre el parámetro de consulta M dinámico:

https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-dynamic-m-query-parameters

Hay algo sobre el tipo de datos "Fecha/Hora" en la sección "Limitaciones", pero creo que se aplica a la llamada a la función de datos, cuando estoy atascado en el flujo ascendente.

También me gustaría decir que he seguido el ejemplo de este artículo que está usando una tabla de fechas y esto no funciona para mí. "Enlazar al parámetro" tampoco aparece.

He buscado minuciosamente en la web y he pedido ayuda a un par de IA. No tuvo éxito.

Si alguien puede ayudarme a hacer que funcione, será increíble. De lo contrario, tendré que reducir mis expectativas.

Bien

L

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@Loy

Gracias por su mensaje. Para quitar los datos y la información de la base de datos del archivo PBIX, abra el archivo en Power BI Desktop, vaya a Transformar datos y elimine las consultas o quite todos los pasos aplicados.

Además, puede borrar las credenciales almacenadas en Configuración de la fuente de datos seleccionando la conexión y eligiendo Borrar permisos.

Una vez hecho esto, guarde el archivo para asegurarse de que los datos y los detalles de la conexión ya no se conserven.

Háganos saber si necesita más orientación.

Si la información anterior es útil, por favor felicitaciones y marque la respuesta como Aceptada como solución.
Saludos
Equipo de apoyo a la comunidad _ C Srikanth.

Syndicate_Admin
Administrator
Administrator

Hola @Loy
Perdón por la respuesta tardía.
¿Podría proporcionar el recurso compartido de archivos pbix si no hay información confidencial?
Para que haga todo lo posible para resolver su problema.

Saludos
Cheri Srikanth

Hola @v-csrikanth,

Eché un vistazo, pero tengo problemas para eliminar los datos y la información de la base de datos del archivo.

¿Tiene algún consejo sobre cómo lograr esto, por favor?

Bien

L

Syndicate_Admin
Administrator
Administrator

@Loy

Gracias por formar parte de la comunidad de Microsoft Fabric.

Como se destaca en @lbendlin, el enfoque propuesto parece abordar eficazmente sus necesidades. ¿Podría confirmar si su problema se ha resuelto?
Si aún enfrenta algún desafío, proporcione más detalles y estaremos encantados de ayudarlo.

Si la información anterior es útil, por favor felicitaciones y marque la respuesta como Aceptada como solución.
Saludos
Equipo de apoyo a la comunidad _ C Srikanth.

Hola

Lo siento, pero todavía no he podido hacer que funcione. Para mí no es posible o las explicaciones dadas fueron demasiado vagas. Así que no puedo aceptar ninguna respuesta como solución.

L

Syndicate_Admin
Administrator
Administrator

Creé un informe en blanco y seguí los pasos descritos en el texto de este artículo para un parámetro de fecha / hora y no funciona :

Parámetros de consulta M dinámicos en Power BI Desktop

En el vídeo solo se utiliza un parámetro de texto.

¿Alguien lo ha hecho con un parámetro de fecha y hora?

L

Syndicate_Admin
Administrator
Administrator

Cambié el modo de almacenamiento a Importar para que esa consulta lo probara. El informe sigue funcionando, pero la lista desplegable ahora es el modo de selección única y, si intento desactivarlo, se vuelve a activar por sí solo. Raro, pero eso no es lo que me preocupa.

¿Alguna sugerencia sobre el problema principal con respecto a una tabla de fechas?

Bien

L

Syndicate_Admin
Administrator
Administrator

The "Team" dropdown is populated using a function call in DirectQuery mode (I've made that DirectQuery because I thought it was mandatory for dynamic M parameters though I think it only applies for the main data function call) :

Todo lo contrario. El uso de Direct Query para alimentar una segmentación que luego afecta a un parámetro de Dynamic M Query es similar a una serpiente que se come la cola. O tú mismo cortando la rama en la que estás sentado.

Lo ideal es que los valores presentados al parámetro M dinámico provengan de una lista estática (es decir, el modo de importación).

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors