Mudar Titulo do relatório durante execução

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?

usando textfields + parâmetros

Exemplo?

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

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

Q comando?

Coloquei na opção parametros do jtextfiled:

$P{jTextField1}

Mas ele não reconhece esse comando

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…

    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);
    }
    }

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…

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();
        }

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

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…

[quote=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(); } [/quote]
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.