Open Business Intelligence

La red del Business Intelligence

Graficar resultado de Combobox en un dashboard

Hola  a todos  estoy realizando un dashboard y ya logré mediante un parámetro que mi combobox muestre el resultado de una consulta sql . Pero ahora necesito que cuando me pare arriba del combobox y selecione un campo se me grafique una  componente(resultado de una consulta) utilizando este valor selecionado en dicha consulta (como capturar lo selección del combobox y pasárselo de parámetro a una consulta).Un ejemplito, cualquier cosa me ayude para resolver este problema.

Visitas: 758

Responde a esto

Respuestas a esta discusión

Saludos,

Si lo que quieres es enviar por parametro el valor seleccionado del combo o "Select Component" como lo quieras llamar y que este te actualice la otra grafica puedes hacer esto.

Por ejemplo supongamos que tenemos un "Select" de los meses de un año especifico y tenemos un "BarChart" donde graficamos centros de costos. queremos que nuestra "BarChart" se actualice conforme cambie el mes.

Esto es lo que hago:

Adicionamos un "Simple Parameter" del apartado "Generic", lo nombramos ej: mes y en la propiedad valor colocas si quieres un mes especifico ej: ENERO, esto hara que se cargue con este valor por defecto el "Select", luego en el component Select, vas a la propiedad "Parameter" y escribes el nombre del recien creado en tese caso es mes

grabas el DashBoard y hasta aqui si ejecutas te debe cargar el valor del mes escrito.

Ahora lo que hay q hacer es enviar este valor a la consulta ligada al otro componente, segun nuestro ejemplo el "BarChart".

1. en el componente que quieres que se actualice, este caso un "BarChart" haz lo siguiente:

adiciona un nuevo parametro que se llame igual al "Simple Parameter" creado así:

Arg: mes  value: mes

y en la propiedad Listener, selecciona igualmente: mes y "ok".

grabas el DashBoard y pasas a lo siguiente.

2.Ahora ubicas la consulta (para este ejemplo usé MDX Query) y dependiendo de como tengas nombrada tu dimesion y herencia en este caso la del tiempo, ubicas al final el nombre del parametro:

                 from [NombreCubo]
                 where [Tiempo.Por Anio].[2012].${mes}

lo pudes probar en una vista de analisis lo que quedaria así:

                 from [NombreCubo]
                 where [Tiempo.Por Anio].[2012].ENERO    <= "suponiendo que seleccionaste ENERO"

Nota: la dimension por la que intentes filtrar no debe estar dentro del contenido de la consulta, me explico, en este caso la dimesion tiempo no puede formar parte de las filas, sino te saldra error "appears in more than one independent axis".

grabas el DashBoard y pasas a lo siguiente.

3. ahora solo falta decirle a la consulta q nos escuche ese parametro:

vas a la propiedad "Parameters" de la consulta y lo adicionas, quedaria así:

Name: mes

si quieres que te cargue por defecto la consulta.

Value:ENERO

Type: String

y ok.

Con esto seria suficiente para que funcione tu combo.

Espero te sirva, trate de dar mi mejor explicación.

Muchas gracias lo voy a probar y te digo.

Hola Jhon muy buena tu explicación me ayudó bastante, me salio todo bien.

Con mucho gusto...es un placer colaborar...

salu2


yenlidie González Batista dijo:

Hola Jhon muy buena tu explicación me ayudó bastante, me salio todo bien.

Hola de nuevo Jhon, disculpa q te moleste pero quizas me puedas ayudar.

Estaba haciendo dos combos enlazados(o dos Select component), por ejemplo, tengo en mi dimension geografia 3 nivels, pais, provincia y municio y quiero q cuando seleccione una provincia en un combo se muestren solo los municipios de esa provincia en el otro combo y a su vez se me actualice una tabla q tengo con algunos indicadores. Hasta ahora me funciona pero con algunos detalles q quisiera arreglar. Por ejemplo:

-quisiera poder primeramente q los combos me salgan en blanco y se muestren en la tabla los indicadores a nivel de pais.

-además q cuando cambie de provincia la tabla de indicadores se me actualice pero solo con los indicadores a nivel de provincia.

-y finalmente q cuando seleccione provincia y municipio en ambos combos respectivamente se actualice la tabla con los indicadores a nivel de municipios.

Esto se puede hacer???

Disculpa tantas molestias.

Saludos

Primero que todo disculpa la demora, respondiendo a tus inquietudes:

1.Vamos a intentar algo:

De entrada no sé cómo cargas los Selects ya que puede ser por DataSource o por ValuesArray.

Entre tanto lo que puedes hacer es colocar en la propiedad avanzada del SelectComponent “Execute at start” en false, en teoría no llenaría el Select al cargar el dashboard sino posteriormente. Ahora para que te cargue por defecto como quieres solo con el país podríamos intentar algo en la propiedad “Parameters” de los dataSources deja solo el parámetro de País con “Value”, los otros dos déjalos en blanco  de esa manera el data source solo se cargara y te pintara por el país por defecto.

2-3. Como te digo si manejas los 3 Select  y éstos los incluyes en las consultas como parámetros. deben tener al menos un valor por defecto pero con el cambio anterior podría funcionar de igual manera.Así mismo al cambiar cualquier valor de los combos independientemente del que sea te debe actualizar los datos.

Por ejemplo el “WHERE” de tus dataSource debe ser algo así:

 WHERE [Geografia].[${Pais}].[${provincia}].[${municipio}]

Así al cambiar cualquier selección en los Select se te actualizara la grafica.

Espero haber aclarado tus inquietudes y si necesitas algo no dudes.

Salu2.


yenlidie González Batista dijo:

Hola de nuevo Jhon, disculpa q te moleste pero quizas me puedas ayudar.

Estaba haciendo dos combos enlazados(o dos Select component), por ejemplo, tengo en mi dimension geografia 3 nivels, pais, provincia y municio y quiero q cuando seleccione una provincia en un combo se muestren solo los municipios de esa provincia en el otro combo y a su vez se me actualice una tabla q tengo con algunos indicadores. Hasta ahora me funciona pero con algunos detalles q quisiera arreglar. Por ejemplo:

-quisiera poder primeramente q los combos me salgan en blanco y se muestren en la tabla los indicadores a nivel de pais.

-además q cuando cambie de provincia la tabla de indicadores se me actualice pero solo con los indicadores a nivel de provincia.

-y finalmente q cuando seleccione provincia y municipio en ambos combos respectivamente se actualice la tabla con los indicadores a nivel de municipios.

Esto se puede hacer???

Disculpa tantas molestias.

Saludos

Hola de nuevo Jhon, me da pena seguir molestando pero he probado lo que me explicaste y nada, no me funciona de ninguna manera. Te voy a explicar lo que puse a ver si ves q estoy haciendo mal. Disculpa q siga molestando pero es q necesito resolver este problema.

Mira yo tengo tres paremeters y tres select, uno con el pais q siempre es el mismo y no lo muestro en ningun panel (lo pongo solo para q inicialmente me salgan los indicadores a nivel de pais), otro con las provincias y otro con los municipios.Los tres los lleno con un datasource y lo hago con consultas sql no MDX porque no se me dan bien las mdxs.

A los parameter solo en el caso del pais le puse un valor en el property value y los otros dos los deje en blanco.

A los select en el caso de la provincia le puse en  listeners y en parameters al pais, y en el del municipio le puse la provincia.

A la tabla q muestra los indicadores le puse en parameters  municipio,provincia y pais y en listeners tambien le puse los tres

En los datasource utilicé sql over sqlJndi. En el de la provincia le puse en parameters "pais","Cuba","string". En el del municipio "pais","Cuba","string" y "provincia","", "string". En el de la tabla  puse lo mismo pero incluyendole el municipio.

La consulta de la tabla es esta y quizas ahi esta el error:

SELECT
   "dim_indicador"."indicador",  
 sum("hch_epm_estadisticas"."ind_valor") as cantidad
    
FROM
     "dim_indicador" INNER JOIN "hch_epm_estadisticas" ON "dim_indicador"."dim_indicador" = "hch_epm_estadisticas"."dim_indicador"
     INNER JOIN "dim_fecha" ON "hch_epm_estadisticas"."dim_fecha" = "dim_fecha"."dim_fecha"      INNER JOIN dim_geografia ON "hch_epm_estadisticas"."dim_geografia"=dim_geografia.dim_geografia
     
WHERE
     "dim_indicador"."indicador" IN ('CUENTAS REGISTRADAS','VOLUMEN DOCUMENTAL','TOTAL DE ORGANIZACIONES')
   
      and "dim_fecha"."dia_fecha"=current_date
      AND (dim_geografia.pais=${pais}) or (dim_geografia.provincia=${provincia}) or (dim_geografia.municipio=${municipio})
   
GROUP BY
     "dim_indicador"."indicador"

Asi como esta me muestra la tabla solo con los datos a nivel de pais,cuando selecciono una provincia no me actualiza y cuando selecciono un municipio tampoco.Me he extendido pero es para q sepas lo que estoy haciendo y asi me puedas ayudar a encontrar donde puede estar el error.

Saludos y mil gracias

Hola  Yenlidie como estas, estuve algo ocupado y hasta hoy recién revise el forum... cuéntame, solucionaste tu problema o en que vas?

Salu2 

Hola Jhon a la verdad que no he podido resolver ese problema, he tratado de muchas maneras pero nada, quizas el problema este en la consulta. Cuando tengas un tiempito mira lo que te mande anteriormente a ver si ves q estoy haciendo mal. Gracias de antemano por todo.

Hola Yenlidie

Según veo en tu consulta creo que el error puede estar en los or que estás haciendo. Tuve una situación similar y la resolví de la siguiente manera:

En el where hago algo parecido a esto:

case when ${pais} is not null then dim_geografia.pais=${pais} else ${pais} in ("consulta que devuelve todos los países") end

and

"lo mismo con provincia"

and

"lo mismo con municipio".

En mi caso le puse un valor Todos a provincia y municipio, o sea que comparo con todos en lugar de null. De este modo cuando venga el valor se filtra por él y si no, se filtra igual pero teniendo en cuenta todos los valores con el in.

Espero te sirva.

Hola a todos!!

John Alexander, me llamó la atención lo que escribes: "2-3. Como te digo si manejas los 3 Select  y éstos los incluyes en las consultas como parámetros. deben tener al menos un valor por defecto pero con el cambio anterior podría funcionar de igual manera."


He estado buscando la forma de utilizar los parameters del mondrian Jndi sin el valor por defecto. Es decir, que busque el contenido del parameters en una variable. 

Alguna idea o de plano no es posible hacerlo? Saludos!



John Alexander Carvajal Agudelo dijo:

Primero que todo disculpa la demora, respondiendo a tus inquietudes:

1.Vamos a intentar algo:

De entrada no sé cómo cargas los Selects ya que puede ser por DataSource o por ValuesArray.

Entre tanto lo que puedes hacer es colocar en la propiedad avanzada del SelectComponent “Execute at start” en false, en teoría no llenaría el Select al cargar el dashboard sino posteriormente. Ahora para que te cargue por defecto como quieres solo con el país podríamos intentar algo en la propiedad “Parameters” de los dataSources deja solo el parámetro de País con “Value”, los otros dos déjalos en blanco  de esa manera el data source solo se cargara y te pintara por el país por defecto.

2-3. Como te digo si manejas los 3 Select  y éstos los incluyes en las consultas como parámetros. deben tener al menos un valor por defecto pero con el cambio anterior podría funcionar de igual manera.Así mismo al cambiar cualquier valor de los combos independientemente del que sea te debe actualizar los datos.

Por ejemplo el “WHERE” de tus dataSource debe ser algo así:

 WHERE [Geografia].[${Pais}].[${provincia}].[${municipio}]

Así al cambiar cualquier selección en los Select se te actualizara la grafica.

Espero haber aclarado tus inquietudes y si necesitas algo no dudes.

Salu2.


yenlidie González Batista dijo:

Hola de nuevo Jhon, disculpa q te moleste pero quizas me puedas ayudar.

Estaba haciendo dos combos enlazados(o dos Select component), por ejemplo, tengo en mi dimension geografia 3 nivels, pais, provincia y municio y quiero q cuando seleccione una provincia en un combo se muestren solo los municipios de esa provincia en el otro combo y a su vez se me actualice una tabla q tengo con algunos indicadores. Hasta ahora me funciona pero con algunos detalles q quisiera arreglar. Por ejemplo:

-quisiera poder primeramente q los combos me salgan en blanco y se muestren en la tabla los indicadores a nivel de pais.

-además q cuando cambie de provincia la tabla de indicadores se me actualice pero solo con los indicadores a nivel de provincia.

-y finalmente q cuando seleccione provincia y municipio en ambos combos respectivamente se actualice la tabla con los indicadores a nivel de municipios.

Esto se puede hacer???

Disculpa tantas molestias.

Saludos

Responder a debate

RSS

Distintivo

Cargando…

© 2019   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio