Mensagens enviadas por: Kaio_C
Índice dos Fóruns » Perfil de Kaio_C » Mensagens enviadas por Kaio_C
Autor Mensagem
Consegui resolver meu problema,
setei a propriedade de "Reset type = None", para a minha variável,
Com isso, minha variável me devolve o valor nulo se não houver registro no lado direito,
Se houver registro, me devolve um valor não nulo(Porém, não necessariamente a soma total),
Com esta propriedade, consigo ampliar meu escopo e manipular a variável dentro do cabeçalho.

The Kill, não vou ter prejuízos por "carregar" um pouco mais meu gerador de relatório,
ele é um pouco complexo, mas manipula pequena quantidade de dados.
Mas pensei também em formas de realizar isto passando da aplicação para o iReport algum valor como parâmetro,
também funcionaria.

The Kill e FbCarvalho,
Valeu pela força.

Abraço
Primeiramente TheKill e fbcarvalho muito obrigado pelas respostas.
"fbcarvalho", já havia pensado nisso, utilizar um campo como parâmetro, porém o problema é semelhante,
Os campos só tem valor em tempo de execução do registro, ou seja, ele só tem valor na linha onde é executado.
No cabeçalho não tenho como manipular um registro específico.
Por isso a idéia da variável, porém, como a mesma deriva dos registros, também só terá seu valor completo após a execução de todos os registros, e é nula para o cabeçalho.
Minha idéia era encontrar alguma propriedade que fizesse com que a variável fosse processada com prioridade ao resto do relatório.
O que pretendo é ao ter apenas um registro apenas mostrar o ""cabeçalho"" da esquerda, escondendo o da direita. Já havia Conseguido esconder a linha do registro da direita utilizando exatamente esta solução que vc deu "fbcarvalho", porém não funciona para o cabeçalho.

TheKill, estou utilizando uma aplicação Web que faz cadastros em um banco de dados mysql.
Assim, minhas opções são fazer a operação com uma consulta SQL, ou fazer a operação no relatório.
O somatório feito pelo relatório seria apenas uma alternativa, não irá me agregar valor a nível de informação,
seria apenas um parâmetro para a condição de mostrar ou não o cabeçalho da direita.

Estou tentando fazer a operação no relatório, pois não quero deixar minha consulta no MySQL muito pesada.
Esta é a minha consulta SQL. Para dar uma idéia de como é a estrutura da linha :

---------------------------------------------------------------------------------------------------------------------------------------------------------
SELECT A.num_documento as num_documento, A.ano as ano, A.parcela as parcela, A.valor_receita as valor_receita, A.iss_capiturado as iss_capiturado,
A.iss_pago as iss_pago, A.iss_devido as iss_devido, B.ano as ano_B, B.parcela as parcela_B, B.valor_receita as valor_receita_B,
B.iss_capiturado as iss_capturado_B, B.iss_pago as iss_pago_B, B.iss_devido as iss_devido_B
FROM (SELECT * FROM tb_inf_dados_comp as C WHERE C.seq_comp%2=1 AND C.num_documento = $P{num_doc} ) as A
LEFT OUTER JOIN (SELECT * FROM tb_inf_dados_comp as D WHERE D.seq_comp%2=0 AND D.num_documento = $P{num_doc}) as B
ON (A.seq_comp+1 = B.seq_comp)
ORDER BY A.ano, A.parcela
---------------------------------------------------------------------------------------------------------------------------------------------------------

Muito Obrigado pelas respostas,
Quem tiver outras soluções, vai ajudar bastante.

Obrigado,
Kaio Cesar
Estou com um problema com uma variável de somatório no meu relatório.
Tenho uma tabela da seguinte forma:

ano/parcela | receita | Imposto | Valor pago ------ ano/parcela | receita | Imposto | Valor pago
---------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------

Uma linha na realidade são dois registros, mas com a consulta utilizando uma "junção" tenho os dois registros numa única linha.
O problema é o seguinte, quando tiver apenas um registro, quero mostrar apenas a primeira parte do cabeçalho, pois a segunda parte estaria vazia.
Consegui um jeito de fazer, tenho que fazer uma soma total utilizando uma coluna qualquer do lado direito da tabela, se a soma for nula, então não mostro o segundo cabeçalho.
Porém o problema é que tenho que utilizar esta variável como parâmetro no cabeçalho da tabela, ou seja, a soma ainda não foi realizada e a variável sempre estará nula.
Gostaria de saber se existe alguma forma de fazer com que seja realizada a soma antes de desenhar o cabeçalho.
Ou se existe alguma outra solução ?

Obrigado,
Kaio Cesar
Consegui Resolver meu problema,
Utilizei um componente quebra de página no meu relatório logo abaixo da tabela,
que obrigatóriamente será o último elemento da primeira página sempre.

Na quebra de página, utilizei a propriedade "Print When Expression".
A expressão utilizada foi new Boolean($V{PAGE_NUMBER}.equals( new Integer(1) )),
Ou seja, se a quebra estiver localizada na primeira página, a mesma será executada.
Caso a tabela invada a segunda página, a mesma será ignorada.

Atenciosamente,

Kaio Cesar O. Santos
Olá,
Estou com um problema no ireport,
Como faço para ter uma quebra de página dinâmica ??

A situação é a seguinte, tenho alguns elementos na primeira página e "sempre" o último elemento da primeira página será
uma tabela. Se a tabela for muito grande esta poderá ocupar parte da segunda página.

O problema é o seguinte, quando a tabela é pequena, um elemento está invadindo a primeira página,
e isto não pode acontecer. Para isto utilizaria uma quebra de página.
E quando a tabela é grande e invade a segunda página não posso fazer quebra de página pois
a tabela invadiria a segunda página e empurraria elementos para a terceira, porém, meu relatório deve ter apenas duas páginas.

Para forçar a quebra de página estava marcando "run to bottom" nos elementos, no meu caso isto não serve.

De que forma poderia fazer esta quebra dinâmicamente?
Como poderia fazer com que quando a tabela invadisse a segunda página não houvesse quebra de página
e quando a tabela coubesse toda na primeira página houvesse a quebra?

Quem tiver alguma solução por favor me dá uma luz !!

Obrigado !!

Kaio CEsar
 
Índice dos Fóruns » Perfil de Kaio_C » Mensagens enviadas por Kaio_C
Ir para:   
Powered by JForum 2.1.8 © JForum Team