gpt4 book ai didi

java - 如何在 BIRT 报告中绘制图形或自定义设计的图表?

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:03 26 4
gpt4 key购买 nike

我正在尝试根据 XML 文件中的某些数据生成报告。基本上,报告的第一页包含一些静态文本、一个 Logo 、一些动态文本和数据以及两个图表。下一页应该包含一些文本和旁边的图表。我这里有一个很大的问题。 BIRT 提供的图表不适合我的报告所以我想也许我可以根据我的 xml 文件中的数据生成一些图表(使用外部应用程序),将图表保存到文件中并最终将这些文件动态加载到我的报告中.这对于第一页上的图表来说非常容易。然而,下一页需要有自己的图表,我找不到合适的方法将相应的图像包含到下一页中。所以这是我的问题:

  1. 这有可能以某种方式创建自定义设计图表吗?如果是,该怎么做?以及如何将图表添加到报告的第 2,3,... 页?
  2. 我的 xml 文件中有所需的所有数据,是否可以在创建报告时使用一些 javascript 动态绘制图形?我的意思是通过使用数据,我只是绘制了我自己定制设计的图表?(这是一个非常简单的图表,没有花哨的东西)
  3. 如果我寻求在外部创建图表并将它们动态添加到报告中的解决方案,我如何才能将这些图像动态添加到报告的 2,3,.. 页面中。(每个页面都有自己的图表! ) 使用多个母版页对我有帮助吗?

最佳答案

您可以使用 D3.js 或 Flash 创建自定义设计的图表,并在 BIRT Designer 4.x 中的需要处添加分页符。有关于在 BIRT 报告中使用 Flash 的在线教程。

如果您在 BIRT 之外创建自己的图表,则可以使用图像小工具和图像的 URI 将它们作为图像导入。

如果你想使用 D3.js,

  • 添加 head.js("http://d3js.org/d3.v3.js ");到报表设计的ClientScript > clientInitialize脚本
  • 将脚本添加到您的数据集以创建:
    • 一个数组,例如 myArray = new java.util.ArrayList();在打开之前
    • 使用数据集的 onFetch 事件填充该数组的脚本,例如 myArray.add("['"+row["date"]+"','"+row["sales"]+"' ]");
    • 将数组复制到全局变量的脚本,例如 reportContext.setPersistentGlobalVariable("myArray",myArray);
  • 将文本项添加到报告布局中,您可以:
    • 获取全局变量,例如:var data = reportContext.getPersistentGlobalVariable("myArray");
    • 使用来自全局变量的数据,使用 d3.js JavaScript 构建您想要的 SVG 可视化。

如果您转到商业 BIRT Designer Professional,其中包含 Flash 对象,您还可以获得 HTML5 图表的 highcharts 库,您可以使用 highcharts.org API 通过 JavaScript 对其进行编辑。

关于java - 如何在 BIRT 报告中绘制图形或自定义设计的图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com