java - Jaspersoft Studio - 如何创建自定义函数来增加/减少条形图中条形的宽度?
问题描述
我正在使用 TIBCO Jaspersoft Studio 6.8.0 版,并且正在创建一个条形图作为主报表的子报表。条形图从子数据集中获取数据。该报告创建得很好,因此没有任何抱怨。
barChart 是根据元素的数量动态设置条形的宽度的。但我想静态设置条的宽度,忽略有多少元素。因此,当有 10 个元素或 2 个元素时,这将是一个大 10 像素(例如)的条形图。
这是一张显示具有正确条形宽度的条形图的图片(基于其中的元素编号)
在这里,我们有相同的 barChart 但元素较少,因此条形的宽度只会动态调整大小(我想为其宽度设置一个静态值)
我遵循了一些为 barChart 创建和使用自定义函数的指南,但这些似乎都不起作用(也许我使用的是较新版本,他们指的是 Jasper Report 的旧版本)
我正在使用这个,但我不知道好不好以及如何在报告中实施
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 文件,我设法创建了包含编译函数(.class 文件)的 Jar。
<project name="projectName" default="createjar">
<target name="createjar">
<jar destfile="output-jar/jarName.jar" basedir="./bin" />
</target>
</project>
在此之后,我有了导入和使用报告中的函数所需的 .class 文件。
推荐阅读
- c# - 如何使应用程序永远不会关闭并每小时执行一个程序?
- php - WordPress 中来自两个不同类别的交错帖子
- c# - 事务无法通过 Task.WhenAll 处理并行命令
- time-complexity - 计算avl树高度的复杂时间是多少?
- vue.js - 如何使用 Here maps api 和 Vue.js 创建地图
- python - 如何在不添加参数的情况下对基于时间的函数进行单元测试
- c++ - Cuda 从黑白图像创建纹理对象
- javascript - Service Worker 和 GCM 有什么区别
- python - sqlite3.OperationalError: near "t": syntax error 是什么意思
- reactjs - Redux 在按钮单击后没有很快更新-Redux,Reactjs