AJUDA URGENTE ... Combo

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
francisco.angelo
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 78
Registrado em: Qua, 16 Jan 2008 5:06 pm
Localização: RJ
Francisco Angelo
///////////////////////////////

Boa TArde... ! ! !

alguém pode me ajudar??

fiz um programa onde eu quero consultar a situacao das rotas.
eu preencho os seguintes campos: UF,ESTACAO E ROTAS.
aí eu clico em consultar e tenho a resposta nos campos : NOME E BA_MASC..

FIZ O COMANDO, E DEU CERTO MAIS SÓ QUANDO EU VOU INSERIR UM DE CADA VEZ.... E EU QUERO CONSULTAR VARIAS ROTAS DE UMA VEZ E TER RESPOSTAS SEPARADAS, VISUALIZANDO A IMAGEM TEM UMA NOÇAÕ MELHOR.

GOSTARIA DE SABER TAMBEM QUAL TRIGGER EU USO PARA EU TER A RESPOSTA AO APERTAR ENTER AO INVÉS DE CLICAR NO BOTÃO??



PARA UMA INFORMAÇÃO EU USO ESSE COMANDO:
DECLARE
VSITUACAO VARCHAR(50);
VSITUACAO1 VARCHAR(50);

VCAMPO1 VARCHAR(20);
VCAMPO2 VARCHAR(20);
VCAMPO3 VARCHAR(20);
VCAMPO4 VARCHAR(20);

BEGIN

VCAMPO1 := (:ROTAS.UF);
VCAMPO2 := (:ROTAS.ESTACAO);
VCAMPO3 := (:ROTAS.ROTA);


SELECT NOME,BA_MASC INTO VSITUACAO,VSITUACAO1 FROM ROTAS WHERE UF = VCAMPO1 AND ESTACAO = VCAMPO2 AND ROTA = VCAMPO3 ;

:ROTAS.NOME := VSITUACAO;
:ROTAS.BA_MASC := VSITUACAO1;

EXCEPTION
WHEN OTHERS THEN
MESSAGE('ROTA não ENCONTRADA');
MESSAGE('ROTA não ENCONTRADA');

END;



Imagem

Imagem


DESDE JÁ AOBRIGADO....
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

Para você fazer a consulta por varias rotas ao mesmo tempo, teria que ter um bloco multirow onde você pode digitar todas as rotas que deseja consultar.

Dai fazer o codigo parecido com isso aqui:

Selecionar tudo

DECLARE 
cursor c1 ( pcampo1 in varchar2
          ,pcampo2 in varchar2
          ,pcampo3 in varchar2 ) is
SELECT NOME,BA_MASC 
FROM ROTAS 
WHERE UF = pcampo1
AND ESTACAO = pcampo2
AND ROTA = pcampo3 ; 
--
r1 c1%rowtype;
--

VSITUACAO VARCHAR(50); 
VSITUACAO1 VARCHAR(50); 

VCAMPO1 VARCHAR(20); 
VCAMPO2 VARCHAR(20); 
VCAMPO3 VARCHAR(20); 
VCAMPO4 VARCHAR(20); 

BEGIN 


go_block('bloco');  -- ir para o bloco que esta o campo rota
first_record;
--
loop
 --
 open c1 ( :ROTAS.UF
         ,:ROTAS.ESTACAO
         ,:ROTAS.ROTA);
 fetch c1 into r1;
 --
:ROTAS.NOME := r1.nome;
:ROTAS.BA_MASC := r1.ba_masc;
--
 close c1;
 exit when :system.last_record = 'TRUE';
 next_record;
 --
end loop;

EXCEPTION 
WHEN OTHERS THEN 
MESSAGE('ROTA não ENCONTRADA'); 
MESSAGE('ROTA não ENCONTRADA'); 

END; 
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

ah esquecir de falar sobre a trigger.

Como você quer fazer uma consulta com varias rotas ao mesmo tempo você não tera opcao a não ser usando o botão.
francisco.angelo
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 78
Registrado em: Qua, 16 Jan 2008 5:06 pm
Localização: RJ
Francisco Angelo
///////////////////////////////

Po Cara, Valeu mesmo....

Agora o seguinte, vê se você pode me ajudar novamente....

eu criei uma tela para cadastrar/atualizar as rotas... só que é o seguinte, quando eu tento atulizar mudando apenas o campo BA_MASC... ele inseri tudo novamente.... e não é isso que eu quero, vai ter momentos em que eu vou inserir.... outros só vou atualizar....

ex: eu já cadastrei tudo no banco... depois de uma semana o numero do BA_MASC mudou... eu quero alterar só o campo BA_MASC...

como eu faço isso????


Imagem
ricardorauber
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 96
Registrado em: Qua, 21 Jun 2006 11:33 pm
Localização: Canoas RS

Cara, sinceramente, para que fazer toda essa gambiarra? Não é mais fácil fazer um bloco baseado na tabela ROTAS? Com isso tu consulta diretamente a tabela e pode alterar diretamente o registro desejado sem precisar ficar executando procedimentos.
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

Concordo com o Ricardo... Faz basetable que tudo se resolve, até as consultas ficaram mais faceis
Responder
  • Informação
  • Quem está online

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