Jasper Reports中饼图中的负值

时间:2015-11-02 12:56:57

标签: java jasper-reports jfreechart

我要求在jasper报告中在饼图中显示负值。我能够使用定制器类来实现这一点。在createCustomizedDataset方法中,我正在检查值是否为负,然后在生成标签时我将附加&#34 ; - "登录

PiePlot piePlot = (PiePlot) chart.getPlot();
    PieDataset dataset = piePlot.getDataset(); // line 1
    PieDataset dataset1 = createCustomizedDataset(dataset,piePlot);
    piePlot.setDataset(dataset1);

    StandardPieSectionLabelGenerator labelGen = new StandardPieSectionLabelGenerator(
            "{1}") {

        @SuppressWarnings("rawtypes")
        @Override
        public String generateSectionLabel(PieDataset dataset, Comparable key) {
            String label = super.generateSectionLabel(dataset, key);

            if(dataSetKeys.contains(key.toString())){
                return "-"+label;
            }else{
                return label;
            }
        }

    };

输出如下:

enter image description here

问题是:如果负值有多个条目,我会得到一个不同的类别,其中负值组合在一起。在第1行,这些负值的数据集键是“其他”。这里我有两个类别价值为" -2.02"和#34; -0.01"。因此,不是显示两个切片,而是显示一个2.02 + 0.01 = 2.03的切片。问题是自定义方法中的数据集就是这样。

enter image description here

1 个答案:

答案 0 :(得分:0)

我解决了,因为在聊天编辑向导中最小表达式设置为0.删除它以解决问题。