2012-05-03 106 views
4

我想根据XML文件中的一些数据生成报告。 基本上,报告的第一页包含一些静态文本,徽标,一些动态文本和数据以及两个图表。接下来的页面应该包含一些文字和旁边的图表。我在这里有一个很大的问题。 BIRT提供的图表不适合我的报告,所以我想也许我可以根据我的xml文件中的数据生成一些图表(使用外部应用程序),将图表保存到文件中,最后将这些文件动态加载到我的报告中。这对第一页上的图表非常简单。然而,接下来的页面需要有自己的图表,我无法找到将相应图像包含到下一页的正确方法。 所以这里是我的问题:如何在BIRT报告中绘制图形或自定义设计的图表?

  1. 这可能以某种方式创建自定义desinged图表?如果是的话,该怎么做?以及如何将图表添加到我的报告的2,3页...页面中?
  2. 我有我的XML文件中需要的所有数据,这是可能的绘制图形在飞行时使用一些JavaScript,而报告正在创建?我的意思是通过使用数据,我只是绘制自己定制的图表(这是一个非常简单的图表,并没有花哨的东西)
  3. 如果我选择外部创建图表并将它们动态添加到报表的解决方案,我可以将这些图像动态地添加到我的报告的2,3页...(每个页面都有自己的图表!)会使用多个母版页帮助我吗?
+0

BIRT有多种可用的图表类型(特别是更新版本的BIRT)。你想展示哪些类型的图表,以及您使用的是哪种版本的BIRT? –

+0

BIRT不具备的线性测量图上的一个非常简单的版本 – Hossein

+0

即使您不能使用测量仪图表,也可以使用条形图或折线图生成等效的输出 - 两者都有一个“翻转轴”选项,可让您交换x和y轴。 –

回答

0

您可以使用D3.js或Flash定制设计图,并添加你需要他们在BIRT设计4.x的分页符在BIRT报告中有关于使用Flash的在线教程。

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

如果你想使用D3.js,

  • 添加head.js( “http://d3js.org/d3.v3.js”);报告设计的ClientScript> clientInitialize脚本
  • 脚本添加到您的数据集创建:
    • 数组如myArray的=新的java.util.ArrayList(); at beforeOpen
    • 脚本使用数据集的onFetch事件填充该数组,例如myArray.add(“[''+ row [”date“] +”','“+ row [”sales“] + “']”);
    • 将数组复制到全局变量(例如reportContext.setPersistentGlobalVariable(“myArray”,myArray))的脚本;
  • 添加文本项目报表布局,您:
    • 抓住全局变量,例如:VAR数据= reportContext.getPersistentGlobalVariable( “myarray的”);
    • 使用d3.js JavaScript使用来自全局变量的数据来构建所需的SVG可视化。

如果你到商业BIRT设计专业中,包括Flash对象,你还可以得到HTML5图表,你可以使用highcharts.org API的JavaScript编辑的highcharts库。

相关问题