JasperReport sem XML

8 respostas
L

Alguem tem algum exemplo de Relatorio gerado atraves do JasperReport sem utilizar XML ??

valeu

8 Respostas

brlima

como assim ??? usando soh o .jasper ? Se for soh pelo .jasper tem sim… agora por outro jeito num sei nao… Eu acho q num tem como… Se tiver , posta ai que fiquei curioso :smiley:

Flw!

L

“brlima”:
como assim ??? usando soh o .jasper ? Se for soh pelo .jasper tem sim… agora por outro jeito num sei nao… Eu acho q num tem como… Se tiver , posta ai que fiquei curioso :smiley:

Flw!

Cara , da uma olhada nesse Hellow Word feito com o JFreeReport (segue abaixo). Se vc observar bem, ele nao utiliza XML, ouseja, a formatacao do Relatorio (onde cada informacao vai ficar) eh feita no proprio codigo !! Eh possivel fazer isso no JasperReport ?

public class HelloWorld
{

public HelloWorld()
{

final TableModel data = createData();
final JFreeReport report = createReportDefinition();
report.setData(data);
try
{
  final PreviewDialog preview = new PreviewDialog(report);
  preview.addWindowListener(new CloseHandler());
  preview.pack();
  preview.setVisible(true);
}
catch (ReportProcessingException e)
{
  Log.error("Failed to generate report ", e);
}

}

/**

  • Creates a small dataset to use in a report. JFreeReport always reads data from a
  • <code>TableModel</code> instance.
  • @return a dataset.
    */
    private TableModel createData()
    {
final Object[] columnNames = new String[]{"Column1", "Column2"};
final DefaultTableModel result = new DefaultTableModel(columnNames, 1);
result.setValueAt("Hello", 0, 0);
result.setValueAt("World!", 0, 1);

return result;

}

/**

  • Creates a report definition.
  • @return a report definition.
    */
    private JFreeReport createReportDefinition()
    {
final JFreeReport report = new JFreeReport();
report.setName(getDescription());

TextFieldElementFactory factory = new TextFieldElementFactory();
factory.setName("T1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(150, 20));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Column1");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T2");
factory.setAbsolutePosition(new Point2D.Float(200, 0));
factory.setMinimumSize(new FloatDimension(150, 20));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Column2");
report.getItemBand().addElement(factory.createElement());
return report;

}

/**

  • Returns a short description of the demo.
  • @return
    */
    public String getDescription ()
    {
    return “A Very Simple Report”;
    }

/**

  • The starting point for the “Hello World” demo application.
  • @param args ignored.
    */
    public static void main(final String[] args)
    {
    // initialize JFreeReport
    Boot.start();
//final HelloWorld app =
new HelloWorld();

}

}

brlima

Num conheço nao… Mas vou dar uma olhada…
Em momento pensei o seguinte: porque nao carrega um xml como arquivo temporario? Gera usando alguma api pra XML, passa pro jasper e deleta o arquivo. Ou se tiver no banco, joga direto pra um arquivo XML.

Isso é uma ideia temporaria…rsss… Vou ver se acho algo… Se achar postai que é interessante…

No caso do jfreereport, o relatorio é gerado por codigo mesmo. No jasper nao, a ideia eh ter um arquivo exterdo ( xml ) pra carregar o layout.

FlW!

L

O jfreereport gera relatorios tb com XML. Esse exemplo que eu te mostrei eh apenas para um Hellow Word bem simples, mas para relatorios mais complexos ,tipo com consulta a banco de dados e tudo mais, o jfreereport nao da suporte a fazer no corpo do codigo. E mesmo que desse acho que perderia performace, uma vez que seria ainda preciso gerar toda formatacao do relatorio no proprio codigo do programa.

aborges

Pq vc nao gera o XML do jasper no seu codigo, usa o JasperCompileManager pra compilar e roda…

Logico a viabilidade vai depender da complexidade do relatorio q vc quer gerar, ja q montar o XML nao eh tao trivial dependendo do relatorio… A performance para compilar eh razoavel :wink:

L

“aborges”:
Pq vc nao gera o XML do jasper no seu codigo, usa o JasperCompileManager pra compilar e roda…

Logico a viabilidade vai depender da complexidade do relatorio q vc quer gerar, ja q montar o XML nao eh tao trivial dependendo do relatorio… A performance para compilar eh razoavel :wink:

Eu ja estou gerando a partir do meu codigo, utilizando o JasperCompileManager !! Eu estava querendo era gerar o relatorio sem usar o xml. Queria saber se era possivel da a formatacao do relatorio no proprio codigo, esquecendo o xml.

Quanto a perfomace, quis dizer que se fosse possivel fazer o que eu descrevi acima provavelmente a performace cairia !!

G

Tipo, nunca vi complexibilidade em usar o JasperReport com iReport usando DataSources, com DataSources eu posso gerar o “miolo” do relatorio dinamicamente, quem se interessar eu posso mandar alguns exemplos!!!

icq: 33147676

TedLoprao

Vi essa questão apenas hoje, e não sei se o Lindeberg achou a resposta, mas se vc der uma olhada nos exemplos que vem com o Jasper, um se chama NoXmlDesignApp… Esse exemplo gera o design do relatório em código…

Espero ter sido útil, apesar da demora para postar, heheheh

Criado 8 de junho de 2004
Ultima resposta 2 de jul. de 2004
Respostas 8
Participantes 5