Validação de campos para pesquisa com PERCENTUAL

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Tiago,

Se você resolver o problema do % na pre-query, conta pra gente.
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

spernega, boa tarde.

Cara, o que foi feito foi desativa a trigger que fazia a validação se o campo estava nulo ou não, ou seja, desvestimos um santo para vestir outro.

Mas não fiquei satisfeito com isso não, mas por enquanto foi o que conseguimos :?
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Beleza, mas pensa em criar um bloco de parâmetros de pesquisa, você vai sofrer um pouquinho menos.
Mas o importante é funcionar.

Boa sorte
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Mas mesmo com o bloque de pesquisa, a situação seria a mesma não seria ? Teria um item nesse bloco number que o usuário iria colocar o "%" e iria dar o mesmo erro :(
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Bom dia Tiago,

Funciona sim...

Seguinte, montei um bloco base table numa tabela chamada cliente_proprietario e montei um bloco não base table chamado controle.

No bloco controle criei um campo chamado VALOR e montei uma pre-query no bloco cliente proprietario:

Selecionar tudo

Declare
	v_clau varchar2(2000);
begin
	if :controle.valor is null then
		 message('Query full não permitida!');
		 pause;
     --
     raise form_trigger_failure;
     --
	else
		if :controle.valor like '%' then
  		 message('Query com %!');
	  	 pause;
       set_block_property('cliente_proprietario', default_where, 'cliente_proprietario.cd_Clie_Fili like '||''''||:controle.valor||'''');
		else
  		 message('Query informada!');
	  	 pause;
       set_block_property('cliente_proprietario', default_where, 'cliente_proprietario.cd_Clie_Fili = '||:controle.valor);
		end if;
	end if;
end;
Desta forma ele considera corretamente o %.

veja se você consegue assim.
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

spernega,

Primeiro desculpa a demora, fiz um forms simples de teste aqui com o bloco não base-table e mesmo assim não rolou... Dá uma olhada ai para você ver como eu faço aqui, pois eu não monto o default_where, entendeu ?

https://drive.google.com/open?id=0B2SBc ... XU3UFpCS0U

[ ]s
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Tiago,

Consegui baixar o arquivo mas abre com erro, deve ser falta de alguma pll aqui, ou alguma coisa assim.
Estou anexando o teste que eu fiz e com o script de criação de uma tabela que eu usei com alguns inserts.

Renomeia o arquivo pra .zip e veja se consegue ver do jeito que eu fiz.
Anexos
Temp_Programas.txt
renomear para .zip
(9.01 KiB) Baixado 479 vezes
Responder
  • Informação
  • Quem está online

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