如何在没有数据源的情况下显示jasperreport。该报告假设从Java应用程序接收参数并显示它们。
答案 0 :(得分:10)
我这样做的方法是仍然将所有文本字段等放入详细信息区域,然后使用new JREmptyDataSource(1)
作为数据源。即:
filledReport = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource(1));
将值1
传递给构造函数将在数据源中创建单个虚拟记录,因此详细信息区域仅打印一次。我更喜欢这种方法,因为它意味着报告模板更类似于普通的报告模板。另一种方法是拥有一个完全空的数据源,然后将所有内容放入不同的频段(例如列标题)。
答案 1 :(得分:0)
您可以使用 Visualize.js 概念从Jasper服务器调用Jasper报告到您的项目/网站。在这种情况下,您可以将参数从应用程序传递到jasperreports和显示它。
http://community.jaspersoft.com/project/visualizejs
包含Visualize.js文件
<script src="http:/(Your Jasperserver Domain):8080/jasperserver-pro/bif/visualize.js"></script>
<div id="container" class="fill"></div>
<div id="overlay" class="fill">
<div id="ajax-icon" class="fill">
<i class="icon-spinner icon-spin icon-3x"></i>
<p>Loading...</p>
</div>
</div>
Visualize.js部分
BIF.init({
domain: 'http:/(Your Jasperserver Domain)/jasperserver-pro/',
username: 'jasperadmin',
password: 'jasperadmin',
mods: ['reports']
},function(Reports) {
mReport = Reports.open({
uri:'/public/Reports/Report1',
container: document.getElementById('container'),
inputParameters: {
Id:'037e6b40-88e4-11e3-80d4-2673d3ec42cd',
Range:100,
ProfileId:'037des70-88e4-11e3-80d4-2673d3ec42cd',
Theme:'test'
},
onReportFinished: function() {
$('#overlay').hide();
}
});
});
希望这会帮助你!!!!