- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 4 meses atrás por rodfbar.
-
AutorPosts
-
30 de julho de 2008 às 12:11 am #82343targinosilveiraParticipante
Boa tarde amigos, achei essa comunidade hoje e fiquei muito feliz pois a alguns dias procurava algo assim, eu estou iniciando no oracle, e estou començando fazendo alguns pequenos formulários no Forms 6i, não sei se essa era a seção correta do forum para que eu fizesse minha pergunta, mas tudo bem agora já foi 😀 .
Minha questão é o seguinte, tenho um canvas com alguns campos e em um deses campos tenhum que é um codigo puxado de outra tabela atraves de um LOV, eu queria que após a seleção desse codigo ao sair so campo, fosse apresentado na frente dele num objeto tipo rotuo a descrição desse campo, alguém poderia me dar uma ajudinha?
Atecipadamente agradeço qualquer ajuda.
31 de julho de 2008 às 12:21 am #82348targinosilveiraParticipanteOlá amigos, boa tarde, ontem fiz essa pergunta aqui no forúm, e como hoje pela manhão achei a solução achei interessante posta-la aqui para que outras pessoas possam ser beneficiadas.
Caso alguém precise de algo assim e não conseguir realiza esse exemplo me envie um e-mail.
Codigo executado ao sair do campo:
BEGIN //Inicia a a procedure
//Na proxima linha será selecionado o campo a ser apresentador, logo em //seguida ele é jogado no campo de display através do INTO
SELECT DSC_BANCO INTO :DSP_BANCO FROM LOCA.T_BANCOS
//Aqui executo um clasula de pesquisa para o registro que preciso
WHERE COD_BANCO = :BANCO;
//E aqui indico o aviso a ser apresentado no display caso não seja encontrado dados
EXCEPTION
WHEN others THEN
:DSP_BANCO := 'Inválido!';
END;Abraços.
27 de agosto de 2008 às 10:01 pm #82539rodfbarParticipanteola…
algumas dicas interessantes:
– utilizar o nome do bloco antes de fazer a referencia a algum item;
(evitar erro se existirem nomes de itens iguais no seu form em blocos diferentes)
– verificar se o campo código foi informado antes de executar a consulta
– preparar a busca para tratar melhor algum outro possivel erropor exemplo no caso que voce fez
IF :nome_do_bloco.BANCO IS NOT NULL THEN
BEGIN
SELECT DSC_BANCO
INTO :nome_do_bloco.DSP_BANCO
FROM LOCA.T_BANCOS
WHERE COD_BANCO = :nome_do_bloco.BANCO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
:nome_do_bloco.DSP_BANCO := 'Inválido!';
WHEN OTHERS THEN
MESSAGE('Erro ao buscar descricao do banco: ' || SQLERRM);
MESSAGE(' ',NO_ACKNOWLEDGE);
:nome_do_bloco.DSP_BANCO := NULL;
RAISE FORM_TRIGGER_FAILURE;
END;
ELSE
:nome_do_bloco.DSP_BANCO := NULL;
/E CASO O CAMPO SEJA OBRIGATÓRIO/
MESSAGE('BANCO DEVE SER INFORMADO.');
MESSAGE(' ',NO_ACKNOWLEDGE);
RAISE FORM_TRIGGER_FAILURE;
END IF; -
AutorPosts
- Você deve fazer login para responder a este tópico.