Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JasePrepReports'中设置报表的区域设置;来自PHP的报告_Java_Php_Jasper Reports - Fatal编程技术网

Java 如何在JasePrepReports'中设置报表的区域设置;来自PHP的报告

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

我正在使用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_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)它破坏了我的代码
它破坏了我的代码
-这是什么意思?你有错误吗?