如何在BIRT中创建雷达图?(这是我在帖子中所做的例子)



我正试图以编程方式在我的BIRT应用程序中创建一个雷达图。似乎BIRT缺乏文档,所以我正在努力使用它(我想知道为什么它在如此少的文档下如此受欢迎)。

所以我的问题是,我不知道API和操作的顺序,我必须调用它有一个完全集成的图表。我想做的就是从数据库中获取一些数据,并在雷达图中显示它们(如这些:如何规范化雷达图的统计数据)

现在,我创建了一个这样的Servlet:

public class ChartRenderingServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private ChartEngine chartEngine = null;
    private Chart chart = null;
    private IDeviceRenderer iDeviceRenderer = null;
    private IDisplayServer iDisplayServer = null;
    private IGenerator iGenerator = null;
    private String fontName = "Arial";
    private float size = 10;
    private boolean bBold = false;
    private boolean bItalic = false;
    private ColorDefinition cd = ColorDefinitionImpl.BLACK();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ChartRenderingServlet() {
        super();
        // Starting platform
        PlatformConfig platformConfig = new PlatformConfig();
        platformConfig.setProperty("STANDALONE", true);
        // Creating chart Engine
        chartEngine = ChartEngine.instance(platformConfig);
        iGenerator = chartEngine.getGenerator();
        try {
            iDeviceRenderer = chartEngine.getRenderer("dv.PNG");
            iDisplayServer = iDeviceRenderer.getDisplayServer();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        RunTimeContext context;
        chart = ChartWithoutAxesImpl.create();
        chart.setType("RADAR");
        try {
            // PREPARE PHASE
            context = Generator.instance().prepare(chart, null, null, ULocale.getDefault());
            // BIND PHASE
            //Long id = Long.valueOf(request.getParameter("id"));
            NumberDataSet orthoValues = NumberDataSetImpl.create(new double[] {25, 35, 15, 5, 20});
            RadarSeries radarSeries = RadarSeriesImpl.create();
            radarSeries.setDataSet(orthoValues);
            // RENDER PHASE
            GeneratedChartState generatedChartState = iGenerator.build(iDisplayServer, chart, null, null, context);
            iGenerator.render(iDeviceRenderer, generatedChartState);
        } catch (ChartException e) {
            e.printStackTrace();
        }
    }
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
}

任何帮助都将非常感激,因为我甚至不知道这是否正确。

谢谢,

没关系,

在开发BIRT报告驱动的应用程序时,在编码时尝试采用更高的抽象级别。我的意思是,没有必要针对低级API编写代码:只需使用rptdesign文件并利用Birt Runtime API直接编写应用程序。如果我有什么建议的话,我会说使用可用的主要API,也就是报告引擎API,它会加快你的开发。

很酷的是,你有很多可用的文档,因为它是开发基于birt的应用程序的最常见的方式。

tchusss…

相关内容

  • 没有找到相关文章

最新更新