Jaspersoft Studio - 如何为条形图中的条形宽度创建自定义函数 increase/decrease?
Jaspersoft Studio - How to create a custom function to increase/decrease width of bar in a barChart?
我使用的是 TIBCO Jaspersoft Studio 版本 6.8.0,我正在创建一个条形图作为主报表的子报表。条形图从子数据集中获取数据。该报告创建得很好,因此没有人抱怨。
条形图是动态构建的,根据元素的数量设置条形的宽度。但我想静态设置条的宽度,忽略有多少元素。
因此,当有 10 个元素或 2 个元素时,它将是一个大 10 像素(例如)的条。
这是一张显示条形图宽度正确的图片(基于其中的元素编号)
这里我们有相同的条形图,但元素较少,所以条形的宽度会动态调整大小(我想为其宽度设置一个静态值)
我遵循了一些为条形图创建和使用自定义函数的指南,但是 none 这些似乎有效(也许我使用的是较新的版本,他们指的是旧版本的 Jasper报告)
我正在使用这个,但我不知道它是否好用以及如何在报告中实现它
package com.efarmgroup.sina.sios4.jasper;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.*;
import org.jfree.chart.ui.TextAnchor;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
public class customBarWidth implements JRChartCustomizer{
@Override
public void customize(JFreeChart chart, JRChart jasperChart){
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.10); // set maximum width to 35% of chart
}
}
我解决了我的问题(双重问题)。
在我写的函数里面
br.setMaximumBarWidth(.01); // set maximum width to 1% of chart
这对我的需要来说效果很好。
另一个问题是关于在报告中导入函数。
通过一个 ant 文件,我设法创建了包含编译函数的 Jar(.class 文件)。
<project name="projectName" default="createjar">
<target name="createjar">
<jar destfile="output-jar/jarName.jar" basedir="./bin" />
</target>
</project>
在此之后,我得到了 .class 文件,我需要在报告中导入和使用该功能。
我使用的是 TIBCO Jaspersoft Studio 版本 6.8.0,我正在创建一个条形图作为主报表的子报表。条形图从子数据集中获取数据。该报告创建得很好,因此没有人抱怨。
条形图是动态构建的,根据元素的数量设置条形的宽度。但我想静态设置条的宽度,忽略有多少元素。
因此,当有 10 个元素或 2 个元素时,它将是一个大 10 像素(例如)的条。
这是一张显示条形图宽度正确的图片(基于其中的元素编号)
这里我们有相同的条形图,但元素较少,所以条形的宽度会动态调整大小(我想为其宽度设置一个静态值)
我遵循了一些为条形图创建和使用自定义函数的指南,但是 none 这些似乎有效(也许我使用的是较新的版本,他们指的是旧版本的 Jasper报告)
我正在使用这个,但我不知道它是否好用以及如何在报告中实现它
package com.efarmgroup.sina.sios4.jasper;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.*;
import org.jfree.chart.ui.TextAnchor;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
public class customBarWidth implements JRChartCustomizer{
@Override
public void customize(JFreeChart chart, JRChart jasperChart){
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.10); // set maximum width to 35% of chart
}
}
我解决了我的问题(双重问题)。
在我写的函数里面
br.setMaximumBarWidth(.01); // set maximum width to 1% of chart
这对我的需要来说效果很好。
另一个问题是关于在报告中导入函数。
通过一个 ant 文件,我设法创建了包含编译函数的 Jar(.class 文件)。
<project name="projectName" default="createjar">
<target name="createjar">
<jar destfile="output-jar/jarName.jar" basedir="./bin" />
</target>
</project>
在此之后,我得到了 .class 文件,我需要在报告中导入和使用该功能。