From f51e5f1859a49f604682b2dd02a15e39c8e2fa55 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 2 Nov 2023 22:37:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96`SerieData`=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?`ignore`=E6=97=B6`formatter`=E7=9A=84=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Helper/FormatterHelper.cs | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 62e88654..99132005 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -69,6 +69,7 @@ slug: /changelog ## master +* (2023.11.02) 优化`SerieData`设置`ignore`时`formatter`的忽略问题 * (2023.11.01) 增加`MarkLine`的`onTop`设置是否显示在最上层 * (2023.10.21) 修复`Pie`有0数据时`Label`的位置异常的问题 * (2023.10.21) 增加`Axis`的对数轴支持子刻度 diff --git a/Runtime/Helper/FormatterHelper.cs b/Runtime/Helper/FormatterHelper.cs index 5874c618..250a8359 100644 --- a/Runtime/Helper/FormatterHelper.cs +++ b/Runtime/Helper/FormatterHelper.cs @@ -154,6 +154,7 @@ namespace XCharts.Runtime numericFormatter = SerieHelper.GetNumericFormatter(serie, serie.GetSerieData(bIndex), ""); } var value = serie.GetData(bIndex, dimensionIndex); + var ignore = serie.IsIgnoreIndex(bIndex); if (isPercent) { var total = serie.GetDataTotal(dimensionIndex, serie.GetSerieData(bIndex)); @@ -167,7 +168,10 @@ namespace XCharts.Runtime } else { - content = content.Replace(old, ChartCached.FloatToStr(value, numericFormatter)); + if (ignore) + content = content.Replace(old, "-"); + else + content = content.Replace(old, ChartCached.FloatToStr(value, numericFormatter)); } } } @@ -214,14 +218,21 @@ namespace XCharts.Runtime } else if (p == 'd' || p == 'D') { - var rate = pIndex >= 0 && serieData != null ? - (value == 0 ? 0 : serieData.GetData(pIndex) / value * 100) : - (total == 0 ? 0 : value / total * 100); - content = content.Replace(old, ChartCached.NumberToStr(rate, numericFormatter)); + if (serieData != null && serieData.ignore) + content = content.Replace(old, "-"); + else + { + var rate = pIndex >= 0 && serieData != null ? + (value == 0 ? 0 : serieData.GetData(pIndex) / value * 100) : + (total == 0 ? 0 : value / total * 100); + content = content.Replace(old, ChartCached.NumberToStr(rate, numericFormatter)); + } } else if (p == 'c' || p == 'C') { - if (pIndex >= 0 && serieData != null) + if (serieData != null && serieData.ignore) + content = content.Replace(old, "-"); + else if (serieData != null && pIndex >= 0) content = content.Replace(old, ChartCached.NumberToStr(serieData.GetData(pIndex), numericFormatter)); else content = content.Replace(old, ChartCached.NumberToStr(value, numericFormatter));