Como fazer um Mestre-Detalhe igual ao MD do Desktop?

Foi justamente o que eu quis dizer com ter uma rotina para ficar deletando estes mestres sem detalhe que o usuário pode não terminar ou deixar na base para o usuário terminar, a outra questão é quanto a obrigatoriedade dos campos que deve ser tratada apenas na aplicação. Mas parabéns por compartilhar a idéia Fred, existem muitas formas para resolver situações que o scriptcase não faz nativamente, tenho certeza que as sugestões de todos aqui são apenas para melhorar a sua implementação, para tratar situações que esta sua solução pode gerar.

Já uso há bastante tempo esse esquema e não tinha pensado em colocar um tópico sobre isso pois é bem útil.

No meu caso já tive 2 demandas: - poucos usuários inserindo - muitos usuários inserindo

Ambos preferi fazer um lookup após a inserção e retornar o ID inserido. Para o caso de muitos usuários guardei a sessão do PHP na tabela cabeçalho e adicionei no where para retornar o ID inserido e assim nunca tive problemas.

A única diferença é que o Fred já inseriu a primeira linha e no meu caso o valor recuperado eu passo como parâmetro, pois tenho o campo nos itens (FK) escondido que recebe por valor definido a PK do cabeçalho via variável global. Assim para as demais linhas sempre assumirá o valor certo.

Em questão ao usuário abandonar o form (ficará sem os itens MD como o Haroldo falou) para corrigir isso fiz uma rotina que deleta os registros do dia anterior que estão sem itens no onScriptInit da consulta mesmo (claro que foi minha demanda e têm diversas maneiras de resolver isso).

Espero ter contribuído.

Concordo que esbarra na questão dos inserts concorrentes e também na questão de o usuário ser obrigado a atualizar o mestre, coisa que no delphi não era necessário pois na chamada do detalhe era possível chamar um método verificar alterações no mestre e salvar simultâneo, claro que isso porque o desktop permite esse tipo de implementação.

Se a intenção é ter o ID gravado primeiro para que op formulário seja carregado já em edição com o detalhe disponível, o exemplo atingiu o objetivo com certeza!

Parabéns!