Sub report does not appear when running from within the system

Asked

Viewed 1,602 times

1

Already search in various places, sites and the like and do not find a way the sub report appears when running the program. Follow the codes, if you need anything else, let me know.

Leading

<?xml version="1.0" encoding="UTF-8"?>
<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="report2" language="groovy" columnCount="2" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="401" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="04e67a5f-9121-468f-a228-62c2dcf438c2">
    <property name="ireport.zoom" value="1.6105100000000014"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="144"/>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["/"]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[select clientes.cli_nome,
    clientes.cli_endereco ||', ' ||clientes.cli_bairro || '. ' || clientes.cli_cidade || '-' || clientes.cli_estado as endereco,
    clientes.cli_cep,
    clientes.cli_telefone,
    clientes.cli_cnpj_cpf,
    clientes.cli_inscricao_est,
    pedidos.ped_id,
    pedidos.ped_pagamento,
    pedidos.ped_pedido,
    to_char(pedidos.ped_vencimento,'dd/mm/yyyy') as vencimento,
    to_char(pedidos.ped_data,'dd/mm/yyyy') as data,
    produtos.pro_nome || ' - ' || to_char(produtos.pro_peso,'09D90') || ' Kg' as produto,
    itens.item_quantidade,
    itens.item_valor,
    to_char(produtos.pro_peso*item_quantidade,'09D90') || 'Kg' as peso_total,
    to_char((itens.item_valor * itens.item_quantidade) ,'R$999G990D99') as total_parcial
    from clientes inner join pedidos on clientes.cli_id = pedidos.fk_cliente
        inner join itens on pedidos.ped_id = itens.fk_pedido
        inner join produtos on itens.fk_produto = produtos.pro_id
        inner join fornecedores on produtos.fk_fornecedor = fornecedores.for_id
    group by clientes.cli_nome,
        clientes.cli_endereco,
        clientes.cli_bairro,
        clientes.cli_cidade,
        clientes.cli_estado,
        clientes.cli_cep,
        clientes.cli_telefone,
        clientes.cli_cnpj_cpf,
        clientes.cli_inscricao_est,
        pedidos.ped_id,
        pedidos.ped_pagamento,
        pedidos.ped_vencimento,
        pedidos.ped_data,
        pedidos.ped_pedido,
        produtos.pro_nome,
        produtos.pro_peso,
        itens.item_quantidade,
        itens.item_valor,
        fornecedores.for_frete
    order by pedidos.ped_id;]]>
    </queryString>
    <field name="cli_nome" class="java.lang.String"/>
    <field name="endereco" class="java.lang.String"/>
    <field name="cli_cep" class="java.lang.String"/>
    <field name="cli_telefone" class="java.lang.String"/>
    <field name="cli_cnpj_cpf" class="java.lang.String"/>
    <field name="cli_inscricao_est" class="java.lang.String"/>
    <field name="ped_id" class="java.lang.Long"/>
    <field name="ped_pagamento" class="java.lang.String"/>
    <field name="ped_pedido" class="java.lang.String"/>
    <field name="vencimento" class="java.lang.String"/>
    <field name="data" class="java.lang.String"/>
    <field name="produto" class="java.lang.String"/>
    <field name="item_quantidade" class="java.lang.Integer"/>
    <field name="item_valor" class="java.lang.String"/>
    <field name="total_parcial" class="java.lang.String"/>
    <group name="pedidos" isStartNewColumn="true" minHeightToStartNewPage="1">
        <groupExpression><![CDATA[$F{ped_id}]]></groupExpression>
        <groupHeader>
            <band height="202">
                <staticText>
                    <reportElement uuid="090b1b2e-691b-4087-814f-a9719710ddf6" x="0" y="0" width="39" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Cliente:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="4f1e744d-c261-440b-a1b0-8dcca9f708c2" x="50" y="0" width="319" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{cli_nome}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="f67f5f22-57b5-4414-b3e2-d167574933b6" x="0" y="20" width="50" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Endereço:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="6b8ec808-2aed-460a-bbce-8a99c5984e51" x="50" y="20" width="319" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{endereco}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="9a871df8-d0cb-445b-9d7f-b0da28f87b9c" x="0" y="47" width="28" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[CEP:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="dd23b706-61da-48b1-a8bd-6ff0ac90522b" x="28" y="47" width="69" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{cli_cep}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="706adb91-b10c-4365-86f0-2af1ff661f8b" x="108" y="47" width="50" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Telefone:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="6e2d7f15-3dd6-48c1-9b73-2fbff7cea64a" x="158" y="47" width="91" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{cli_telefone}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="863febee-4933-403f-9779-15927ff266b5" x="252" y="47" width="83" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Tipo de Pedido:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="d0c6c2e4-1680-42f0-9f3f-7e4a7bc5661d" x="335" y="47" width="32" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{ped_pedido}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="10582492-b12c-496c-a83f-dafed4726ee9" x="0" y="73" width="60" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[CPF/CNPJ:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="0341bc77-16fc-41b8-b430-fde280cd8571" x="60" y="73" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{cli_cnpj_cpf}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="51693097-ef8d-458d-bde8-571a0348b64c" x="189" y="73" width="91" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Inscrição estadual:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="cc27ca8e-1442-46b4-8c63-79866062da2b" x="280" y="73" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{cli_inscricao_est}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="201d920b-2479-4f30-a232-aa6eb6468bb2" x="0" y="102" width="108" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Forma de pagamento:]]></text>
                </staticText>
                <staticText>
                    <reportElement uuid="29e76845-f4f9-4569-976d-021766025320" x="208" y="102" width="72" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Vencimento:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="505c3d68-9cf5-4856-851d-a3c0771ea1e4" x="108" y="102" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{ped_pagamento}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="d140d2d6-3990-4b5b-9a69-2972fcdb6451" x="0" y="129" width="28" height="20"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Data:]]></text>
                </staticText>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="115f95b2-cce5-4bfa-bad9-ebf60dad2b02" x="28" y="129" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{data}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement uuid="6b7193d1-55b6-4b48-8104-a0622653a30b" x="167" y="149" width="82" height="20"/>
                    <textElement textAlignment="Center">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Itens do Pedido]]></text>
                </staticText>
                <staticText>
                    <reportElement uuid="65939aa9-ff63-45d7-a1c9-fe7491e3ee17" x="8" y="175" width="100" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Produto]]></text>
                </staticText>
                <staticText>
                    <reportElement uuid="0153d5c1-8a60-444d-91bf-7751190f036d" x="175" y="175" width="55" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Qnt]]></text>
                </staticText>
                <staticText>
                    <reportElement uuid="5af9e9c9-815c-43eb-b301-426134a85abc" x="230" y="175" width="73" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Valor]]></text>
                </staticText>
                <staticText>
                    <reportElement uuid="69ca5e4e-d2dd-4b09-af34-2a04ae716e16" x="302" y="175" width="78" height="20"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[SubTotal]]></text>
                </staticText>
                <line>
                    <reportElement uuid="dc76c2bd-2f86-4323-91f4-e4eb055d8040" x="6" y="194" width="374" height="1"/>
                </line>
                <textField isBlankWhenNull="true">
                    <reportElement uuid="03fec0f2-b9e6-4b00-bf2b-5afa2ce4478a" x="280" y="102" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{vencimento}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement uuid="3e73ddee-56e2-4d8d-99d5-0114b198a29d" mode="Opaque" x="369" y="0" width="31" height="20" forecolor="#FFFFFF"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[]]></textFieldExpression>
                </textField>
            </band>
        </groupHeader>
        <groupFooter>
            <band height="43">
                <line>
                    <reportElement uuid="82ff77bf-be41-484a-bbd5-9a16f0ef37ae" x="6" y="0" width="374" height="1"/>
                </line>
                <subreport isUsingCache="true">
                    <reportElement uuid="1d0fa4e3-b6f9-4a00-800c-1d22cad54f4f" x="8" y="0" width="369" height="22"/>
                    <subreportParameter name="idPedido">
                        <subreportParameterExpression><![CDATA[$F{ped_id}]]></subreportParameterExpression>
                    </subreportParameter>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA[getClass().getResource($P{SUBREPORT_DIR} + "pedidoMeiaPagina_TotalPesoValor.jasper")]]></subreportExpression>
                </subreport>
            </band>
        </groupFooter>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="30" splitType="Stretch"/>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField isBlankWhenNull="true">
                <reportElement uuid="3d686442-9407-42dd-82fb-7fb16ebaa426" x="229" y="0" width="73" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{item_valor}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="true">
                <reportElement uuid="87661932-aba9-4646-8c93-b05e20de638a" x="175" y="0" width="54" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{item_quantidade}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="true">
                <reportElement uuid="7b58e5fe-fc77-44b3-b828-95c0f7db8694" x="302" y="0" width="78" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{total_parcial}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="true">
                <reportElement uuid="19c6795a-459a-4893-9e06-618a8a02f708" x="6" y="0" width="161" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{produto}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="55" splitType="Stretch">
            <staticText>
                <reportElement uuid="967d506c-c05c-4853-9ca4-91933bffcee7" x="208" y="20" width="383" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="7"/>
                </textElement>
                <text><![CDATA[ Interessado em nosso serviço? Ligue: (12) 982054378 ou (12) 981669841]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="4c690251-8cbd-4faa-908d-049b069a184f" x="208" y="0" width="383" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="7"/>
                </textElement>
                <text><![CDATA[Gerado por: Cella - Sistema de Pedidos e Romaneios.]]></text>
            </staticText>
        </band>
    </pageFooter>
    <summary>
        <band height="44" splitType="Stretch"/>
    </summary>
</jasperReport></code>

Sub-report

<code>
<?xml version="1.0" encoding="UTF-8"?>
<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="pedidoMeiaPagina_TotalPesoValor" language="groovy" pageWidth="360" pageHeight="802" whenNoDataType="NoDataSection" columnWidth="360" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="f86bfb87-c71b-4a9b-8b41-ac35f3a4f0ee">
    <property name="ireport.zoom" value="1.4641000000000006"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="idPedido" class="java.lang.Long"/>
    <queryString>
        <![CDATA[select sum(itens.item_quantidade*pro_peso) as peso_total,
    to_char(sum(itens.item_valor * itens.item_quantidade),'R$999G990D99') as valor_total,
    to_char((sum(itens.item_valor * itens.item_quantidade)*fornecedores.for_frete)/100,'R$999G990D99') as frete
    from pedidos inner join itens on itens.fk_pedido = pedidos.ped_id
        inner join produtos on itens.fk_produto = produtos.pro_id
        inner join fornecedores on produtos.fk_fornecedor = fornecedores.for_id
        where pedidos.ped_id = $P{idPedido}
    group by fornecedores.for_frete;]]>
    </queryString>
    <field name="peso_total" class="java.lang.Double"/>
    <field name="valor_total" class="java.lang.String"/>
    <field name="frete" class="java.lang.String"/>
    <detail>
        <band height="45" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="-1" width="63" height="22" uuid="6f37a33a-c214-40c6-9c22-e20a7bdf8655"/>
                <textElement verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Peso Total:]]></text>
            </staticText>
            <textField>
                <reportElement x="63" y="-1" width="129" height="22" uuid="411627a7-389a-41ab-80d3-2bcda481d700"/>
                <textElement verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{peso_total}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="192" y="0" width="57" height="21" uuid="679d42ae-f743-4e55-83c3-02d3037b2d83"/>
                <textElement verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Valor Total:]]></text>
            </staticText>
            <textField>
                <reportElement x="249" y="-1" width="111" height="22" uuid="1b888508-032f-416e-b0a8-cb146b32d98e"/>
                <textElement textAlignment="Right" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{valor_total}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="213" y="25" width="36" height="20" uuid="d1df3978-ef47-4c77-ba0f-558a5e92cdfe"/>
                <textElement verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Frete:]]></text>
            </staticText>
            <textField>
                <reportElement x="249" y="25" width="111" height="20" uuid="22ab8b1f-ada2-426c-bcad-15d0ce86e4c2"/>
                <textElement textAlignment="Right" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{frete}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

Java

public void gerarPedido(String query, int tipo, String nome) throws JRException, SQLException, IOException {

    xml += "\\pedidoMeiaPagina.jrxml";
    JasperDesign desenho = JRXmlLoader.load(xml);
    JasperReport relatorio = JasperCompileManager.compileReport(desenho);

    PreparedStatement pstmt = this.conexao.prepareStatement(query);
    ResultSet rs = pstmt.executeQuery();

    JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

    Map parametros = new HashMap();

    JasperPrint impressao = JasperFillManager.fillReport(relatorio,parametros, jrRS);

    if (tipo == 1) {
        JasperPrintManager.printPage(impressao, 0, true);
    } else if (tipo == 0) {
        caminho += nome;
        JasperExportManager.exportReportToPdfFile(impressao, caminho);

    } else if (tipo == 2) {
        JasperViewer.viewReport(impressao, false);
    }
}

  • Let me know where the files are. If the reports are inside the jar or are outside but in the same directory... , and can explain why you are always compiling jrxml instead of using the already compiled report...

  • The Jasper files are in My Documents in a system file folder, such as the Jasper files themselves in a template folder and their output in pdfs. About always using jrxml I won’t be able to tell you, I took this code ready from a friend of mine and was in charge only of making the report and the subreport. Hugs

2 answers

1

try to change:

getClass().getResource($P{SUBREPORT_DIR} + "pedidoMeiaPagina_TotalPesoValor.jasper")

by just:

"pedidoMeiaPagina_TotalPesoValor.jasper"

and make sure that the sub report is already compiled, and that it is inside the jar or in the same directory


Or change it to:

$P{SUBREPORT_DIR} + "pedidoMeiaPagina_TotalPesoValor.jasper"

and in the generated add: (exchange "C: Directorname " for the directory where the Journal of the sub-report is

...
Map parametros = new HashMap();
parametros.put("SUBREPORT_DIR","C:\DiretorioDoSubrelatorio\");
JasperPrint impressao = JasperFillManager.fillReport(relatorio,parametros, jrRS);
...

1

solved my problem, made the following changes:

Main, in defaultValueExpression I put the real path of the sub report and changed the language to Java. For a more dynamic path can be used the second method that Rodrigo de Bona cited. In the sub report I just changed the language to java. Still there was a null connection error.

<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="report2" language="java" columnCount="2" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="401" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="04e67a5f-9121-468f-a228-62c2dcf438c2"><property name="ireport.zoom" value="1.6105100000000014"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="144"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["/"]]></defaultValueExpression>
</parameter>

Solution of the connection error, as in my Jasper class already had a connection, I sent it to make the query itself.

public void gerarPedido(String query, int tipo, String nome) throws JRException, SQLException, IOException {

xml += "\\pedidoMeiaPagina.jrxml";
JasperDesign desenho = JRXmlLoader.load(xml);
JasperReport relatorio = JasperCompileManager.compileReport(desenho);

PreparedStatement pstmt = this.conexao.prepareStatement(query);
ResultSet rs = pstmt.executeQuery();

JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

Map parametros = new HashMap();
parametros.put("REPORT_CONNECTION",conexao);
JasperPrint impressao = JasperFillManager.fillReport(relatorio,parametros, jrRS);

if (tipo == 1) {
    JasperPrintManager.printPage(impressao, 0, true);
} else if (tipo == 0) {
    caminho += nome;
    JasperExportManager.exportReportToPdfFile(impressao, caminho);

} else if (tipo == 2) {
    JasperViewer.viewReport(impressao, false);
}

}

I hope it helps, hugs!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.