Mudar Titulo do relatório durante execução

13 respostas
Luciano_Lopes

Pessoal,estou usando o iReport para fazer relatórios de algumas consultas,mas quero mudar o titulo do relatório de acordo com a consulta,como faço isso?

13 Respostas

deadlock

usando textfields + parâmetros

Luciano_Lopes

Exemplo?

rogelgarcia

Crie um PARAMETER… (no mesmo lugar que vc cria FIELDS tem os PARAMETERS)… suponha que seu parametro se chame titulo

Vc cria um TextField com a expressao [color=red] $P{titulo}[/color]

Vc passa o parametro no mapa de parametros para o relatorio

Luciano_Lopes

Cara,fiz aqui mas não deu certo não,ele não reconhece o comando,to usando o netbeans

rogelgarcia

Q comando?

Luciano_Lopes

Coloquei na opção parametros do jtextfiled:

$P{jTextField1}

Mas ele não reconhece esse comando

rogelgarcia

Vc tem que colocar isso na expression do Text Field…

E o parametro vc cadastra num lugar … e faz o Text Field usar esse parametro

lá no seu código java vc passa o valor do parametro para o relatorio… sao 3 etapas…

Talvez vc esteja confundindo as bolas aí em algum ponto…

A IDE nao importa para o relatorio…

Posta o seu código java que chama o relatorio…

Luciano_Lopes
public relpessoas(){
     try{
       JPrincipal.LAF();
       ConRel.conectar();
       ConRel.SQL("select * from pessoas where pes_idbairro="+JBairros.idBairro);
       JRResultSetDataSource JRS=new JRResultSetDataSource(ConRel.Result);
       JasperPrint JP=JasperFillManager.fillReport(
       "C:\Arquivos de Programas\Lopes Desenvolvimentos\Cartao\Cartao\rpessoas.jasper", new HashMap(),JRS);
       JasperViewer.viewReport(JP);
    }
    catch(Exception Erro){
        JOptionPane.showMessageDialog(null,"Erro ao gerar relatório! "+Erro);
    }
    }
rogelgarcia

Vamos lá…

Primeiro ponto… estude Java… vc está pulando o carro na frente dos bois… siga os padroes de nomeclatura… e não use o caminho estático do jasper… use um caminho relativo a sua aplicacao…

Segundo ponto… onde vc tá pssando como parametro new HashMap() … é que vc tem que passar o mapa com o parametro… exemplo:

Map map = new HashMap();
map.put("titulo", "MEU TITULO"); //esse mapa vc passa como parametro

Agora tem que ver se no report tá correto… com o PARAMETER e o TEXT FIELD configurados corretamente…

R

Bem, eu chamo os relatórios da forma abaixo, sendo assim é só criar um variavel p/ passar o titulo.

try {
            Connection con = new Conexao().conectar();
            HashMap parametros = new HashMap();
            JasperPrint jp = JasperFillManager.fillReport("./relatorios/clientes.jasper", parametros, con);
            JasperViewer jasperViewer = new JasperViewer(jp, false);
            jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
            jasperViewer.setTitle("Relatório de Clientes");//Cria uma variavel para passar este titulo
            jasperViewer.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
Luciano_Lopes

Tem como eu adicionar campos ao relatório durante a execução?

rogelgarcia

Nao…

O máximo que vc pode fazer… é colocar uma condiçao para determinado campo aparecer ou nao… mas ele já tem que estar no relatório…

E vc também pode ter uma expressao mais dinamica… vamos dizer assim…

Luciano_Lopes

rpassos81:
Bem, eu chamo os relatórios da forma abaixo, sendo assim é só criar um variavel p/ passar o titulo.

try { Connection con = new Conexao().conectar(); HashMap parametros = new HashMap(); JasperPrint jp = JasperFillManager.fillReport("./relatorios/clientes.jasper", parametros, con); JasperViewer jasperViewer = new JasperViewer(jp, false); jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE); jasperViewer.setTitle("Relatório de Clientes");//Cria uma variavel para passar este titulo jasperViewer.setVisible(true); } catch (Exception e) { e.printStackTrace(); }


Cara,seu exemplo funcionou aqui,mas você não entedeu oque quero fazes,eu quero mudar o titulo do relatório, e não o titulo da janela.

Criado 15 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 13
Participantes 4