Bom dia, :D :D
Antes de mais nada vou explicar o que estou desenvolvendo. Estou fazendo um Sistema que quando o usuário digitar a quantidade de etiquetas e a o inicio da contagem dos números ex: inicio 30 elas são impressas. E em cada etiqueta vai uma Letra e número Ex: A 30, A 31, A32, A33.... e assim por diante. O Relatório está pronto, pois o mesmo foi desenvolvido no IReport e estou fazendo com passagem de parametro para que seja feita a chamada da função no JAVA. Ele "Sistema" está 75% pronto, pois faço a chamada do relatório e as quantidade de etiquetas que devem ser impressas, mas NÃO estou conseguindo :?: :?: :roll: fazer com que ACRESCENTE O VALOR PARA CADA ETIQUETA impressa como informei anteriormente. "Obs. NÃO estou trabalhando com Banco de Dados no IReport." Segue a minha classe Relatório e a Classe Imprimir para conferência: :oops:package colecao;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//package atualizacaocadastral;
/*
* @(#)Relatorio.java 1.0 28/04/2006
*
* Copyright 2006 Marcos Vinícius Soares. Todos os direitos reservados.
* [email removido]
*
*/
import java.sql.*;
import java.net.URL;
import java.util.HashMap;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.*;
/**
* Relatorio.java<br>
*
* <p>A classe Relatorio deve ser utilizada para emissão de relatórios. Após a
* criação de algum relatório é possível exibí-lo na tela, exportá-lo para um
* arquivo pdf/html ou enviá-lo direto para impressão.</p>
*
* <p>A classe manipula relatórios desenvolvidos utilizando-se a ferramenta
* iReport e utiliza a ferramenta JasperReports para emissão dos relatórios</p>
*
* @author Marcos Vinícius Soares
*/
public class Relatorio {
/** Representa o relatório gerado. */
private JasperPrint jasperPrint_;
//private Conexao db = new Conexao();
/**
* Cria um novo Relatorio.
*
* @param conn Conexão com o banco de dados.
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
*/
public Relatorio(Conexao db, HashMap parameters, URL localRelatorio) throws JRException, Exception{
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport)JRLoader.loadObject(localRelatorio);
// JasperPrint representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, db.getConnection());
} catch (JRException e) { throw e; }
}
/**
* Cria um novo Relatorio.
*
* @param conn Conexão com o banco de dados.
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
*/
public Relatorio(Conexao db, HashMap parameters, String localRelatorio) throws JRException, Exception{
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport)JRLoader.loadObject(localRelatorio);
// JasperPrint representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, db.getConnection());
} catch (JRException e) { throw e; }
}
/**
* Cria um novo Relatorio.
*
* @param conn Conexão com o banco de dados.
* @param sql Expressão SQL (SELECT...) a ser utilizada para preenchimento do relatório
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
* @throws SQLException Caso exista alguma divergência ou problema com
* a Expressão SQL passada como parâmetro, uma exceção é gerada.
*/
public Relatorio(Conexao db, String sql,
HashMap parameters, URL localRelatorio) throws SQLException, JRException {
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport)JRLoader.loadObject(localRelatorio);
// Resultado da consulta
ResultSet rs = db.executeQuery(sql);
// JRResultSetDataSource é uma implementaçao de JRDataSource, o qual é requerido
// como parametro para preencher o relatório criado.
// Ele armazena o dados do ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
// JasperPrint representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o
// relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, jrRS);
rs.close();
}
catch (SQLException e) { throw e; }
catch (JRException e) { throw e; }
}
/**
* Cria um novo Relatorio.
*
* @param conn Conexão com o banco de dados.
* @param sql Expressão SQL (SELECT...) a ser utilizada para preenchimento do relatório
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
* @throws SQLException Caso exista alguma divergência ou problema com
* a Expressão SQL passada como parâmetro, uma exceção é gerada.
*/
public Relatorio(Conexao db, String sql,
HashMap parameters, String localRelatorio) throws SQLException, JRException {
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport)JRLoader.loadObject(localRelatorio);
// Resultado da consulta
ResultSet rs = db.executeQuery(sql);
// JRResultSetDataSource é uma implementaçao de JRDataSource, o qual é requerido
// como parametro para preencher o relatório criado.
// Ele armazena o dados do ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
// JasperPrint representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o
// relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, jrRS);
rs.close();
}
catch (SQLException e) { throw e; }
catch (JRException e) { throw e; }
}
/**
* Cria um novo Relatorio.
*
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
*/
public Relatorio(HashMap parameters, URL localRelatorio) throws JRException {
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport) JRLoader.loadObject(localRelatorio);
// JREmptyDataSource é uma implementaçao de JRDataSource, o qual é requerido
// como parametro para preencher o relatório criado.
// Ele armazena o dados do ResultSet, que, neste caso, é vazio
JREmptyDataSource jrEDS = new JREmptyDataSource();
// Jasper Print representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o
// relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, jrEDS);
} catch (JRException e) { throw e; }
}
/**
* Cria um novo Relatorio
*
* @param parameters Parâmetros a serem exibidos no relatório.
* @param localRelatorio Localização do relatório.
* @throws JRException Caso o relatório não seja encontrado ou haja
* algum problema com ele, uma exceção é gerada.
*/
public Relatorio(HashMap parameters, String localRelatorio) throws JRException {
try {
// O objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml) compilado.
// Ou seja, o arquivo .jasper
JasperReport jr = (JasperReport) JRLoader.loadObject(localRelatorio);
// JREmptyDataSource é uma implementaçao de JRDataSource, o qual é requerido
// como parametro para preencher o relatório criado.
// Ele armazena o dados do ResultSet, que, neste caso, é vazio
JREmptyDataSource jrEDS = new JREmptyDataSource();
// Jasper Print representa o relatório gerado.
// É criado um JasperPrint a partir de um JasperReport, contendo o
// relatório preenchido.
this.jasperPrint_ = JasperFillManager.fillReport(jr, parameters, jrEDS);
} catch (JRException e) { throw e; }
}
Relatorio(HashMap parameters, String path, String aux) {
throw new UnsupportedOperationException("Not yet implemented");
}
/**
* Exibe o relatório na tela.
*/
public void exibirRelatorio() {
// emite o relatório na tela
// false indica que a aplicação não será finalizada caso o relatório seja fechado
JasperViewer.viewReport(this.jasperPrint_, false);
}
/**
* Grava o relatório em um arquivo de formato pdf.
*
* @param caminhoDestino Caminho onde o arquivo será gravado.
*/
public void exportaParaPdf(String caminhoDestino) throws JRException {
try {
// Gera o arquivo PDF
JasperExportManager.exportReportToPdfFile(this.jasperPrint_, caminhoDestino);
} catch (JRException e) { throw e; }
}
/**
* Grava o relatório em um arquivo de formato html.
*
* @param caminhoDestino Caminho onde o arquivo será gravado.
*/
public void exportaParaHtml(String caminhoDestino) throws JRException {
try {
// Gera o arquivo PDF
JasperExportManager.exportReportToHtmlFile(this.jasperPrint_, caminhoDestino);
} catch (JRException e) { throw e; }
}
/**
* Envia o relatório para impressão, exibindo uma caixa de dialogo de impressão ou não.
*
* @param exibeCaixaDialogo Boolean indicando se será exibida uma caixa de diálogo ou não.
*/
public void imprimir(boolean exibeCaixaDialogo) throws JRException {
try {
// Imprime o relatório
// o segundo parâmetro indica se existirá uma caixa de dialogo antes ou nao
JasperPrintManager.printReport(this.jasperPrint_, exibeCaixaDialogo);
} catch (JRException e) { throw e; }
}
}
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
int i, n;
int[] a;
String aux = "";
Relatorio relatorio = null;
HashMap parameters = new HashMap();
Scanner s = new Scanner(txtNumero.getText());
i = s.nextInt();
a = new int[1+i];
n = a.length + 1;
for (i = 1; i < a.length; i++) {
System.out.println("Etiqueta Número[" + i + "]=" + a[i]);
parameters.put("letra", txtLetra.getText());
//parameters.get("numero1"+i++);
//parameters.get("numero2"+i++);
//parameters.get("numero3"+i++);
parameters.put("numero1", txtNumero.getUIClassID().valueOf(i++));
parameters.put("numero2", txtNumero.getUIClassID().valueOf(i++));
parameters.put("numero3", txtNumero.getUIClassID().valueOf(i++));
String path = "etiquetas.jasper";
/*TRY PARA EXIBIR*/
try {
//}
relatorio = new Relatorio(parameters, path);
} catch (JRException ex) {
Logger.getLogger(imprimir.class.getName()).log(Level.SEVERE, null, ex);
//Logger.getLogger(etiqueta.class.getName()).log(Level.SEVERE, null, ex);
}
relatorio.exibirRelatorio();
/*TRY PARA IMPRESSÃO*/
/*try {
relatorio = new Relatorio(parameters, path);
relatorio.imprimir(true);
} catch (JRException ex) {
Logger.getLogger(Imprecao.class.getName()).log(Level.SEVERE, null, ex);
}*/
}
}
Alterieo o Código e segue agora o Correto...
Segue as imagens para ter uma idéia...

