哪些web开发框架本机支持JasperReports?
以下列表格为例:
<form name="report" method="post">
<input type="hidden" name="REPORT_PATH" value="reports/Names" />
<input type="hidden" name="REPORT_FILE" value="List" />
<input type="hidden" name="REPORT_FORMAT" value="pdf" />
<input type="hidden" name="REPORT_EMBED" value="false" />
Name: <input type="text" name="report_Name" value="" /><br />
Date: <input type="text" name="report_Date" value="" /><br />
<input type="submit" name="View" value="View" />
</form>该框架将把report_参数传递给JasperReports,后者反过来运行reports/Names/List.jasper,然后向浏览器发送一个PDF附件。
一般而言,该框架可以:
REPORT_变量)report_变量)我不关心集成是如何工作的技术细节,只要它是简单的。
发布于 2010-05-09 17:40:10
PHP/Java桥
<?php
checkjavaExtension();
function report_parse_post_parameters() {
// Automatically extract report parameters (data types converted in report).
//
$params = new java('java.util.HashMap');
// Get the names of the form elements that contain lists of comma-separated
// values.
//
$reportArrays = explode( ',', $_POST['report_Array'] );
// Convert each of the comma-separated values into a list of values.
//
foreach( $reportArrays as $reportArray ) {
$arrays = array_filter( explode( ',', $_POST[ $reportArray ] ) );
// Map the values to a java.util.ArrayList.
//
$arrayList = new java( 'java.util.ArrayList' );
foreach( $arrays as $value ) {
$arrayList->add( $value );
}
// Pass the list of values into the report (without the "report_" prefix).
//
$params->put( substr( $reportArray, 7 ), $arrayList );
// Remove the value from the POST array.
//
unset( $_POST[ $reportArray ] );
}
// Don't pass the list of array names into the report.
//
unset( $_POST['report_Array'] );
// Pass the remaining POST "report_" variables as report parameters.
//
foreach( $_POST as $name => $value ) {
if( strpos( $name, "report_" ) === 0 ) {
$params->put( substr( $name, 7 ), $value );
}
}
return $params;
}
function report_execute( $report ) {
$user = 'username';
$password = 'password';
$report = realpath("/home/reports/$report.jasper");
// Load the MySQL database driver.
//
java( 'java.lang.Class' )->forName( 'com.mysql.jdbc.Driver' );
// Attempt a database connection.
//
$conn = java( 'java.sql.DriverManager' )->getConnection(
"jdbc:mysql://localhost:3306/database?user=$user&password=$password" );
$params = report_parse_post_parameters();
// Use the fill manager to produce the report.
//
$fm = java('net.sf.jasperreports.engine.JasperFillManager');
$pm = $fm->fillReport($report, $params, $conn);
header('Cache-Control: no-cache private');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment, filename=report.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
java_set_file_encoding("ISO-8859-1");
$em = java('net.sf.jasperreports.engine.JasperExportManager');
$result = $em->exportReportToPdf($pm);
header('Content-Length: ' . strlen( $result ) );
echo $result;
}
?>发布于 2010-05-02 16:19:06
Spring框架支持JasperReports。
发布于 2010-05-04 08:02:08
试试动态茉莉。
当我开始用JSF制作JasperReports时,我没有找到符合我所要的任何框架。有一点,我想开源我制造的引擎(公司拒绝了)。
无论如何,我的想法是如此简单,我构建了一个通用Servlet来接收所有类型的报告操作,然后分派到特定的工厂。大部分工作都在Javascript中。
无论如何,尝试DJ,如果它失败了,我会很高兴解释更多关于我自己的引擎。
https://stackoverflow.com/questions/2754067
复制相似问题