Ireport com Detail dinamico

21 respostas
cristianrm

Pessoal,
Eu estou precisando criar um relatório para que o detail seja dinâmico,
necessito passar o tamanho dele via parametros, alguem tem uma dica como fazer isso?

Obrigado.

21 Respostas

JMARQ

Pois é, também tenho uma dúvida bem parecida que é a seguinte: No meu relatório tem um cabeçalho onde ficaram os dados de um paciente e no Detail os tipos de exames que o mesmo realizou, então o comportamento que desejo é que quando a quantidade de exames de um determinado paciente terminar que a página seja quebrada e iniciada outra página com os dados do novo paciente, e caso o total de exames de um paciente seja o suficiente para ir para outra folha que o cabeçalho não mude até a quantidade de exame terminar.

Agradeço desde já a colaboração de todos.

cristianrm

Eu to querendo setar o tamanho da banda por fora do ireport via java, as margens funcionam muito bem usando o codigo abaixo.

JasperDesign design = JRXmlLoader.load("/caminho.jrxml");  

    design.setTopMargin(50);  
    design.setLeftMargin(20);  
    design.setRightMargin(2);  
    design.setBottomMargin(50);  
                  JasperReport jasperReport = JasperCompileManager.compileReport(design);

Mas no caso da banda detail, eu achei só instanciando um novo objeto, que não é o caso necessito apenas
mudar o tamanho da banda ja criada.
Caso alguem ja tenha feito agradeço a ajuda, pra mim vai ser de extrema importância,
muito obrigado.

Gerva

O caso do JMARQ, basta criar um Group agrupado por “paciente”, assim você tem as opções de quebrar página a cada agrupamento

cristianrm

O ireport utilizado é o 4.5.

Gerva

Já que você compila ele toda vez, altera o tamanho da detail no próprio xml…

cristianrm

Gerva esse tamanho da banda deve vir do banco de dados.

mauricioadl

Da o select antes, pega o tamanho, seta o detail e invoca o relatorio.

cristianrm

Então o problema é passar o valor pra banda detail, pois ela que eu saiba não aceita parâmetro. To pesquisando quando achar uma solução posto aqui, muito obrigado.

Gerva

Exatamente, ela não aceita parametro, mas como você compila o .jrxml toda vez, você pode alterar diretamente ele antes de compilar. (com manipulação de arquivo)

A

cristianrm, por que você precisa passar o tamanho do detail como parâmetro?

Ele já fornece vários recursos para crescer conforme a demanda.

Qual sua situação exatamente?

cristianrm

Abel, eu preciso para gerar etiquetas, elas precisam ser configuradas no cliente, o tamanho da banda é importante para o alinhamento
das etiquetas no papel, 1 mm a mais e 1mm a menos no tamanho da banda da uma diferença enorme na impressão.

Gerva as margens eu passo os valores e compilo depois, a banda eu acho que não da pra fazer assim, a não ser que eu recrie toda a etiqueta via codigo
java, que nesse caso não vai valer a pena pq a etiqueta tem muitos detalhes.

Gerva

Acho que vocẽ não entendeu…
To falando pra manipular o arquivo e alterar só a tag do tamanho do Detail
Ex:
No xml tem uma tag ± assim <detail> <band height="15" splitType="Stretch"> ..., aí vocẽ só muda o 15 para o tamanho…

cristianrm

Gerva, pra eu alterar blz sem problemas, mas como que o cliente ai fazer isso na aplicação?
O cliente que vai alterar o tamanho da banda, entendeu?
Vai ter uma tela onde ele(Cliente) vai manipular margens e banda do relatório.
O que você disse seria perfeito se no lugar do height desse para colocar um parâmetro,
ai resolveria todos os problemas hehe.

Obrigado.

Gerva

Mas o arquivo “/caminho.jrxml” é um XML mano…
Você pode alterar ele por código…

Você faz o seu programa abrir o arquivo, procurar aquela tag e muda ela pro valor que o usuário informou…

cristianrm

Gerva entendi , você está dizendo em editar o código .jrxml direto sem usar as classes do próprio
ireport, vou fazer o teste aqui depois falo para vocês.

Obrigado.

Gerva

Exatamente, fica mais bonito se existir uma forma de fazer isso com classes do próprio IReport, mas na ausência delas…

cristianrm

Eu tinha tentado fazer apenas com a classes do ireport, não tinha pensado por esse lado :slight_smile:

Gerva

Funcionou?
Caso sim, coloque um [RESOLVIDO] no título do post :wink:

cristianrm

Gerva desculpe ainda não fiz, assim que estiver pronto coloco como resolvido.

fernandobs

oi pessoal, aproveitando o tópico
como seria para crescer de acordo com o tamanho do texto que busco do banco?
exemplo: já coloquei para que meu campo texto cresça se o texto ultrapassar seu tamanho, mas e o details? tem que crescer também né?

Obrigado.

fernandobs

já consegui, eu utilizei direto no XML, valeuuuu…

Criado 12 de dezembro de 2011
Ultima resposta 27 de dez. de 2011
Respostas 21
Participantes 6