我需要在我的应用程序中集成BIRT图表引擎。 Birt可以生成图像作为图表输出。我的想法是生成此图表图像,然后将其发送到客户端进行显示。也许在服务器上的RemoteServiceServlet中。这是最好的方法吗?或者还有其他技术可以做到吗?
提前感谢,
答案 0 :(得分:0)
生成“报告”的最强大的方法,是图像,PDF或浏览器响应用户操作需要下载的任何字节序列,是使客户端的RPC调用返回立即使用URL或令牌,稍后将提供报告内容。稍后,在这种情况下,只是意味着需要后续请求来检索报告的内容,但该模式可以很好地扩展到可能需要花费大量时间来创建报告的情况。
Image
窗口小部件,可能使用网址格式http://example.com/getReportImage/<Generated Token>
。在报告完成之前,此请求可能会暂停。如果报告标识符的选择是报告参数的函数并且具有稳定的语义,则可以轻松地获得工作的缓存和重复数据删除。
至于使用data:
网址的选择,只有当您的用户使用现代浏览器并且图片尺寸很小时才有意义。这不适用于一般情况。
答案 1 :(得分:0)
让客户端发送RPC并让服务器执行所有BIRT渲染。服务器完成后,将生成的HTML(或图像)流回客户端。见http://www.birt-exchange.org/org/forum/index.php/topic/15515-build-birt-report-engine-with-gwt/
myServiceImpl.getReport(
"monthlySales",
"2013-02-01",
"includeGST",
new AsyncCallback<String>() {
public void onSuccess(String serverGeneratedBirtHtml) {
myVerticalPanel.add(new HTML(serverGeneratedBirtHtml));
}
}
);