Insert na tabela com base numa query

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
eduardo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 56
Registrado em: Ter, 10 Jul 2007 3:24 pm
Localização: sp
Sempre há algo a aprender....

Oi pessoal, estou com uma duvida e queria pedir ajudade voces por favor;

eu tenho 1 forms de pedidos que é 1 master detail a estrtura é mais ou menos assim:

bloco master: Dados do cliente e pedido

colunas : cod_cliente, nome_cliente, cod_pedido

bloco detail linhas do pedido

colunas

cod_pedido, cod_item_ped, cod_produto, nome_produto, qtd, valor
cod_pedido, cod_item_ped, cod_produto, nome_produto, qtd, valor
cod_pedido, cod_item_ped, cod_produto, nome_produto, qtd, valor

o que preciso fazer é:

no topo da tela irei digitar 1 codigo do pedido, quando der 1 tab preciso pesquisar na base pelo pedido e se achar copiar na tela todos os dados do bloco master e detail pois o usuário irá alterar dois campos do bloco detalhe; o cod pedido eu irei gerar atraves de sequence no trigger pre insert

minha duvida é como popular esses dados pois o bloco é multi record

desde já agradeço a ajuda
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Você não pode fazer uma consulta ou navegar entre os campos na triger when-validate-item, when-next-record, etc...

Faça um form de consulta / cadastro base table, então, você vai pedir pro usuário informar o código do pedido e ao apertar F8, se o pedido for localizado, beleza... ele popula tudo... caso contrário, exibe mensagem que não existe.

Se tudo for base-table, você precisa somente fazer o relation de forma correta e terá um master-detail sem problemas.

Agora, você pode fazer o seguinte... (pra ajudar você)

Já que ele só vai alterar o detail, você pode fazer com que no TAB (bloco master), ele abra um cursor fazendo referencia a esse campo e pesquisando na base, se existir, seta o default where e depois um execute_query, assim,e le irá buscar o detail e permitir que seja alterado.
eduardo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 56
Registrado em: Ter, 10 Jul 2007 3:24 pm
Localização: sp
Sempre há algo a aprender....

obrigado pelas dicas , mas na verdade não será feito um update porque a idéia é criar um novo registro para o novo pedido, o que acontece é q os clientes fazem pedidos parecidos , com produtos diferentes e cada tipo de produto é entregue em diferentes lugares e possuem preços diferentes; a idéia é carregar os dados , o usuário alterará o endereço de entrega o codigo do produto e quando salvar será gerado um novo pedido com os dados copiados e alterados.
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Na verdade você vai usar o pai para fazer novos pais e filhos, correto?

Dessa forma que te falei também te ajuda.
Responder
  • Informação