Scripts de Sistema
Revisão de 17h55min de 16 de outubro de 2025 por Alex.vieira (discussão | contribs)
Conceito
Scripts Disponíveis
- OnCloseFormPrincipal: Este ponto de script é acionado no momento em que o formulário principal do sistema é encerrado. Ele permite executar rotinas de finalização, registro de logs, ou qualquer outra ação que deva ocorrer antes do fechamento total da aplicação.
- Parâmetros:
- CadastrosAbertos: String contendo a lista dos cadastros que estavam abertos no momento do fechamento. O formato é um JSON com informações sobre o nome do cadastro e os identificadores selecionados. Exemplo de formato:
- Parâmetros:
[
{"Nome": "BOLETOS", "IDs": "459,160"},
{"Nome": "LANCAMENTOSTESOURARIA", "IDs": "186"}
]
- Exemplo: O exemplo abaixo demonstra como utilizar o ponto de execução OnCloseFormPrincipal para impedir o fechamento do sistema caso existam lançamentos de tesouraria não confirmados.
procedure OnCloseFormPrincipal(CadastrosAbertos:String);
var
pJson:TPHJson;
I:Integer;
Q:TPHQuery;
begin
if not (CadastrosAbertos = ) then
begin
pJson := TPHJson.Create;
try
pJson.LerJson(CadastrosAbertos);
for I := 0 to pJson.Count - 1 do
begin
{ Tela de Lançamento da Tesouraria Aberta }
if (pJson.Linha(I).ElementoDoNome('Nome').Texto = 'LANCAMENTOSTESOURARIA') then
if not (pJson.Linha(I).ElementoDoNome('IDs').Texto = ) then
begin
Q := NewPHQuery;
try
Q.Add('SELECT ID '+
'FROM LANCAMENTOSTESOURARIA ' +
'WHERE SITUACAO = 1 '+
'AND ID IN ('+pJson.Linha(I).ElementoDoNome('IDs').Texto+')');
Q.Open;
if not (Q.Vazia) then
ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');
finally
Q.Free;
end;
end;
end;
finally
pJson.Free;
end;
end;
end;
- OnCloseFormCadastro: Este ponto de script é acionado no momento em que um formulário de cadastro é fechado. Ele permite executar ações relacionadas ao fechamento de cadastros específicos.
- Parâmetros:
- Cadastro: Nome do cadastro que está sendo fechado.
- IDs: Identificadores dos registros que estavam selecionados no momento do fechamento.
- Exemplo: O exemplo abaixo demonstra como utilizar o ponto de execução OnCloseFormPrincipal para impedir o fechamento do sistema caso existam lançamentos de tesouraria não confirmados.
- Parâmetros:
procedure OnCloseFormCadastro(Cadastro:String; IDs:String);
var
Q:TPHQuery;
begin
if (Cadastro = 'LANCAMENTOSTESOURARIA') then
begin
if not (IDs = ) then
begin
Q := NewPHQuery;
try
Q.Add('SELECT ID '+
'FROM LANCAMENTOSTESOURARIA ' +
'WHERE SITUACAO = 1 '+
'AND ID IN ('+IDs+')');
Q.Open;
if not (Q.Vazia) then
ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');
finally
Q.Free;
end;
end;
end;
end;