[RESOLVIDO]Paginas iReport

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

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.

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 ^^

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

^.^"

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.

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

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?

Sim.

Obrigado pela força!

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 :?

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

clique no field va em propriedades

a penultima opção sera MarkUp.