Cadastro Pai

Revisão de 17h58min de 22 de setembro de 2023 por Alex.vieira (discussão | contribs) (Criou página com 'O sistema foi projetado de forma que o acesso ao registro principal, conhecido como "Pai", seja facilmente acessível. Por exemplo, ao visualizar os itens de um orçamento, vo...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

O sistema foi projetado de forma que o acesso ao registro principal, conhecido como "Pai", seja facilmente acessível. Por exemplo, ao visualizar os itens de um orçamento, você pode acessar as informações do registro pai, que, neste caso, é o próprio orçamento. Essa estrutura permite uma manipulação mais eficaz dos elementos, reduzindo a necessidade de criar consultas SQL para acessar o registro pai.

Para acessar o registro pai, deve ser acessada a Query em que está posicionada e utilizar a propriedade DataSetPai, através desta, por exemplo, poderá ser utilizada a propriedade FieldbyName para acessar as informações deste registro pai.

Isso possibilita que os registros filhos possuam acesso nas informações presentes no registro pai. Um exemplo disso pode ser visto no código a seguir:

begin
 Informacao(ORDEMSERVICOMANUTENCAOITENS.DataSetPai.FieldByName('ID').AsString);
end.

Com essa estruturação, podem ser feitas as manipulações necessárias, como pode ser mostrado no exemplo abaixo, no qual, um botão específico está habilitado levando em consideração a situação em que se encontra seu registro pai.

procedure onStateChange;
begin

 ORDEMSERVICOMANUTENCAOITENS.BotaoDoNome('C_BOTAO').Habilitado := (((NOT ORDEMSERVICOMANUTENCAOITENS.Vazia) AND 
                                        NOT (ORDEMSERVICOMANUTENCAOITENS.State in [dsEdit,dsInsert])) OR 
                                        (ORDEMSERVICOMANUTENCAOITENS.DataSetPai.FieldByName('SITUACAO').AsString IN ['3','7']));                                                                           
end;

Além do registro pai, é possível utilizar a propriedade em modo cascata, ou seja, obter o registro pai do registro pai, da seguinte forma:

procedure onStateChange;
begin
  Informacao(QUESTIONARIO_RESPOSTAS.DataSetPai.DataSetPai.FieldByName('NOME').AsString);        
end;