[b]Estou usando o Eclipse e o iReport 3.7.1 para gerar o relatório.
Criei duas classes. A primeira é CodigoBarra. Ela lê a matrícula e a inscrição, além de colocar a data atual no meu código de barras.[/b]
package teste;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Scanner;
public class CodigoBarra {
public static void main(String args[]) throws JRException{
ArrayList<TesteBean> l = new ArrayList<TesteBean>();
TesteBean mat = new TesteBean();
Scanner input = new Scanner(System.in);
System.out.println("Informe matricula:");
mat.setMatricula(input.nextLine());
System.out.println("Informe inscrição:");
mat.setInscricao(input.nextLine());
mat.setData(gerarDataFormatada());
l.add(mat);
JRBeanCollectionDataSource jrds = new JRBeanCollectionDataSource(l);
JasperPrint jasperPrint = JasperFillManager.fillReport("Barras2.jasper", new HashMap(), jrds);
JasperViewer viewer = new JasperViewer(jasperPrint, true);
viewer.setVisible(true);
JasperExportManager.exportReportToPdfFile(jasperPrint, "CódigodeBarras.pdf");
}
private static String gerarDataFormatada() {
Date data = new Date();
String formato = "dd/MM/yy";
SimpleDateFormat formatter = new SimpleDateFormat(formato);
String dat = formatter.format(data);
return dat;
}
}
A segunda classe possui os métodos. Chamei de TesteBean
package teste;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.IllegalFormatException;
public class TesteBean {
private String matricula;
private String inscricao;
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
if ((matricula .length() == 0) || ((matricula.length() % 2) != 0))
{this.matricula = "0" + matricula;}
else
this.matricula = matricula;
}
public int length() {
return matricula.length();
}
public String getInscricao(){
return inscricao;
}
public void setInscricao(String inscricao){
this.inscricao = inscricao;
}
}
Usei apenas estas duas classes. Estou usando o barbecue para gerar as barras no padrão intercalado 2 de 5.
Vlw