[RESOLVIDO] Ajuda Sistema de preenchimento de formulários em sequencia.

Prezados,
Preciso de uma ajuda dos colegas aqui do Fórum. Uma sugestão ou dica.

Estou desenvolvendo um sistema que necessito que os dados sejam imputados em sequência, de forma que as tabelas (formulários) devem estar relacionadas com o primeiro formulário.
Por exemplo, o formulário A após salvar, eu tenho que preencher o formulário b (ou não), o formulário C (ou não), o formulário D (ou não) e assim por diante, e os formulários devem estar relacionados, ou seja, seus dados devem fazer parte do formulário A (tanto para consulta como para um ReportPDF).

Pensei em algo como pegar o último id do formulário A e de alguma forma link com os outros formulários, porque os outros formulários precisam estar relacionado com o id do formulário A.

Desde já agradeço,

Criar uma variável global no evento OnLoad do formulário Pai o que vai ‘ter os filhos dependentes’.
Exemplo a chave principal é {NumeroPedidoID}:
[glo_NumeroPedidoID]={NumeroPedidoID};

Entrar em Aplicação em Variáveis Globais e Marcar ela como Saída:

Nos Outros Formulários que vão estar amarrado ao Pai - os Filhos Dependentes se for múltiplos registros grid, colocar no OnLoadRecord:
{NumeroPedidoID}=[glo_NumeroPedidoID]; // Aqui ele herda o ID do Pai.

Se for um filho de Único Registro colocar no OnLoad:
{NumeroPedidoID}=[glo_NumeroPedidoID]; // Aqui ele herda o ID do Pai.

Prezado Jailton,

Eu fiz um teste conforme você sugeriu, porém, o formulário filho não está assumindo o id do pai.
O id do pai logicamente é autonumeração, será que é preciso alterar o id do formulário filho para não ser autonumeração, por exemplo, colocar como int inclusive no banco de dados e na aplicação?

Obrigado,

No Filho você tem que selecionar o Campo do Pai para aparecer na tela também, ai marca ele como
campo ‘escondido’, e no OnLoad - se for único registro ou OnLoadRecord, para
múltiplos registros passa o valor da global para o campo:
{NumeroPedidoID}=[glo_NumeroPedidoID]; // Aqui ele herda o ID do Pai.

E tem que colocar na Parte SQL > WHERE dos filhos: NumeroPedidoID = [glo_NumeroPedidoID]

Jailton,
Não sei se estou fazendo certo ou não. Está dando erro.
Seguinte: minha tabela principal é Form_ocorr com o chave principal id, fiz o que vc falou coloquei no onLoad desta tabela pai, [glo_id]={id}, na Aplicação=>Variaveis globais=>deixei POST, GET e saída selecionado.

Em uma das minhas tabelas filho, Form_vei tem a chave principal id_vei, no onload dele ficou {id_vei}=[glo_id], na Aplicação=>Variaveis globais=>deixei POST, GET e saída selecionado. No SQL, Where= deixei id_vei = [glo_id]

Após ao executar apresenta erro. Eu também não entendi o que você quis dizer em deixar o campo escondido no formulário filho…

Obrigado pelo apoio

Essa aplicação Form_vei são várias linhas? grid view, etc, se for tem que colocar no OnLoadRecord.

O Campo escondido é que tem que você selecionar o campo {id_vei} para ele aparecer junto com os outros campos, porque
ele esta herdando do pai, ai depois você esconde ele assim:

Jailton as aplicações filho não são grid view. Coloquei o campo escondido, mas depois que eu coloco na parte SQL no WHERE id_vei = [glo_id] apresenta erro ao rodar.

Fora isso os id dos formulários filhos são autoincremento?

Obrigado!!!

E qual o erro tira cópia ‘imagens’ e cola aqui do WHERE como ficou e da ‘mensagem de erro’, do Campo OnLoad no filho como esta, etc.

Exemplo no Filho no SQL > Where tem que ficar assim:

Como seu ‘Pai’ tem Auto Numeração, vamos forçar ele a ficar nele depois que ele ‘gerar’ o número novo ID.

Olá Jailton, não está dando mais erro.
Porém o formulário filho não assume o id do pai.

Seguindo sua orientação o formulário pai ficou com a variável global=> glo_id (tipo saída) CORRETO? no onLoad dele ficou => [glo_id]={id}; //o id é autoincremento da tabela PAI (CHAVE PRIMÁRIA)

Seguindo sua orientação o formulário filho ficou com as variáveis globais =>glo_id (tipo saída) e glo_id_veiculo (tipo saída) CORRETO? no onLoad dele ficou => {id_veiculo}=[glo_id]; e no SQL =>
id_veiculo = [glo_id_veiculo]
//id_veículo é a chave primária da tabela filho autoincremento

Não sei mais o que fazer .

Obrigado,

O Filho, tem que ter o campo com o mesmo nome do Pai = {id} e ele não pode ser auto-incremento, já que ele vai receber a chave estrangeira que é a ‘id’ do Pai.

Normalmente quando modelos um banco, definimos as chaves primárias para ficar mais fácil de Identificar fazemos assim:
CodigoClienteID
CodigoProdutoID
PedidosID
LancamentoID
CodigoVeiculoID

E usamos o mesmo nome igualmente nos filhos.

Entendi Jailton, deu certo, muito obrigado!!!

Só que me deparei com outro problema, talvez para um novo tópico, eu preciso que por exemplo o formulário PAI tenha FILHOS que possam ter mais de um registro com mesmo ID.

Por exemplo, uma Ocorrência, pode ter mais de um veículo, ou seja, um ID Ocorrência, com 1, 2, 3 com mesmo Id do PAI.

Uffa.
Obrigado

Ok marca esse como resolvido e cria outro agora, para ficar mais fácil responder e não misturar confundir com o que já foi feito.