Inseri um subreport no meu relatorio principal, mas preciso que os dados do subreport aparecem sincronizados com o relatorio principal.
Como assim sincronizado?
LeoMarola
Bem,
Você está passando o datasource do subrelatorio por parâmetro correto?
Na aba subreport do seu subrelatorio insira:
($P{datasource}.filter($F{chave})
Você vai filtrar os resultados pela chave especificada, essa chave pode ser uma Id.
andreengesoft
A unica coisa que eu fiz foi ir em Edit Insert Subreport, em seguida montei o relatório do subreport usando o sql do relatorio principal, queria saber como eu uso o sql do relatorio principal no subreport para que os resultados saem sincronizados, pq o que está acontecendo é que os resultados do subreport saem iguais em todas as paginas do relatorio principal pois já foi executado, mas o que eu quero é que ele execute juntamente com o relatorio principal e nao tudo de uma vez e com dados repetidos em todas as páginas.
J
julianostr
Você tem que criar um parâmetro que ligue o relatório principal com o sub-relatório.
Na aba Subreport(Other) do sub-relatório você adiciona os parâmetros para fazer a ligação.
Então, se os campos para ligação for cod_emp e cod_func seria assim:
Ou seja, os parâmetros receberão os dados do relatório princial, identificados aqui como os $F.
Daí é só utilizar os parâmetros lá na consulta do sub-relatório:
andreengesoft
Como eu adiciono este parametro la no subreport, como faço pro subreport reconhecer?
coloquei na sql do subrelatorio $P {COD_EMP} NAO DEU
criei um parametro la com valor default com $P {COD_EMP} tabmém nao deu como seria?
obs: COD_EMP eu mudei para o nome da minha variável
VALEU
ANDRÉ BOM FDS! 8)
J
julianostr
Clique com o botão direito sobre o sub-relatório (aquele objeto cinza dentro do relatório), vá em Properties e depois na aba Subreport(Other). Clique em Add (botão abaixo à esquerda) .
Na janela que vai abrir, no campo acima digite COD_EMP e no campo abaixo $F{COD_EMP} Esse campo $F{COD_EMP} é o que já existe na sua consulta principal. Faça o mesmo com os outros que porventura você necessita.
Agora abra o seu sub-relatório e basta adicionar como critério na sua consulta os parâmetros criados anteriormente, ou seja, $P{COD_EMP}. Não é pra criar esse parâmetro no sub-relatório, a consulta já vai reconhecer.
É óbvio que cod_emp e cod_func foi só um exemplo, você terá que substituir pelos campos que serão o “link” do relatório pro sub-relatório.
Tenha em mente que um sub-relatório, a princípio, sempre será ligado ao principal justamente pra poder listar as informações pertinentes ao relatório “pai”.
Pense no Grupo 1 como sendo o relatório principal e os subgrupos como sendo o sub-relatório.
Pra saber que os sub-grupos pertencem a um Grupo é necessário haver um link, nesse caso o Grupo é que determina. Lá no exempo é o campo CD_EMP que faz isso.
andreengesoft
Fala e AE blZ!?
Aqui acabei de tentar criei o parâmetro novamente no relatorio principal coloquei o valor default dele um campo que faz parte do sql do relatorio principal, em seguida fiz o que vc disse fui novamente na aba do subreport ohter e lancei Cliente em cima dp $P{Cliente} em seguida fui no arquivo do subrelatorio.jrxml e coloquei no final da sql where Cliente=$P{Cliente} quando vou compilar ele fala que o parâmetro nao existe. será que teria mais uma confoguração para linkar os 2 relatorio?
valeu! to na area aki :lol:
andreengesoft
Acabei de colocar $F{CLIENTE} com F nos dois lugares como vc tinha dito la em cima, ele compilo nos 2 relatorios mas ele da erro pois o $F{CLIENTE} não existe valor associado. empty datasource
andreengesoft
HELP ME PLEASE!
J
julianostr
andreengesoft:
Fala e AE blZ!?
Aqui acabei de tentar criei o parâmetro novamente no relatorio principal coloquei o valor default dele um campo que faz parte do sql do relatorio principal, em seguida fiz o que vc disse fui novamente na aba do subreport ohter e lancei Cliente em cima dp $P{Cliente} em seguida fui no arquivo do subrelatorio.jrxml e coloquei no final da sql where Cliente=$P{Cliente} quando vou compilar ele fala que o parâmetro nao existe. será que teria mais uma confoguração para linkar os 2 relatorio?
valeu! to na area aki :lol:
Ops, esqueci de um detalhe. Você precisa criar os parâmetros no subrelatório, aqueles que você associou lá nas Propriedades do objeto cinza.
Fazendo isso e seguindo o que eu lhe passei anteriormente deveria, teoricamente, funcionar.
Não estou podendo dar muita atenção pra isso agora, mas vá tentando, tem que funcionar. Talvez seja outro detalhe que esteja atrapalhando o progresso.
andreengesoft
Tentei aki ta foda, queria que voce me informasse com mais detalhes se possível.
Tipo eu crio os parâmetros no other lá e associo o campo do relt principal, minha duvida seria no subreport eu crio o parâmetro no relatorio do subreport pelo ADD parameters, mas qual o valor default que eu informo etc… me informe com detalhes somente a parte do relatorio do subreport, pq o do principal já ta ok.
valeu
J
julianostr
Menu View -> Report Parameters, daí você cria os parâmetros que foram associados. O valor default vai depender se a sua consulta principal irá retornar dados pra passar pro sub-relatório ou não.
Caso você tenha 4 campos pra associar ao subrelatório e sabe que 2 deles poderão vir null então a consulta do seu subrelatório deverá estar preparada pra “receber” esse null senão os registros não serão listados.
OK vo tentar dp do almoço e te do o toque valeu irmao! :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
andreengesoft
juliano tentei cadastrar os parametros ocmo vc falou, mas ele ainda continua pegando todos os dados de uma vez, eu posso te mandar os 2 jrxml pra vc ver se fiz certo a associacao de parametros?
seria o campo string cliente
teste.jrxml - principal
tete2.jrxml - subreport
valeu
J
julianostr
Pode, mas eu não garanto que vou olhar logo pois surgiu uns problemas aqui e não sei quando vou me livrar.
andreengesoft
tranqulo tem erro nao, mas e so ver mesmo se fiz o que vc me disse, la na barra cinza dar o add e default com o field da consulta, e no subreport da um add parameters com o mesmo nome e default campo field da consulta do subreport
andreengesoft
o mesmo sql do principal eu colei no subreport a unica diferenca foi o where = Cliente=$P{cli}
onde essse parametro e o criado no sbureport pelo add parameters
andreengesoft
nao precisa ser hoje amanha ou quinta se me da idéia valeu mesmo irmão!
J
julianostr
Se eu entendi, o subrelatório vai listar todos os chamados agrupados por situação de um determinado cliente.
A consulta do subrelatório deverá ser uma que traga um count(*) junto com o campo situação e daí no where você pode deixar como está, não esquecendo de fazer um group by pelo campo SituacaoChamada.Nome.
Sobre os joins acho que não precisa de todos, basta usar as tabelas e joins que precisam dos campo SituacaoChamada.Nome e Pessoa.Nome (Cliente), esse último pra fazer o “link” com o principal.
O campo $V{Cliente_COUNT) será o count(*).
andreengesoft
E ISSO MESMO INCLUSIVE O COUNT NA VERSAO 1.2.7 DO IREPORTS JA VEM PADRAO E SO CARREGAR PRA TELA, MAS O PROBLEMA QUE TA ROLANDO E QUE ELE TA PEGANDO O TOTAL DE SITUACOES DE TODOS OS CLIENTES TIPO SOMANDO O COUNT DE TODOS DE UMA VEZ SO, POR ISSO PRECISAVA DE IR PASSANDO AOS POUCOS O PARAMETRO DE CLIENTE, PARA QUE A CADA FOOTER ELE DE UM RESULTADO DAKELE CLIENTE E NAO DE TODOS DE UMA VEZ SO E REPETINDO ATÉ A ULTIMA PAGE. SACO? VALEU JULIANO TO AKI NA AREA
A QUESTÃO E SO COMO EU PASSO O PARAMETRO DO CLIENTE, PRA FAZER WHERE CLIENTE = PARAMETRO CLIENTE RELATORIO PRINCIPAL
andreengesoft
JULIANO CONSEGUI AQUI VALEU MESMO PELA FORÇA!!! EU TINHA ESQUECIDO DE TROCAR O ARQUIVO LA NO BARRA CINZA PRA TESTE2.JASPER, LA TA O ANTIGO QUE DEIXEI DE BAKUP TOTALSITUACOES VIU AI HEHEHEHEHEHE FODAS NE, MAS ACONTECE VALEUUUUUUUUUUUUUUUUUUUUU IRMÃO!