我使用iReport工具设计了一个报告,并将其上传到JasperReports Server到我的本地服务器PC中。在iReport和JasperReports Server中,报告运行良好,但是当我从Yii 1调用报告时,它不起作用。它返回的是空白页而不是数据。我无法找出问题所在。
这是我的 yii 1 代码(在 Yii 中使用 YiiJasper 扩展):
$re = new JasperReport('/entsol/Reports/AcAccounts',
JasperReport::FORMAT_PDF, array(
'pAccountTile' => $pAccountTile,
'pBranch' => $pBranch,
'pFromDate' => $pFromDate,
'pToDate'=>$pToDate,
)
);
$re->exec();
echo $re->reportToPDF(); //All pages
通过使用上面的代码,我得到了空白页而不是数据。
我如何解决我的问题?
要使用 yii-jasper 扩展,您需要 JasperServer <= 5.5.x,PHP <= 5.3 或 PHP>= 5.4.9 和 Yii>= 1.14
确保所有报告参数:两个(报告和 Yii 调用)中的数字相同,正确/相同的顺序,正确的值。对于值,请注意 IReports 中的 Java 数据类型(Integer, BigInteger, Character, String, Date
等)以及它们与 PHP 值的等效性。此外,参数名称在两者上必须相等(确切名称,大写和小写)。
JasperServer 日志文件可以为您提供有关运行报告的现有问题的一些反馈。在JasperServer安装目录(/your-jasperserver-install-path/apache-tomcat/webapps/jasperserver/WEB-INF/logs
)中找到它。
如果仍然存在,请尝试直接在 jasperserver 中创建数据源,然后使用选项"data source from repository
"再次上传报告,而不是任何其他类型的数据源。要在存储库中创建数据源,请登录 JasperServer,找到Data sources
文件夹,右键单击并创建数据源。