Cadastro Pai

Revisão de 18h07min de 2 de outubro de 2023 por Admin (discussão | contribs) (Conceito)

Conceito

Quando utilizamos os scripts de em cadastros, estão disponíveis os objetos relacionados ao cadastro corrente. Quando temos a existência de um cadastro pai, podemos acessar as informações do registro pai. 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;

A propriedade DataSetPai, quando a execução ocorre na parte de servidor, não estará disponível. Para estes casos, deverá ser realizada consulta SQL para obter as informações do registro pai.