如何在jasper报告中显示特定数据?

时间:2016-07-21 05:49:20

标签: php postgresql jasper-reports

我是Jasper报告的初学者,我创建了一个包含超过一百万个数据的jasper报告表。我想根据用户的需要显示jasper报告。我在PostgreSQL中有一个名为“Banke”的数据库,名为Arsenic_Test.i的表想让我的用户选择数据,例如我有3个选项供用户使用选择“数值为X <50,X = 50或X> 50的数据。怎么做?

1 个答案:

答案 0 :(得分:1)

您需要在查询中使用参数。 例如,您的查询可能看起来像

SELECT * FROM some_table WHERE X < $P{value_lower}

当然,你必须准备更复杂的查询。我认为您需要3个参数 - 一个用于<,另一个用于=,最后一个用于>并检查它们是否在cluase中不为空(因为您无法提供带参数的操作,但只是值)。例如,你可以使用这样的东西

SELECT * 
FROM some_table 
WHERE ($P{value_lower} is not null and X < $P{value_lower})
OR ($P{value_equal} is not null and X = $P{value_equal})
OR ($P{value_higher} is not null and X > $P{value_higher})

如果您需要有关使用参数的更多信息,请查看此tutorial,或者如果您想了解有关连接JR与您的网站的更多信息,那么您应该查看http://community.jaspersoft.com/wiki/php-client-sample-code(特别是在报告服务部分)。例如,如果您想知道如何提供输入,那么您应该看一下这个例子

$controls = array(
   'Country_multi_select' => array('USA', 'Mexico'),
   'Cascading_state_multi_select' => array('CA', 'OR')
   );


$report = $c->reportService()->runReport('/reports/samples/Cascading_multi_select_report', 'html', null, null, $controls);

echo $report;