Ireport - Como fazer um field ter tamanho dinâmico?

10 respostas Resolvido
ireport
D

Boa noite caros colegas! Poderiam me ajudar? :grinning:
Venho novamente com duas dúvidas…

  1. Estou há horas tentando fazer com que o meu field tenha tamanho horizontal dinâmico, de acordo com o tamanho do nome/texto retornado do Banco de Dados.
    Já setei a opção Stretch With Overflow e vi que ela faz a quebra de lina dentro do field. Mas não é isso que quero!
    Preciso é dar continuidade a linha do texto. Exemplo:
    “Atestamos para fins que FERNANDA CONSUELO, portadora do DOCUMENTO XXXXXXX do curso de MEDICINA…
    Atestamos para fins que MARI SILVA, portadora do DOCUMENTO XXXX do curso de MEDICINA…”
    Tanto o nome da pessoa, quanto o número do documento, quanto o nome do curso são de tamanhos dinâmicos.
    Queria muito fazer isso no iReport.

  2. Também gostaria de ver se existe como ter aquele “efeito” de que com o tamanho dinâmico, possa dar continuidade do texto na próxima linha se o mesmo houver a necessidade da quebra da linha. Como a nossa escrita, chega ao fim da folha, pula para a próxima linha. Isso existe para ser feito no iReport?

Teriam como me ajudar, por favor?

Agradeço muito mesmo!

10 Respostas

J

Já tentou colocar dessa forma:

1 - Position Type: Float; //para flutuar
2 - Stretch Type: Relative to Tallest Object. //Relativo ao objeto mais alto

Referência: Community.

D

Boa noite! Tudo jóia!
Você fala de colocar em todos os textfield e os fields?

Segue abaixo a imagem da geração do relatório. Veja os espaços em branco que preciso que não existam. Mas só vou conseguir se conseguir deixar o tamanho do field dinâmico. Creio eu!

Em vermelho, são os espaços em branco dos fields que são daquele tamanho! Preciso retirar para aproximar o texto.
Acho que consegui explicar! Risos!

J

Porque tu não monta assim:

"Atentamos para fins que se fizerem necessários que "
+ $F{descricao} + ", portadora da cédula de identidade nº "
+ $F{codigo_item} + " filho(a) de " + $F{descricao} + "natural de "
+ $F{descricao} + "casado(a) "

Tu está montando o texto combinando StaticText com TextField né? Eu creio que não dê para dimensionar a largura automaticamente, mas tão somente a altura (quebra de linha) já que as bands são extensíveis em altura, mas não em largura.

D

Cara, sem querer ser chato, mas, creio que é exatamente isso que ela está fazendo.
Porém, se o nome for algo como “João da Silva”, ok, cabe certinho num field de 45 de largura. Agora, se for algo como o nome do Dom Pedro I (Pedro de Alcântara Francisco António João Carlos Xavier de Paula Miguel Rafael Joaquim José Gonzaga Pascoal Cipriano Serafim de Bragança e Bourbon)
Já não caberia, né? Óbvio, nem numa linha inteira.
Porém, o ideal seria deixar esses fields isolados em linhas, algo como:

Atestamos para os devidos fins que 
$F{nome}
Portador da CI $F{identidade}
Filiação
$F{nomePai}
e $F{nomeMae}

Deixando, para cada campo que pode extrapolar uma linha, a opção stretch overflow definida.

R
D

Bom dia Jothar,
Onde coloco esse código de concatenação? É no TEXT FIELD EXPRESSION?
Deu certo quanto coloquei um textfield e coloquei o texto todo no TEXT FIELD EXPRESSION com as suas devidas concatenações.
Uma outra dúvida:
Teria como colocar tipo, somente o texto do nome em tamanho maior e em negrito? Como faria isso no código do TEXT FIELD EXPRESSION?

J

Você coloca um único textfield na band desejada e concatena os fields lá. Exemplo:

Resultado:

O problema de usa essa abordagem @Daniellecd é que se precisar aplicar uma formatação aos fields individualmente que compõem o concatenado, não tem como (eu pelo menos desconheço). No seu caso, como se trata de uma declaração, geralmente os dados como nome e número de documentos são grafados em negrito e, neste caso não tem como fazê-lo usando a concatenação.

D

Certo! Um muito obrigada! :grin:
Foi de grande ajuda!

J
Solucao aceita

@Daniellecd, tente assim (uma gambi):

1 - Habilite o markup do textfield de none para html:

image

2 - Demarque o concatenado como html e use as tags HTML para formatar os fields:

Alguns dizem que essa API (Dynamic Jasper) tem o recurso de “estiragem horizontal dinâmica”. Talvez valha a pena fazer uns testes.

D

Maravilha!:star_struck:
Muito obrigada!
Solucionou! :smiley:

Criado 29 de agosto de 2019
Ultima resposta 5 de set. de 2019
Respostas 10
Participantes 4