WebChartCircularDataset - no shows the values

Xojo 2022r4

WebChartCircularDataset He no longer shows me the values when positioning me on a color

WebChartCircularDataset ya no me muestra los valores al posicionarme sobre un color

@Javier_Menendez ejemplo como éste ya no me funcionan.

Var sales() As Double = Array(12500.0, 30200, 25600, 15800)
Var colors() As Color = Array(Color.Orange, Color.Brown, Color.Purple, Color.DarkGray)
Var ds As New WebChartCircularDataset("Test", sales, Colors)
Charts1.AddDataset(ds)

Bug:
#71435 - WebChart isn’t displaying the value when hovering Pie or Doughnut charts

@AlbertoD se me había pasado que se había reportado el error, ahora mirando mi proyecto me encontré con eso y perdí horas revisando si había cambiado algo, gracias!.
Lástima que en avances de versiones tenemos algunos retrocesos no?.

I had missed that the error had been reported, now looking at my project I found that and I spent hours checking if something had changed, thank you!

Too bad that in version advances we have some setbacks, right?

2 Likes

Esto fue solucionado en la última versión 2023r1.1 ?

Los charts Doughnut me están siendo inservibles al no mostrar los valores.
Incluso cambie por el nuevo ChartCircularDataset y segui el ejemplo y NADA!

Var sales() As Double = Array(345890.0, 421934, 456908, 567987)
Var colors() As Color = Array(Color.Red, Color.Green, Color.Yellow, Color.Blue)
Var ds As New ChartCircularDataset("Sales", sales, Colors)
Me.AddDataset(ds)
Me.AddLabels("Q1", "Q2", "Q3", "Q4")

@Javier_Menendez o @Ricardo_Cruz tienen la solución?

El fix estará en la 2023r2.

Issue #71435

:smiling_face_with_tear:
aguardando desde el 2022 !
No entiendo porque algo que estaba bien de golpe deja de funcionar y cuesta tanto reactivarlo, pero no queda otra aguardaremos y gracias!

¿Puedes intentar este workaround temporal @Mauricio_Tanco?, ponlo en el evento Shown de tu WebChart.

// Temporary workaround for https://tracker.xojo.com/xojoinc/xojo/-/issues/71435
// Can be removed after Xojo 2023r2.
Var js() As String
js.Add("Chart.helpers.each(Chart.instances, (instance) => {")
js.Add("  const parent = instance.canvas.closest('.XojoCharts');")
js.Add("  if (parent.id === '" + Me.ControlID + "') {")
js.Add("    instance.options.tooltips.callbacks.label = (t, e) => `${e.datasets[t.datasetIndex].label}: ${e.datasets[t.datasetIndex].data[t.index].toLocaleString()}`")
js.Add("  }")
js.Add("});")

ExecuteJavaScript(String.FromArray(js))
2 Likes

Usando el código de Mauricio y el workaround temporal de Ricardo:
image

2 Likes

Seben que lo agrego en el Shown junto con el código de ejemplo pero no me lo soluciono.

// Temporary workaround for https://tracker.xojo.com/xojoinc/xojo/-/issues/71435
// Can be removed after Xojo 2023r2.
Var js() As String
js.Add("Chart.helpers.each(Chart.instances, (instance) => {")
js.Add("  const parent = instance.canvas.closest('.XojoCharts');")
js.Add("  if (parent.id === '" + Me.ControlID + "') {")
js.Add("    instance.options.tooltips.callbacks.label = (t, e) => `${e.datasets[t.datasetIndex].label}: ${e.datasets[t.datasetIndex].data[t.index].toLocaleString()}`")
js.Add("  }")
js.Add("});")
ExecuteJavaScript(String.FromArray(js))



Var sales() As Double = Array(345890.0, 421934, 456908, 567987)
Var colors() As Color = Array(Color.Red, Color.Green, Color.Yellow, Color.Blue)
Var ds As New ChartCircularDataset("Sales", sales, Colors)
Me.AddDataset(ds)
Me.AddLabels("Q1", "Q2", "Q3", "Q4")

Tu código lo tengo en Opening, el de Ricardo lo tengo en Shown.

2 Likes

Perfecto! Funciono! Asi que el código de ejemplo de la documentación del ChartCircularDataset iría en el Opening, lo de Ricardo en el Shown, ahi funciono!

Muy agradecido a ambos!!

p.d. por las dudas cuando yo envíe los datos desde un Metodo, supongo los datos no le llegaran en el Opening sino en el Shown, ahi los tomará sin problemas? lo probare, gracias!

Si estás actualizando el control WebChart fuera the Opening, entonces tendrás que enviar después el workaround de Ricardo, creo que no puede ser en el mismo método/evento.

Tal vez un CallLater te ayude.