Gravar Mestre e Detalhe no mesmo tempo.

Boa Tarde a todos,
Tenho duas aplicações. Elas são mestre detalhe.
A Aplicação PAI são dados da Nota Fiscal e a aplicação Filho, são dados dos Itens da Nota Fiscal.

Atualmente eu gravo os dados da Nota e em seguida informo os itens da Nota.

O que estou querendo é uma gravação única. Informo os dados do Pai, informo todos os filhos e quando eu gravar, gravo os dois de uma única vez.

Alguém pode me dar uma dica?

Abraços!
Watson Passos

Alguém sabe alguma coisa pra resolver esse problema? Já dei uma busca no Forum e não achei nada, apenas semelhanças.

existem várias formas de fazer isso.

Uma é antes de acessar o formulario mestre, gravar um registro na tabela, pegar o id gerado e chamar o formulário para esse id.

Outra forma, é não usar mestre detalhe e sim um acessar o detalhe através de um iframe, e vc passar todos os campos do formulario mestre para o detalhe, e ao salvar o primeiro item, antes gravar o mestre, pegar o id e salvar o detalhe.

Oi haroldo, vc teria algum exemplo pra me enviar?
Se sim, meu e-mail é watsonpassos@gmail.com.

Abraços e muito obrigado!

Não tenho, meu foco sempre foi tentar ser o mais produtivo possível, e isso é o tipo de coisa que toma tempo, e o modelo de mestre detalhe do sc funciona, apesar de ser pesado, lento. Um dia que eu estiver ocioso vou mexer nisso.

Mas tenho feito muitas consultorias onde faço esse tipo de trabalho para o cliente.

Olá Haroldo, quanto custa vc me desenvolver um modelo de Mestre Detalhe, pode ser simples, onde eu grave o mestre e o detalhe juntos, sem precisar de gravar o mestre primeiro. Me envie um orçamento para watsonpassos@gmail.com

Abraços!

Esse exemplo eu tambem queria

Pessoal, estava com o mesmo problema e lendo a resposta do haroldo tive uma ideia que vai funcionar.

No formulário mestre crie os campos que vc vai precisar salvar no detalhe.

Ex.: suponhamos que Vc tem o cadastro e vai precisar salvar na nessa tabela (cadastro geral) e tem uma tabela de telefones (comercial, residencial, celular, recado…)

Na formulário Principal crie os campos que serão necessário para alimentar a tabela de telefones (Tipo, numero, falar_com)

crie um método PHP contendo a função contendo:

sc_exec_sql (“Comando SQL”, “Conexão”);
sc_commit_trans (“Conexão”);

ex:
[b]//select da TABELA_GERAL
$select_geral = (“SELECT CODIGO
FROM TABELA_GERAL
WHERE CODIGO = ‘{CODIGO}’”);

sc_lookup(cadastro, $select_geral);

$id = {cadastro[0][0]};
$tipo = {TIPO};
$tel = {telefone};
$recado = {falar_com};

//INSERE TELEFONE
sc_exec_sql(“INSERT INTO
ID_CADASTRO_GERAL,
TBL_TELEFONES,
(ID_TELEFONES,
TIPO_TEL,
NUM_TEL,
FALAR_COM)
VALUES
(’$id’,’$tipo’,’$tel’,’$recado’)”);[/b]

feito isso, no evento onValidate chame o método PHP que criou

Essa forma que fiz funciona para único registro mas só mexer na programação que dá pra fazer aparecer vazio ou preenchido usando ajax no modo de atualização.