| Autor |
Mensagem |
|
|
O que você precisa é na sua aplicação mandar uma coleção de JavaBeans para o relatório.
Já no relatório, em datasource você digita o nome da classe desse JavaBean com o nome totalmente qualificado, mas esta classe tem que estar no classpath do iReport para funcionar, ok ?
Assim que você termina de digitar o nome da classe, os atributos dela já aparecem embaixo na mesma tela e ficam disponíveis como campos para serem usados no relatório.
Daí quando você rodar a aplicação, o relatório será executado para cada objeto da coleção passada.
Não sei se consegui explicar direito, mas não sei o que você já tem feito para poder ajudar mais...
|
 |
|
|
|
Mas ainda não precisei fazer em Java... ainda bem!
|
 |
|
|
Aí é que você se engana...
Existe um padrão sim, mas cada cliente tem um layout de NF diferente, às vezes é uma questão de tamanho do formulário, outras são os campos, mas dificilmente um é igual ao outro.
Portanto sempre tem que ajustar na hora de fazer um novo.
|
 |
|
|
Ai eh que estah...
Se vc for usar um array ou collection, nao vai usar jsp usebean entende...
Use um loop no jsp com scriptlet ou com c:forEach da JSTL.
|
 |
|
|
|
/WEB-INF/seu_arquivo.jasper
|
 |
|
|
Se você mudar a seguinte linha no servlet, vai funcionar:
request.setAttribute("test", test[0]);
Ou fazer um loop no jsp, mas aí você não vai poder usar o javabean.
|
 |
|
|
|
Coloque aqui o código do servlet e do jsp para poder ver o que está ocorrendo de errado, ok ?
|
 |
|
|
|
Quando meus objetos são coleções ou arrays, eu uso a tag c:forEach da JSTL, mas você pode usar scriptlet também, é só usar como se estivesse fazendo um programa em Java.
|
 |
|
|
Aconteceu isso comigo também.
Mandei um e-mail para o administrador do servidor onde o site está hospedado e ele resolveu isso.
Mas não sei exatamente o que foi feito para te ajudar.
|
 |
|
|
Por acaso isso é o que você quer ?
<form action="seuForm.html">
...
<input type="submit" value"abre form">
</form>
|
 |
|
|
|
Não mas acho que tem um exemplo no próprio JasperReports.
|
 |
|
|
|
Então a versão deve estar errada porque a exceção diz que não encontra um método...
|
 |
|
|
Você ainda não entendeu...
Porque você está usando array e não o próprio bean ?
No seguinte código:
TestBean[] test = new TestBean[1];
test[0] = new TestBean();
test é uma variável de referência que está apontado para o objeto array do tipo TestBean.
test[0] é uma outra variavel de referência que está apontando para o objeto do tipo TestBean.
Entenda: arrays são objetos também.
No seu caso, eu não entendi ainda porque quer usar array se tem um elemento só.
|
 |
|
|
Ao contrário, se a() der exceção, b() e c() não são executados.
No seu programa swing a mesma coisa, ele termina.
Acho que me expliquei mau, o que quis dizer na verdade é que a exceção espera que algum método a trate e se nenhum tratar o programa termina.
Veja bem, imagine que main() chama a() que chama b() que chama c().
Se der exceção em c() e não for tratada aí, ela será propagada para o método que chamou: b().
Se b() não tratar também, propaga para a() e assim por diante até chegar no main(), que se não tratar também, termina a execução do seu programa.
Será que agora consegui ser mais clara ?
|
 |
|
|
Acho que você não entendeu direito o significado de Runtime Exception.
Resumindo: são exceções que você não tem como prever, como a que o LIPE citou...
Ou melhor, que possam vir de erros de lógica ou de entrada de dados incorreta por exemplo.
Você sabe que deu erro porque o programa tem erro.
Normalmente a gente não trata mesmo, só em alguns casos muito especiais mesmo, tipo em conversão de números e datas.
|
 |
|
|