É possível usar 2 tabelas no set_block_property

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
lestafh
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Sex, 17 Ago 2007 1:45 pm
Localização: são paulo

Bom dia pessoal.
Estou tentando usar o comando set_block_property mas estou com um problema que não sei se tem solução usando esse set_block_property.

Tela um form com cabeçalho e detalhes.
Ambos são blocos base-table.
Tenho tb uma tela separadamente com colunas para consulta desses blocos base-table.
Criei duas variáveis uma l_vWhere e outra l_vWherel uma recebe cabeçalho e outra os detalhes o problema é quando consulto os detalhes e não há dados mesmo assim o cabeçalho é consultado. então ele me traz a linha de cabeçalho mas não o detalhe isso não acontece ao inverso... quando consulto o cabeçalho as linhas se comportam normalmente.
Tem alguma forma de corrigir isso sem ter que criar uma view... por que tiver que criar uma view ... vou perder tudo e ter que refazer tudo em no-base-table.

abs

segue script:

Selecionar tudo

      -- Conta cargo
  		  IF :AP_LETTER_EXC_V.BANK_ACCOUNT_NAME IS NOT NULL THEN
  			-- 
  			IF l_vWhere IS NOT NULL THEN
          l_vWhere := l_vWhere || ' AND ';
  			END IF ;   
 		      l_vWhere := NVL(l_vWhere, ' ') || ' BANK_ACCOUNT_NAME = '|| '''' ||:AP_LETTER_EXC_V.BANK_ACCOUNT_NAME||'''';
  			--
  			ELSE
  			IF l_vWhere IS NOT NULL THEN
           l_vWhere := l_vWhere || ' AND ';
  			END IF ; 
           l_vWhere := NVL(l_vWhere, ' ') || ' BANK_ACCOUNT_NAME =  BANK_ACCOUNT_NAME ';
  			END IF;  
  	  
      -- Pago Confirmado
  		  IF :AP_LETTER_EXC_V.PAGAMENTO_CONFIRMADO IS NOT NULL THEN
  			-- 
  			IF l_vWherel IS NOT NULL THEN
           l_vWherel := l_vWherel || ' AND ';
  			END IF ;   
 		      l_vWherel := NVL(l_vWherel, ' ') || ' PAYMENT_PRIORITY = '|| '''' ||:AP_LETTER_EXC_V.PAGAMENTO_CONFIRMADO||'''';
  			--
  			ELSE
  			IF l_vWherel IS NOT NULL THEN
           l_vWherel := l_vWherel || ' AND ';
  			END IF ; 
           l_vWherel := NVL(l_vWherel, ' ') || ' NVL(PAYMENT_PRIORITY,''N'') =  NVL(PAYMENT_PRIORITY, ''N'') ';
  			END IF;        


  	  SET_BLOCK_PROPERTY('AP_LET_EXC_HEAD', DEFAULT_WHERE, l_vWhere) ; 
  	  SET_BLOCK_PROPERTY('AP_LET_EXC_LINE', DEFAULT_WHERE, l_vWherel) ;   	  
  	  
  	 
  	  GO_BLOCK('AP_LET_EXC_HEAD');
      
        --CLEAR_BLOCK;
  	  SYNCHRONIZE ;
  	  EXECUTE_QUERY ;
  	  
  	  GO_ITEM('AP_LET_EXC_LINE.NR_LINE');
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Acho que você pode testar se existe linha na tabela DETALHE.
Pode ser por uma VIEW, ou pode usar essa dica aqui:
http://glufke.net/oracle/viewtopic.php?t=5

Em vez de criar o nome de uma VIEW, você pode simplesmente colocar um SELECT entre parênteses onde iria o nome da view/tabela.

O resto é igual como na dica acima.

Dai no seu select, você pode colocar um

Selecionar tudo

AND EXISTS (select 1 from bloco pai where pk = xxxxxx )
Responder
  • Informação
  • Quem está online

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