When-validate-item dinamico

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Bom DIa Pessoal
Estou com o seguinte problema

Tenho uma tela, que pesquisa pela Pessoa fisica, era só colocar o código da pessoa fisica e trazer os seus dados.
Porém agora, tive que colocar pra pesquisar pelo número do Documento.
Pode ser pesquisado pela pessoa fisica e pelo documento
Se for pesquisar pelo documento, digito um numero qualquer, ex: 123, e traz pela lov várias pessoas que iniciam com aquele numero.
Até ai faz tudo certo.
Porém não pode validar e trazer a lov quando eu pesquiso pela PF, tem q trazer o documento, mais não validar.
Eu fiz o seguinte
Mais também, depois de pesquisar pelo documento, preenche o campo :consulta.cd_pessoafisica, e eu deveria poder pesquisar de novo pelo documento.
Como está ai, só limpando a tela.

Selecionar tudo

if :consulta.cd_pessoafisica is null then
      if :nr_documento is not null  then
      		id_timer := create_timer('DOC',1,no_repeat);
      	:PARAMETER.V_PESQUISA := 'S';	
      end if;
end if;
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Consegui fazer da seguinte forma,
No when-validade-item do cd_pessoafisica, coloquei a seguinte validação

Selecionar tudo

 --parametro que validar a lov do documento
if:parameter.pessoa_fisica is null then
 	 SET_ITEM_PROPERTY('nr_documento', VALIDATE_FROM_LIST, PROPERTY_FALSE);
   else
   SET_ITEM_PROPERTY('nr_documento', VALIDATE_FROM_LIST, PROPERTY_true);
   end if;
no when-validade-item do nr_documento, coloquei o seguinte

Selecionar tudo


declare
	id_timer timer;
	lov boolean;
begin

if :cd_pessoafisica is null then
     if :nr_documento is not null  then
      id_timer := create_timer('DOC',1,no_repeat);
     end if;
end if;

end;
Ele até funciona, porém quando coloco um numero novo no nr_documento ou pela pf, da o seguinte erro:
O Valor informado para o campo é inválido.

Alguma dica pessoal, do que pode ser?
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Boa Tarde Pessoal
consegui fazer a lov tudo certo.
POrém surgiu um problema
fiz essa validação

Selecionar tudo

if :parameter.lov = 'S' then
	 lov := show_lov('LOV_DOC');
ELSIF :parameter.lov = 'N' THEN
   SET_ITEM_PROPERTY('NR_DOCUMENTO', VALIDATE_FROM_LIST, PROPERTY_FALSE);
ELSIF :parameter.lov = 'X' THEN

SET_ITEM_PROPERTY('NR_DOCUMENTO', VALIDATE_FROM_LIST, PROPERTY_true);
end if;
esse é o código da lov

Selecionar tudo

select p.nr_documento
    from pessoa_fisica p, parentesco pa
where pa.pf_cd_pessoafisica = p.cd_pessoafisica
and pa.cd_relacionamento = 3
and p.nr_documento  like :nr_documento||'%'
order by p.nm_pessoafisica
porque ao gerar a lov, em vez de trazer, por exemplo, todos os documentos que começam com 543, traz somente o primeiro e único que possui 543?
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Consegui fazer a lov.
Só mudei a configuração das propriedades.
Responder
  • Informação
  • Quem está online

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