PHPJasperXML 无法在 php 中打印 table 数据
PHPJasperXML Unable to print table data in php
我正在使用 PHPJasperXML 生成和显示报告
首先我使用 jaspersoft Studio 设计报表
其次,我在 php 中使用从 jasper 生成的 jrxml 文件来显示报告。
当我在 jasper studio 中预览报告时,一切正常,但问题是当我尝试显示报告表单时 php,报告仅使用主报告中的数据生成,未生成 table 的数据。
当我从 jaspersoft studio 预览报告时,我得到了这个预期结果
但是当我尝试 运行 来自 PHP 的相同报告时:
它向我显示了一个没有 table 数据的列表。
jaspersoft studio 中报表设计使用的代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="eleve_admis" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="466e7fc7-2c42-45cc-9626-1e50658cbee4">
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<style name="Table_TH" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<style name="Table_CH" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<subDataset name="eleve_admis_dataset" uuid="3df422c8-c3c8-4109-ba68-e0d8d87701b2">
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<parameter name="class_id_table" class="java.lang.String"/>
<queryString language="SQL">
<![CDATA[SELECT CONCAT(' ',student_lastname, ' ', ' ' , student_middlename, ' ', student_firstname) as Fullname, DATE_FORMAT(student_date_of_birth, "%d/%c/%Y") as dob, student_sex,
IF(student_sex = "Femme", "F", "M") as sex
FROM student as S, student_class as C
WHERE S.stu_class = C.class_id AND C.class_id = "$P{class_id_table}"]]>
</queryString>
<field name="Fullname" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="Fullname"/>
</field>
<field name="dob" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="dob"/>
</field>
<field name="student_sex" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="student_sex"/>
<property name="com.jaspersoft.studio.field.tree.path" value="student"/>
</field>
<field name="sex" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="sex"/>
</field>
</subDataset>
<parameter name="class_id" class="java.lang.String"/>
<queryString language="SQL">
<![CDATA[select CONCAT("Lisf For", ' ', class_no, ' ',class_description ) as classe, CONCAT("DATE: ", DATE_FORMAT(CURDATE(), "%d/%c/%Y")) as date
FROM student_class
WHERE class_id = "$P{class_id}"]]>
</queryString>
<field name="classe" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="classe"/>
</field>
<field name="date" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="date"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="98" splitType="Stretch">
<textField>
<reportElement x="14" y="50" width="535" height="40" uuid="4e2a3adb-6a43-4b28-8669-17c9f81a6486"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="15" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{classe}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="360" y="0" width="190" height="30" uuid="ba6e5b18-4b85-4e4d-be68-338316e2b427"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="213" splitType="Stretch">
<componentElement>
<reportElement x="90" y="10" width="383" height="80" uuid="a4ea31f7-b6a9-4be7-b304-72afa82cba5f">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
<property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="eleve_admis_dataset" uuid="07815e66-5865-4839-ad1d-27cade45b0eb">
<datasetParameter name="class_id_table">
<datasetParameterExpression><![CDATA[$P{class_id}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:column width="200" uuid="77d235be-53cc-4ba2-9f46-6f40cc3c38dd">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="200" height="30" uuid="a7dbdc1d-52be-49f4-a402-bb0afcb02aa2"/>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Nom ]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="200" height="50" uuid="30821ecb-5df5-43a3-8ca7-13563d10487a"/>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{Fullname}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="90" uuid="5caeec2a-89eb-4a8f-9ac0-6f87897919fd">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="90" height="30" uuid="789641df-5783-471b-a757-128097c085ab"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Age]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="90" height="50" uuid="2d2780b8-8120-4b16-872a-60134a5144f5"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{dob}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="93" uuid="3f04649c-337e-4da6-a915-f010d97d093f">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="93" height="30" uuid="78655fb0-fe8a-4f0b-866e-239b0392f7b3"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Sexe]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="93" height="50" uuid="8550aef2-10d9-408c-9b17-6684eb7bf77d"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{sex}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
</jasperReport>
显示报告的PHP代码是:
<?php
require_once("../private/initialize.php");
include_once('phpjasperxml_0.9d/class/tcpdf/tcpdf.php');
include_once("phpjasperxml_0.9d/class/PHPJasperXML.inc.php"); // PHPJasperXML
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
$class_id = (int)$_GET['class'];
$params = array();
$params['class_id'] = $class_id;
$params['class_id_table'] = $class_id;
$PHPJasperXML = new PHPJasperXML();
//$PHPJasperXML->debugsql=true;
$PHPJasperXML->arrayParameter = $params;
$PHPJasperXML->load_xml_file("reports/eleve_admis.jrxml"); // Name of the reports file
$PHPJasperXML->transferDBtoArray($servername,$username, $password, $database);
$PHPJasperXML->outpage("I");
?>
对于此事,我将不胜感激。
或者对其他开源库使用 PHP
生成报告的任何建议
如果您使用 php 7,它将不起作用。
mysql_connect 此扩展已在 PHP 5.5.0 中弃用,并在 PHP 7.0.0 中删除
欲了解更多信息,请访问 http://php.net/manual/en/function.mysql-query.php
我正在使用 PHPJasperXML 生成和显示报告
首先我使用 jaspersoft Studio 设计报表
其次,我在 php 中使用从 jasper 生成的 jrxml 文件来显示报告。
当我在 jasper studio 中预览报告时,一切正常,但问题是当我尝试显示报告表单时 php,报告仅使用主报告中的数据生成,未生成 table 的数据。
当我从 jaspersoft studio 预览报告时,我得到了这个预期结果
但是当我尝试 运行 来自 PHP 的相同报告时:
它向我显示了一个没有 table 数据的列表。
jaspersoft studio 中报表设计使用的代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="eleve_admis" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="466e7fc7-2c42-45cc-9626-1e50658cbee4">
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<style name="Table_TH" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<style name="Table_CH" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#828282"/>
<topPen lineWidth="0.5" lineColor="#828282"/>
<leftPen lineWidth="0.5" lineColor="#828282"/>
<bottomPen lineWidth="0.5" lineColor="#828282"/>
<rightPen lineWidth="0.5" lineColor="#828282"/>
</box>
</style>
<subDataset name="eleve_admis_dataset" uuid="3df422c8-c3c8-4109-ba68-e0d8d87701b2">
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<parameter name="class_id_table" class="java.lang.String"/>
<queryString language="SQL">
<![CDATA[SELECT CONCAT(' ',student_lastname, ' ', ' ' , student_middlename, ' ', student_firstname) as Fullname, DATE_FORMAT(student_date_of_birth, "%d/%c/%Y") as dob, student_sex,
IF(student_sex = "Femme", "F", "M") as sex
FROM student as S, student_class as C
WHERE S.stu_class = C.class_id AND C.class_id = "$P{class_id_table}"]]>
</queryString>
<field name="Fullname" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="Fullname"/>
</field>
<field name="dob" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="dob"/>
</field>
<field name="student_sex" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="student_sex"/>
<property name="com.jaspersoft.studio.field.tree.path" value="student"/>
</field>
<field name="sex" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="sex"/>
</field>
</subDataset>
<parameter name="class_id" class="java.lang.String"/>
<queryString language="SQL">
<![CDATA[select CONCAT("Lisf For", ' ', class_no, ' ',class_description ) as classe, CONCAT("DATE: ", DATE_FORMAT(CURDATE(), "%d/%c/%Y")) as date
FROM student_class
WHERE class_id = "$P{class_id}"]]>
</queryString>
<field name="classe" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="classe"/>
</field>
<field name="date" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="date"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="98" splitType="Stretch">
<textField>
<reportElement x="14" y="50" width="535" height="40" uuid="4e2a3adb-6a43-4b28-8669-17c9f81a6486"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="15" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{classe}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="360" y="0" width="190" height="30" uuid="ba6e5b18-4b85-4e4d-be68-338316e2b427"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="213" splitType="Stretch">
<componentElement>
<reportElement x="90" y="10" width="383" height="80" uuid="a4ea31f7-b6a9-4be7-b304-72afa82cba5f">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
<property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="eleve_admis_dataset" uuid="07815e66-5865-4839-ad1d-27cade45b0eb">
<datasetParameter name="class_id_table">
<datasetParameterExpression><![CDATA[$P{class_id}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:column width="200" uuid="77d235be-53cc-4ba2-9f46-6f40cc3c38dd">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="200" height="30" uuid="a7dbdc1d-52be-49f4-a402-bb0afcb02aa2"/>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Nom ]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="200" height="50" uuid="30821ecb-5df5-43a3-8ca7-13563d10487a"/>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{Fullname}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="90" uuid="5caeec2a-89eb-4a8f-9ac0-6f87897919fd">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="90" height="30" uuid="789641df-5783-471b-a757-128097c085ab"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Age]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="90" height="50" uuid="2d2780b8-8120-4b16-872a-60134a5144f5"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{dob}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="93" uuid="3f04649c-337e-4da6-a915-f010d97d093f">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="93" height="30" uuid="78655fb0-fe8a-4f0b-866e-239b0392f7b3"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="12" isBold="true"/>
</textElement>
<text><![CDATA[ Sexe]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="50">
<textField>
<reportElement x="0" y="0" width="93" height="50" uuid="8550aef2-10d9-408c-9b17-6684eb7bf77d"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="trebuchet
" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{sex}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
</jasperReport>
显示报告的PHP代码是:
<?php
require_once("../private/initialize.php");
include_once('phpjasperxml_0.9d/class/tcpdf/tcpdf.php');
include_once("phpjasperxml_0.9d/class/PHPJasperXML.inc.php"); // PHPJasperXML
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
$class_id = (int)$_GET['class'];
$params = array();
$params['class_id'] = $class_id;
$params['class_id_table'] = $class_id;
$PHPJasperXML = new PHPJasperXML();
//$PHPJasperXML->debugsql=true;
$PHPJasperXML->arrayParameter = $params;
$PHPJasperXML->load_xml_file("reports/eleve_admis.jrxml"); // Name of the reports file
$PHPJasperXML->transferDBtoArray($servername,$username, $password, $database);
$PHPJasperXML->outpage("I");
?>
对于此事,我将不胜感激。 或者对其他开源库使用 PHP
生成报告的任何建议如果您使用 php 7,它将不起作用。 mysql_connect 此扩展已在 PHP 5.5.0 中弃用,并在 PHP 7.0.0 中删除 欲了解更多信息,请访问 http://php.net/manual/en/function.mysql-query.php