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.