WalkMan
Dezembro 15, 2010, 10:53pm
#1
Boa noite,
Estou tentando gerar um relatorio no iReport, um dos parametros que passo é um texto, como faço pra que ele escreva na area que deixei reservada
e o que ele tiver a mais escreva em outra pagia?
e como faço para repetir o titulo e o Page head?
Tente ser mais específico.
Você quer colocar o parâmetro no relatório?
Se for isso:
No iReport Crie um parâmetro com o nome que desejar, por padrão coloque o nome do seu parâmetro em Maiúsculo…
Depois jogue um TextField, que será o seu texto, no local que desejar.
Edite a expressão dele para: $P{NOME_DO_SEU_PARAMETRO}.
E pronto. Agora no código você vai passar para o parâmetro o seu texto e quando abrir o relatório o seu texto estará lá.
Se for muito grande ele joga automaticamente para a outra página.
Como assim repetir o título?
Para repetir o título vc tem que criar esse título na banda page Header e não no title
WalkMan
Dezembro 16, 2010, 9:33am
#4
juliocesarss segue codigo abaixo.
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEXTO" class="java.lang.String"/>
<field name="teste" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<pageHeader>
<band height="86" splitType="Stretch">
<staticText>
<reportElement x="223" y="30" width="100" height="20"/>
<textElement/>
<text><![CDATA[TITULO!]]></text>
</staticText>
</band>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="555" height="61"/>
<textElement textAlignment="Justified" markup="rtf"/>
<textFieldExpression class="java.lang.String"><![CDATA[$P{TEXTO}]]></textFieldExpression>
</textField>
</band>
</columnHeader>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
Gostaria que quando o parametro $P{TEXTO} recebesse um texto maior que o suportado, o relatorio criasse uma nova pagina com o titulo, e o rodapé, e colocasse o resto do texto nessa nova pagina, casso ainda necessario ele fique repetindo este procedimento até todo o texto ser inserido.
espero ter sido mais claro.
Ahh sim…
Acho que entendi.
Você quer que quando passar para a próxima página ele repita o título e redapé e tudo mais com o resto do texto neh?
Então beleza… vou te explicar um pouco como funcionam as camadas do relatório.
-Title: è o título do relatório… logo ele aparece no topo do relatório e só na primeira página.
-Page Header/Column Header: Cabeçalho/Cabeçalho da Coluna, São basicamente a mesma coisa, Cabeçalhos, logo eles estarão no início de todas as páginas.
-Detail: É aqui que vai todo o conteúdo do seu relatório, se o conteúdo ultrapassar o tamanho da folha ele gera uma nova folha com os cabeçalhos e rodapés e o resto do conteúdo.
-Page Footer/Column Footer: Rodapé/Rodapé da Coluna, Mesma coisa que o cabeçalho, porém no final da página.
Entendendo isso, sabemos que se colocar o o Título na camada Title ele só vai aparecer na primeira página, então você pode usar a camada Page Header como título (como disse nosso amigo leopoldof ai em cima) para aparecer em todas as páginas e a camada Column Header como Cabeçalho.
Espero ter ajudado.
WalkMan
Dezembro 16, 2010, 10:04am
#6
juliocesarss
sem duvidas me ajudou e muito, não conheço nada de iReport, ja me sanou mais duvidas do que eu tinha de inicio.
a minha unica dificuldade restante é,
o relatorio é gerado apenas apartir de parametros, e pelo que vi o “Detail” nãoa ceita parametros.
teria alguma ideia? tem alguma configuração que faça ele aceitar?
Não precisa usar apenas parametros, pode usar campos estáticos, resultado de pesquisas do banco, ou parâmetros.
E eu fiz um teste aqui e usei o paramtro no Detail normal.
Qual versão do iReport você usa?
Dica: tem um video aula que é muiito boa e bem completa. Procura na net e baixa.
baixarbr.net/sem-categoria/jasper-report-ireport-t2ti-curso/
Tenta esse link ae… se não der joga no Google Download T2Ti iReport, baixa essas video aulas que você vai fica o mestre do relatório ^^
WalkMan
Dezembro 16, 2010, 10:42am
#8
Uso a versão 3.7.6.
Sim, sei que posso pegar campos do banco, mas o relatorio em questão é gerado só com parametros.
Para ser mais claro, é um editor de texto.
no qual o usuário edita o texto desejado e quando ele mandar gerar o relatório, o mesmo é gerado com um cabeçalho padrão assim como um rodapé.
caso este texto ( que foi passado por parametro ) seja maior que o tamanho do campo da pagina, como ja dito anteriormente ele crie uma pagina nova com o cabeçalho e rodapé
adicionando o resto do texto nesta pagina.
1 curtida
Ahh sim.
Pensei que você estivesse falando dos Parâmetros em si… aqueles que criamos e usamos no iReport
^.^"
WalkMan
Dezembro 16, 2010, 10:49am
#10
Sim é o parametro que eu criei no caso $P{TEXTO} .
então teria alguma ideia de como fazer isto acontecer?
Oo’
O que acontece ae?
Eu testei aqui e deu certo.
Eu crei um Parâmtro, dei o nome de TESTE.
Joguei um TextField na camada Detail, editei a expressão para $P{TESTE}.
Quando mando exibir o relatório, passo o texto para o parâmetro e ele exibe o texto no relatório, no lugar que eu coloquei o TextField, Normal.
WalkMan
Dezembro 16, 2010, 11:02am
#12
Segue codigo
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEXTO" class="java.lang.String"/>
<field name="teste" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<pageHeader>
<band height="86" splitType="Stretch">
<staticText>
<reportElement x="223" y="30" width="100" height="20"/>
<textElement/>
<text><![CDATA[TITULO!]]></text>
</staticText>
</band>
</pageHeader>
<columnHeader>
<band height="59" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="50">
<textField>
<reportElement x="0" y="0" width="555" height="50"/>
<textElement textAlignment="Justified" markup="rtf"/>
<textFieldExpression class="java.lang.String"><![CDATA[$P{TEXTO}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
me diga qual é meu erro^^
A partir desse código é difícil saber o que tem de errado… até porque eu não entendo de XML x)
Mas você faz da mesma maneira que eu disse ali em cima?
O que acontece? Da erro de Compilação? ele não executa, ou só não aparece o texto?
Me diga o que acontece ao certo
WalkMan
Dezembro 16, 2010, 11:07am
#14
Se voce abrir o iReport e colar o codigo na area XML pode compilala.
“Erro” : não aparece o texto no relatório.
:shock:
Não consigui rodar aqui, mas pelo que eu vi o código está igual ao meu.
Tem como você zipar o arquivo e me mandar?
Rodei o seu e realmente não deu certo.
Porém, eu simplesmente deletei o TextField e coloquei um novo e funcionou certinho.
Magia Negra… sauhsuahsuahsua… Credo :?
WalkMan
Dezembro 16, 2010, 11:25am
#18
Alem de Deletar o field, eu ja criei um novo relatorio como teste e continua com este problema =/
Tente setar o MarkUp = rtf
e ver se funciona?
Não sei essa de setar rtf =/
Mas não é possível. aqui funcionou =S
Estranho… muito estranhoo
WalkMan
Dezembro 16, 2010, 11:38am
#20
clique no field va em propriedades
a penultima opção sera MarkUp.