Java 如何在JasePrepReports'中设置报表的区域设置;来自PHP的报告
我正在使用JasperReports库以及php、php/Java桥和Tomcat8,以便能够从php代码运行JasperReports报告 实际上,我的工作代码是:Java 如何在JasePrepReports'中设置报表的区域设置;来自PHP的报告,java,php,jasper-reports,Java,Php,Jasper Reports,我正在使用JasperReports库以及php、php/Java桥和Tomcat8,以便能够从php代码运行JasperReports报告 实际上,我的工作代码是: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); require_once("http://localhost:8080/JavaBridge/java/Java.inc"); if ( ! function_exists('run_repo
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
if ( ! function_exists('run_report')) {
function run_report($report_name = '') {
//---------------------------------------------------------------
// Esegue un report di Jasper Report
// $report_name è il nome del file .jwxml senza estensione
//---------------------------------------------------------------
try {
$jasperxml = new Java("net.sf.jasperreports.engine.xml.JRXmlLoader");
$jasperDesign = $jasperxml->load(realpath("./assets")."/".$report_name.".jrxml");
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport($jasperDesign);
} catch (JavaException $ex) {
echo $ex;
}
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$params = new Java("java.util.HashMap");
$params->put("id_record", 88);
$class = new JavaClass("java.lang.Class");
$class->forName("com.mysql.jdbc.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$locale = new Java("java.util.Locale");
$conn = $driverManager->getConnection("jdbc:mysql://myhost:3306/mydb?zeroDateTimeBehavior=convertToNull", "myuser", "mypassword");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exporter = new java("net.sf.jasperreports.engine.JRExporter");
$outputPath = "............outputfatt88.pdf";
$exporter = new java("net.sf.jasperreports.engine.export.JRPdfExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->REPORT_LOCALE, $locale);
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=outputfatt88.pdf");
$exporter->exportReport();
readfile($outputPath);
unlink($outputPath);
}
我只删除了一些关于目录和数据库连接的信息
上面的代码正在运行,但现在我需要设置REPORT_LOCALE以将其设置为意大利语
我进行了一些搜索,在Java中找到了以下代码:
我需要将其转换为php,以便插入实际代码,并需要将其更改为“意大利语”值。
我尝试了以下方法,但没有成功:
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
if ( ! function_exists('run_report')) {
function run_report($report_name = '') {
//---------------------------------------------------------------
// Esegue un report di Jasper Report
// $report_name è il nome del file .jwxml senza estensione
//---------------------------------------------------------------
try {
$jasperxml = new Java("net.sf.jasperreports.engine.xml.JRXmlLoader");
$jasperDesign = $jasperxml->load(realpath("./assets")."/".$report_name.".jrxml");
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport($jasperDesign);
} catch (JavaException $ex) {
echo $ex;
}
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$params = new Java("java.util.HashMap");
$params->put("id_record", 88);
$class = new JavaClass("java.lang.Class");
$class->forName("com.mysql.jdbc.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$locale = new Java("java.util.Locale", "en", "US");
//db username and password
$conn = $driverManager->getConnection("jdbc:mysql://myhost:3306/mydb?zeroDateTimeBehavior=convertToNull", "myuser", "mypassword");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exporter = new java("net.sf.jasperreports.engine.JRExporter");
$outputPath = "/................./outputfatt88.pdf";
$exporter = new java("net.sf.jasperreports.engine.export.JRPdfExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->REPORT_LOCALE, $locale);
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=outputfatt88.pdf");
$exporter->exportReport();
readfile($outputPath);
unlink($outputPath);
}
}
有人能帮我吗?您必须创建与目标国家/地区对应的区域设置:
$locale = new Java("java.util.Locale", "it", "IT");
然后,如前所述,将区域设置添加到报告中:
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->REPORT_LOCALE, $locale);
您必须创建与目标国家/地区对应的区域设置:
$locale = new Java("java.util.Locale", "it", "IT");
然后,如前所述,将区域设置添加到报告中:
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->REPORT_LOCALE, $locale);
$locale=newjava(“Java.util.locale”、“en”、“US”)代码>-您是否尝试过此代码?你应该使用意大利语言环境(我从你的帖子中了解到)-“it_it”是的;正如您在我的代码中看到的,我有$locale=newjava(“Java.util.locale”、“en”、“US”)代码>,但当我同时添加这一行时,$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->REPORT\u LOCALE,$LOCALE)代码>它破坏了我的代码它破坏了我的代码
-这是什么意思?您收到错误了吗?$locale=newjava(“Java.util.locale”、“en”、“US”)代码>-您是否尝试过此代码?你应该使用意大利语言环境(我从你的帖子中了解到)-“it_it”是的;正如您在我的代码中看到的,我有$locale=newjava(“Java.util.locale”、“en”、“US”)代码>,但当我同时添加这一行时,$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->REPORT\u LOCALE,$LOCALE)代码>它破坏了我的代码它破坏了我的代码
-这是什么意思?你有错误吗?