Mudanças entre as edições de "Cadastro Pai"
(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...') |
|||
Linha 14: | Linha 14: | ||
begin | begin | ||
− | ORDEMSERVICOMANUTENCAOITENS.BotaoDoNome('C_BOTAO').Habilitado := (((NOT ORDEMSERVICOMANUTENCAOITENS.Vazia) AND | + | 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; | end; | ||
Edição das 08h16min de 25 de setembro de 2023
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;