Mudanças entre as edições de "Scripts de Sistema"

(Criou página com '==='''Conceito'''=== ==='''Scripts Disponíveis'''=== *'''OnCloseFormPrincipal:''' Este ponto de script é acionado no momento em que o formulário principal do sistema é...')
 
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
 
==='''Conceito'''===
 
==='''Conceito'''===
  
 +
Os scripts de sistema podem ser definidos diretamente no script da tela principal do sistema, permitindo associar procedimentos personalizados a eventos internos da aplicação.
 +
Esses eventos são disparados automaticamente em momentos específicos, como o fechamento do sistema ou de cadastros, possibilitando executar ações complementares, validações ou outras rotinas personalizadas.
  
==='''Scripts Disponíveis'''===
+
==='''Procedimentos 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.
+
*'''OnCloseFormPrincipal:''' Este evento é acionado no momento em que o formulário principal do sistema está sendo encerrado. Pode ser utilizado para executar rotinas de finalização, gravação de logs, validações ou bloquear o fechamento do sistema sob determinadas condições.
 
**'''Parâmetros:'''
 
**'''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:
 
***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:
Linha 39: Linha 41:
 
   
 
   
 
               if not (Q.Vazia) then
 
               if not (Q.Vazia) then
                 ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');                                          
+
                 ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');  
 
             finally
 
             finally
 
               Q.Free;                                                 
 
               Q.Free;                                                 
Linha 51: Linha 53:
 
  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.
+
*'''OnCloseFormCadastro:''' Este evento é acionado no momento em que um formulário de cadastro é fechado. Permite executar ações específicas relacionadas a cada cadastro, como validações, atualizações de status, etc.
 
**'''Parâmetros:'''
 
**'''Parâmetros:'''
 
***Cadastro: Nome do cadastro que está sendo fechado.
 
***Cadastro: Nome do cadastro que está sendo fechado.
Linha 74: Linha 76:
 
          
 
          
 
         if not (Q.Vazia) then
 
         if not (Q.Vazia) then
           ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');                                                                  
+
           ErroValidacao('não é possível fechar com lançamento da tesouraria não confirmado.');  
 
       finally
 
       finally
 
         Q.Free;                                                 
 
         Q.Free;                                                 

Edição atual tal como às 17h45min de 17 de outubro de 2025

Conceito

Os scripts de sistema podem ser definidos diretamente no script da tela principal do sistema, permitindo associar procedimentos personalizados a eventos internos da aplicação. Esses eventos são disparados automaticamente em momentos específicos, como o fechamento do sistema ou de cadastros, possibilitando executar ações complementares, validações ou outras rotinas personalizadas.

Procedimentos Disponíveis

  • OnCloseFormPrincipal: Este evento é acionado no momento em que o formulário principal do sistema está sendo encerrado. Pode ser utilizado para executar rotinas de finalização, gravação de logs, validações ou bloquear o fechamento do sistema sob determinadas condições.
    • 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:
[
 {"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 evento é acionado no momento em que um formulário de cadastro é fechado. Permite executar ações específicas relacionadas a cada cadastro, como validações, atualizações de status, etc.
    • 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.
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;