Uploaded image for project: 'Keikai'
  1. Keikai
  2. KEIKAI-417

Render a chart with data from named ranges

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Done
    • Icon: Normal Normal
    • 5.7.0
    • None
    • None
    • Security Level: Jimmy
    • None
    • None

      User Story

      As an end-user, I want to create a chart and it can automatically update when its source data changes like "How to use defined names to automatically update a chart range in Excel" described.
      Hence, after I create the chart. When I add one more data entry (the chart will update with new data entry)

      Details

      importing the attached file with keikai 5.6.0, the error is

      SEVERE: Expect a legal Table when eval [0]!Date
      java.lang.IllegalStateException: Expect a legal Table
      at org.zkoss.poi.ss.formula.FormulaParser.parseTableSpecifiers(FormulaParser.java:954)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:727)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:560)
      at org.zkoss.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1675)
      at org.zkoss.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1635)
      at org.zkoss.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1622)
      at org.zkoss.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1977)
      at org.zkoss.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:2077)
      at org.zkoss.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:2061)
      at org.zkoss.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:2018)
      at org.zkoss.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1998)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:2119)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:343)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:319)
      at io.keikai.model.impl.sys.formula.EvalBook.getFormulaTokens(EvalBook.java:80)
      at org.zkoss.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:1142)
      at org.zkoss.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:1064)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluateFormulaExpression(FormulaEngineImpl.java:1551)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluateFormula(FormulaEngineImpl.java:579)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluate(FormulaEngineImpl.java:467)
      at io.keikai.model.impl.chart.GeneralChartDataImpl.evalFormula(GeneralChartDataImpl.java:87)
      at io.keikai.model.impl.chart.GeneralChartDataImpl.getNumOfCategory(GeneralChartDataImpl.java:107)
      at io.keikaiex.util.ChartsModelManager$CategoryModelSelector.toCharts(ChartsModelManager.java:211)
      at io.keikaiex.util.ChartsModelManager.getChartsModel(ChartsModelManager.java:58)
      at io.keikaiex.util.HighchartsHelper.drawCharts(HighchartsHelper.java:103)
      at io.keikaiex.ui.widget.ChartsWidget.initChart(ChartsWidget.java:138)
      at io.keikaiex.ui.widget.ChartsWidget.invalidate(ChartsWidget.java:128)
      at io.keikaiex.ui.widget.DefaultWidgetHandler.onLoadWidgetOnDemand(DefaultWidgetHandler.java:170)
      at io.keikaiex.ui.widget.DefaultWidgetHandler.onLoadOnDemand(DefaultWidgetHandler.java:150)
      at io.keikai.ui.SpreadsheetCtrlImpl.setLoadedRect(SpreadsheetCtrlImpl.java:200)
      at io.keikai.ui.au.in.BlockSyncCommand.process(BlockSyncCommand.java:74)
      at io.keikai.ui.Spreadsheet.service(Spreadsheet.java:3339)
      ...
      Jan 04, 2021 5:02:55 PM io.keikai.model.impl.sys.formula.FormulaEngineImpl evaluate
      SEVERE: Expect a legal Table when eval [0]!Sales
      java.lang.IllegalStateException: Expect a legal Table
      at org.zkoss.poi.ss.formula.FormulaParser.parseTableSpecifiers(FormulaParser.java:954)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:727)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:560)
      at org.zkoss.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1675)
      at org.zkoss.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1635)
      at org.zkoss.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1622)
      at org.zkoss.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1977)
      at org.zkoss.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:2077)
      at org.zkoss.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:2061)
      at org.zkoss.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:2018)
      at org.zkoss.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1998)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:2119)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:343)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:319)
      at io.keikai.model.impl.sys.formula.EvalBook.getFormulaTokens(EvalBook.java:80)
      at org.zkoss.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:1142)
      at org.zkoss.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:1064)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluateFormulaExpression(FormulaEngineImpl.java:1551)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluateFormula(FormulaEngineImpl.java:579)
      at io.keikai.model.impl.sys.formula.FormulaEngineImpl.evaluate(FormulaEngineImpl.java:467)
      at io.keikai.model.impl.chart.SeriesImpl.evalFormula(SeriesImpl.java:116)
      at io.keikai.model.impl.chart.SeriesImpl.getNumOfValue(SeriesImpl.java:198)
      at io.keikaiex.util.ChartsModelManager$CategoryModelSelector.toCharts(ChartsModelManager.java:211)
      at io.keikaiex.util.ChartsModelManager.getChartsModel(ChartsModelManager.java:58)
      at io.keikaiex.util.HighchartsHelper.drawCharts(HighchartsHelper.java:103)
      at io.keikaiex.ui.widget.ChartsWidget.initChart(ChartsWidget.java:138)
      at io.keikaiex.ui.widget.ChartsWidget.invalidate(ChartsWidget.java:128)
      at io.keikaiex.ui.widget.DefaultWidgetHandler.onLoadWidgetOnDemand(DefaultWidgetHandler.java:170)
      at io.keikaiex.ui.widget.DefaultWidgetHandler.onLoadOnDemand(DefaultWidgetHandler.java:150)
      at io.keikai.ui.SpreadsheetCtrlImpl.setLoadedRect(SpreadsheetCtrlImpl.java:200)
      at io.keikai.ui.au.in.BlockSyncCommand.process(BlockSyncCommand.java:74)
      ...

            wenninghsu wenninghsu
            hawk hawk
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: