Nota venda com iReports

4 respostas
lucasmartins

Bom dia pessoal, no meu projeto, ao finalizar uma venda, o sistema oferece a possibilidade de imprimir uma nota. Até ai tudo bem. Eu tinha feito certinho, mas pro um deslize perdi o arquivo e esqueci como faz. É que tenho uma tabela no banco com os dados da empresa configurada para usar o sistema, e no cabeçalho da minha nota queria apresentar esses dados, mas nao consigo mais lançá-los lá.

minha sql ta assim:

SELECT pessoa."id" AS pessoa_id, pessoa."nome" AS pessoa_nome, estado."id" AS estado_id, estado."sigla" AS estado_sigla, cidade."id" AS cidade_id, cidade."nome" AS cidade_nome, cidade."estado_id" AS cidade_estado_id, produto."descricao" AS produto_descricao, produto."unidade" AS produto_unidade, venda_itensvenda."venda_id" AS venda_itensvenda_venda_id, venda_itensvenda."itensvenda_id" AS venda_itensvenda_itensvenda_id, itensvenda."id" AS itensvenda_id, itensvenda."quantidade" AS itensvenda_quantidade, itensvenda."subtotal" AS itensvenda_subtotal, itensvenda."valorprod" AS itensvenda_valorprod, itensvenda."produto_id" AS itensvenda_produto_id, venda."id" AS venda_id, venda."datavenda" AS venda_datavenda, venda."valortotal" AS venda_valortotal, venda."pessoa_id" AS venda_pessoa_id FROM "public"."estado" estado INNER JOIN "public"."cidade" cidade ON estado."id" = cidade."estado_id" INNER JOIN "public"."pessoa" pessoa ON cidade."id" = pessoa."cidade_id" INNER JOIN "public"."venda" venda ON pessoa."id" = venda."pessoa_id" INNER JOIN "public"."venda_itensvenda" venda_itensvenda ON venda."id" = venda_itensvenda."venda_id" INNER JOIN "public"."itensvenda" itensvenda ON venda_itensvenda."itensvenda_id" = itensvenda."id" INNER JOIN "public"."produto" produto ON itensvenda."produto_id" = produto."id" WHERE venda."id" = $P{FILTRO_VENDA}

dessa forma nao estou puxando a empresa só os dados da venda.

SQL com empresa:

SELECT pessoa."id" AS pessoa_id, pessoa."nome" AS pessoa_nome, estado."id" AS estado_id, estado."sigla" AS estado_sigla, cidade."id" AS cidade_id, cidade."nome" AS cidade_nome, cidade."estado_id" AS cidade_estado_id, produto."descricao" AS produto_descricao, produto."unidade" AS produto_unidade, venda_itensvenda."venda_id" AS venda_itensvenda_venda_id, venda_itensvenda."itensvenda_id" AS venda_itensvenda_itensvenda_id, itensvenda."id" AS itensvenda_id, itensvenda."quantidade" AS itensvenda_quantidade, itensvenda."subtotal" AS itensvenda_subtotal, itensvenda."valorprod" AS itensvenda_valorprod, itensvenda."produto_id" AS itensvenda_produto_id, venda."id" AS venda_id, venda."datavenda" AS venda_datavenda, venda."valortotal" AS venda_valortotal, venda."pessoa_id" AS venda_pessoa_id, empresa."id" AS empresa_id, empresa."cep" AS empresa_cep, empresa."cnpj" AS empresa_cnpj, empresa."email" AS empresa_email, empresa."endereoo" AS empresa_endereoo, empresa."fantasia" AS empresa_fantasia, empresa."inscricao" AS empresa_inscricao, empresa."nome" AS empresa_nome, empresa."numero" AS empresa_numero, empresa."telefone" AS empresa_telefone, empresa."telefone2" AS empresa_telefone2, empresa."cidade_id" AS empresa_cidade_id, cidade_A."id" AS cidade_A_id, cidade_A."nome" AS cidade_A_nome, cidade_A."estado_id" AS cidade_A_estado_id, estado_A."id" AS estado_A_id, estado_A."nome" AS estado_A_nome, estado_A."sigla" AS estado_A_sigla FROM "public"."estado" estado INNER JOIN "public"."cidade" cidade ON estado."id" = cidade."estado_id" INNER JOIN "public"."pessoa" pessoa ON cidade."id" = pessoa."cidade_id" INNER JOIN "public"."venda" venda ON pessoa."id" = venda."pessoa_id" INNER JOIN "public"."venda_itensvenda" venda_itensvenda ON venda."id" = venda_itensvenda."venda_id" INNER JOIN "public"."itensvenda" itensvenda ON venda_itensvenda."itensvenda_id" = itensvenda."id" INNER JOIN "public"."produto" produto ON itensvenda."produto_id" = produto."id", "public"."cidade" cidade_A INNER JOIN "public"."empresa" empresa ON cidade_A."id" = empresa."cidade_id" INNER JOIN "public"."estado" estado_A ON cidade_A."estado_id" = estado_A."id" WHERE venda."id" = $P{FILTRO_VENDA}

com esse segundo sql ja não rola. Será que é devido ao fato de empresa não ter relação com a venda?
como faço nesse caso.
Abaixo um exemplo de como eu tinha feito anteriormente:

4 Respostas

luxu

pq vc naum utiliza o fantástico framework “hibernate” e esqueça dessas montagens loucas…

lucasmartins
mas a passagem de parâmetros é via hibernate
public void geraVenda(Long esta) {
 try {
            Map parametros = new HashMap();
            parametros.put("FILTRO_VENDA", esta);
            URL arquivo = getClass().getResource("/relatorios/RelVenda.jasper");
            JasperReport relatorio = (JasperReport) JRLoader.loadObject(arquivo);
            JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, Conexao.getConnection());
            JasperViewer visualizador = new JasperViewer(impressao, true);
            visualizador.setTitle("Relatório de Cidades");
            visualizador.setAlwaysOnTop(true);
            visualizador.setVisible(true);


            this.dispose();


        } catch (Exception e) {
            System.out.println("Erro " + e);
}        }
lucasmartins

resolvi, foi um deslize meu, a tabela empresa não tinha dados inseridos. :oops:

E

Marque o post como [RESOLVIDO]

Criado 22 de outubro de 2011
Ultima resposta 27 de out. de 2011
Respostas 4
Participantes 3