Dúvida - Escolher entre 2 Query no mesmo relatório.

Dicas e truques sobre Oracle Reports Builder - modo gráfico ou modo caractere, ascii, arquivo .PRT, etc
Responder
Jeremias
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 23
Registrado em: Seg, 15 Fev 2010 9:58 pm
Localização: São Paulo - SP

Boa tarde a todos,

Tenho 2 Querys diferentes....e a idéia seria criar 1 relatório a qual o usuário chamaria (escolheria) uma delas para gerar o relatório.

Alguém sabe a rotina ou tem idéia de como faço isso ??

Abs,
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

talvez de certo uma gambiarra da seguinte forma..
você mete dois subreport dentro de um e dai printa um ou outro de acordo com uma determinado parametro..

agora uma pergunta básica..
porque você não pode fazer 2 rel e decidir qual chamar na tua rotina do front end?
Jeremias
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 23
Registrado em: Seg, 15 Fev 2010 9:58 pm
Localização: São Paulo - SP

Victor,

Dei essa idéia ao meu supervisor aqui, de criar dois relatórios....mas ele é daquelas pessoas que acha melhor complicar do que facilitar....rss, vai entender :roll: .

estou quebrando a cabeça aqui...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

você não pode passar o conjunto de dados para seu relatorio ao invés de ter a query dentro dele?

dai você faria decidiria pela query que ira usar, executa e manda o fetch de dados

:?:
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

da uma olhada aqui
Jeremias
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 23
Registrado em: Seg, 15 Fev 2010 9:58 pm
Localização: São Paulo - SP

Obrigado pela atenção, vou tentar fazer dessa forma, já deu para ter uma idéia.

Até peço desculpas pela pergunta de novato...rss
Diego_Mello
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 229
Registrado em: Sex, 05 Set 2008 2:59 pm
Localização: Igrejinha - RS
Diego Mello
Igrejinha - RS
www.twitter.com/diegolmello

Opa...
O que eu vou falar não vai ajudar em nada a tua dúvida, mas fica a minha opinião. :P
É muito melhor trabalhar com vários layouts no mesmo relatório.

Imagina que tu tem 5 relatórios que fazem quase a mesma coisa:
1) O relatório A é sintético;
2) O B é analítico;
3) O C quebra por grupo;
4) O D quebra por data;
5) O E é retroativo;

Ai te pedem pra... sei lá... aumentar as casas decimais de um campo.
Pensa no trabalhão que tu vai ter catando os reports, abrindo um por vez, verificando caso a caso.

Eu, pelo menos, prefiro tu no mesmo lugar.
É quase o conceito de Package! hahahahaha
ricards
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Sáb, 29 Set 2007 12:59 am
Localização: Araraquara-SP
Contato:
Ricardo Neves
Analista e Instrutor Oracle Developer
Java Developer (JPA/JSF/Hibernate/WebServices/EJB)

Amigo, crie seu reports baseado em record group

Você cria toda a regra de seu reports numa package ou procedure na base de dados com as todas queries.

Seu report fica bem mais rápido e você consegue organizar melhor os dados para reports de grande porte.

Segue o tutorial que eu fiz de report baseado em record group, é bem fácil de utilizar esta forma de construir reports.

http://glufke.net/oracle/viewtopic.php?t=6653

Abraço
Rafael Martelli
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Sex, 17 Set 2010 9:58 am
Localização: Araraquara-SP
Rafael Martelli
Analista/Desenvolvedor Oracle
Araraquara-SP

Você pode utilizar um unnion na sua query!
Aí na cláusula where dos seus selects você coloca o parâmetro que identificará qual select vai executar.
No caso de 2 select (A e B), você cria um parâmetro que receberá qual relatório será executado (A ou B), aí no where de cada select você coloca a condição:

Selecionar tudo


  and p_tipo = 'A'

-- no outro select:

  and p_tipo = 'B'

O problema é que você sempre vai executar os 2 selects, e isso vai demorar.
Agora se a diferença entre seus select for a cláusula where, é só criar um parâmetro (p_where) que recebe a instrução where na trigger After Parameter Form, e no select colocar um &p_where.
Rafael Martelli
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Sex, 17 Set 2010 9:58 am
Localização: Araraquara-SP
Rafael Martelli
Analista/Desenvolvedor Oracle
Araraquara-SP

Outra forma de fazer, caso seu select for bem complexo, ou as condições de execução forem muitas, é criar uma package que faça o select dinamicamente e inserir o resultado em uma temporária. No relatório, na query principal, fazer o select na temporária.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes