Cadastro Pai
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 será possível utilizada, sendo assim, não está disponível, para estes casos, deverá ser realizado SQL para obter as informações.