Consulta por campo não base table

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
kary
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 04 Set 2006 11:27 am
Localização: RJ

Pessoal,

Estou com a seguinte dúvida. Possuo um forms para consulta de itens.Tenho um bloco base table onde tenho campos que não são base table, são recuperados pelo post_query do bloco. Atualmente faço a consulta pelo campo ITEM (da tabela do base table). Mas gostaria de consultar pelo campo CLASSE_ITEM, preenchido pelo post_query.

Gostaria de digitar a classe e trazer todos os itens daquela classe. Da forma atual recupero um item que possui somente uma classe, mas quero trazer uma classe com todos os itens daquela classe.

Não consegui fazer o relacionamento na cláusula where do bloco, alguém poderia me ajudar?
lodduda
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qua, 17 Ago 2005 10:14 am
Localização: Sapiranga-RS

eu acho que uma das formas de resolver o seu problema seria criando uma view com todos os campos que você vai mostrar, podendo assim consultar por qualquer campo
guerton
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Ter, 26 Out 2004 12:44 pm
Localização: Sapiranga - Rs

Acredito tambem que outra forma seria na pre-query você setar a where do bloco,

Selecionar tudo

def_where := 'exists (select 1 from tabela do post query a
                                where  a.item = bloco.item
                                 and     a.classe = '||:classe||')';
set_block_property(block, DEFAULT_WHERE, def_where);
faz um teste ai.
:wink:
kary
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 04 Set 2006 11:27 am
Localização: RJ

Caro guerton,

Este é o código que coloquei na pre-query, mas não retorna nada. Só para confirmar, estou somente setando o where, ainda não ocorreu o execute query ???

Selecionar tudo

DECLARE
   def_where  VARCHAR2(4000):= null;
    
begin
    
  def_where := 'exists (select 1 from itemt001 a 
  where a.codigoitem = :blk_consulta.codigoitem
  and a.classe = '||:blk_consulta.classe||')'; 
  
  set_block_property('blk_consulta', DEFAULT_WHERE, def_where); 

end;
Hahu
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 147
Registrado em: Qui, 16 Mar 2006 11:26 am
Localização: São Paulo
O mundo gira muito!!

Boa tarde glufke´s,

estou tendo está situação aqui tb :roll: ...e é exatemente isso que acontece. :shock:

além de tentar no pre-query eu coloquei no when-button-pressed e tb não funciona.. :cry:.

existe outra forma, help ?

abs Hahu
gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

faz assim:
vou usar como se fosse forms baseados na tabela emp e dept

PRE-QUERY:

Selecionar tudo

DECLARE
   vv_string varchar2(32767);
BEGIN
   if nvl(:bl_emp.v_dname_deptno, 0) = 0 then
      vv_string := ' exists (select 1 
                               from dept dp
                              where dp.deptno = ep.deptno
                                and dp.dname = '''||:bl_emp.v_dname_deptno|| ''')';

      SET_BLOCK_PROPERTY('bl_emp', DEFAULT_WHERE, vv_strin);
   end if;
EXCEPTION
END;
ai o alias "EP" você tem qui setar no status do bloco EMP.
=D
Hahu
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 147
Registrado em: Qui, 16 Mar 2006 11:26 am
Localização: São Paulo
O mundo gira muito!!

obrigado gokden, vou testar e depois deixo o resultado do que o ocorreu , para nossos amigos do glufke, terem como forma de consulta.. :wink:

Abs Hahu

Ps: Que Deus abençõe a todos!
Responder
  • Informação
  • Quem está online

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