当前位置: 首页 > 知识库问答 >
问题:

Jaspersoft工作室:传奇称号怎么设置?

包唯
2023-03-14

根据Jaspersoft Wiki,有一个“高级”属性“legend.title.text”。建议我在“Advanced”选项卡中手动输入它,但在Jaspersoft Studio6.6.0 Eclipse插件中没有自由文本属性字段,只有一堆预定义的属性。我瞎了吗?还是为付费产品保留了这一特性?

共有1个答案

公孙宏畅
2023-03-14

JasperReports(和Jaspersoft Studio Community Edition)图表基于JFreeChart。wiki文章讨论了JasperReports Server Professional,这是一种不同的产品,它以基于highcharts的特殊图表为特色。

对于JasperReports图表,没有为图例指定标题的内置特性。

但是,您可以自己作为图表定制器(或图表主题,但这稍微复杂一些)来实现它。chart customizer将读取chart元素属性,并使用JFreeChart为图例创建标题。它看起来像这样:

import org.jfree.chart.JFreeChart;
import org.jfree.chart.block.BlockContainer;
import org.jfree.chart.block.LabelBlock;
import org.jfree.chart.title.LegendTitle;
import org.jfree.ui.RectangleEdge;

import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import net.sf.jasperreports.engine.JRPropertiesMap;

public class LegendTitleCustomizer implements JRChartCustomizer {
    @Override
    public void customize(JFreeChart chart, JRChart jasperChart) {
        JRPropertiesMap elementProperties = jasperChart.getPropertiesMap();
        String legendTitleText = elementProperties.getProperty("legend.title.text");
        if (legendTitleText != null) {
            LegendTitle legend = chart.getLegend();
            BlockContainer legendItems = legend.getItemContainer();
            BlockContainer legendWrapper = new BlockContainer();
            LabelBlock label = new LabelBlock(legendTitleText);
            legendWrapper.add(label, RectangleEdge.TOP);
            legendWrapper.add(legendItems, RectangleEdge.BOTTOM);
            legend.setWrapper(legendWrapper);
        }       
    }
}
<barChart>
    <chart customizerClass="LegendTitleCustomizer">
        <reportElement x="0" y="50" width="270" height="175">
            <propertyExpression name="legend.title.text">"Series"</propertyExpression>
        </reportElement>
        ...
 类似资料:
  • 我用的是Jaspersoft Studio 5.5.2。我需要改变单个条形的颜色。我发现了如何创建和分配一个定制类,以及如何创建自己的bar渲染器并覆盖它。 问题是,一旦我这样做,图表就会显示一系列重复的条形,这些柱线在Y刻度上向右移动并略低。起初,我以为这是某种阴影,但是对于每个行,列组合,getItemPaint 方法被调用两次。 我的定制器和渲染器(简化,但测试显示相同的影响) 我想显示“好

  • 我使用的是Jaspersoft Studio最终版本(v6.1.1)。我设计了我的报告,其中包含土耳其文字。从Studio导出报告为PDF时,虽然我已将Studio工作区编码设置为UTF-8,但不会显示土耳其语字符。此外,我已在JSF应用程序中嵌入jrxml报告文件并导出报告,结果是相同的。 我需要配置更多吗?

  • 我正在尝试使用预定义的sql查询在Jasper报告服务器专业版上生成报告。 如何在jaspersoft studio设计器中创建主题以使用预定义的sql查询?

  • 这是我第一次使用Android Studio,我收到错误 “无法解析符号AppCompat活动”和其他符号错误。 我如何解决它?我试过给gradle添加一些东西,但没有效果。还尝试了“使缓存失效/重新启动”,但也没有成功。 这是gradle文件中的依赖项

  • 地图工作室的一般流程包括:创建项目、选择底图、添加图层、添加数据、修改图层属性、分析数据、保存并分享。 创建项目 您可以在应用中心中点击地图工作室,在弹出页面中点击“立即体验”。您也可以依次点击“资源中心”,“地图”,“创建地图”,“地图工作室”打开地图工作室。 在资源中心中,可以查看或编辑您保存的地图。 选择底图 地图工作室默认中国暗色地图作为底图。纯色底图支持设置颜色及底图坐标系,支持设置的坐

  • 我正在使用gettext将不同的翻译添加到我的网页中。我刚刚安装了它,我认为它工作得很好。我还使用Poedit来编辑。po文件。 这是我的gettext测试代码: 该代码返回“gettext受支持”,但它没有显示翻译,而是显示“HELLO WORLD”和“TEST TRANSLATION”。 这是我的留言。采购订单文件: 它在我的“Locale/en_US/LC_MESSAGES”文件夹中,还有一