|
Argow
Solution ready!
|
::::
|
Eventos nas Tabelas
|
|
Internos
Scripts podem ser executados antes e depois
dos seguintes eventos de uma tabela (veja também, eventos externos):
Notar que os eventos Editar e Inserir se referem a mudança no estado da tabela. Por exemplo, em uma janela PAD:
- Tabela em modo de consulta, usuário pressiona a tecla Insert, ou clica no botão [+]
- bIns, este evento pode ser utilizado para confirmar privilégios de escrita e, se for necessário,
a ação pode ser cancelada pelo script (retornando false)
- aIns, momento adequado para atribuir valores iniciais às colunas
- Tabela em modo de inserção. Se usuário cancelar, terminou o processo (com os eventos bCancel e aCancel). Se salva os dados, continua:
- bPost, lugar conveniente para validação de dados.
Se não satisfizer, o script pode cancelar a gravação e voltar a edição (retornando false)
- aPost, os dados foram salvos, atualizar outras informações
- Tabela em modo de consulta
Os script a serem executados são informados nas colunas:
Quando o mesmo evento é especificado em mais de um itemAction, eles são executados na ordem acima.
Os eventos que ocorrem antes da mudança, podem solicitar o cancelamento da ação (retornando false).
No exemplo abaixo, o script não permite que usários padrão modifiquem a tabela tbCliente nas segundas-feiras.
dicScript |
scriptName | scriptAlias | scriptBody | description |
naoModificar | Não Modificar | procedure naoMod... | Não permite modificar nas 2 |
function naoModificar: boolean;
begin
if sf.User.IsPower or not ( DayOfWeek( sf.now() ) = 2 ) then exit;
sf.shell.sayInfo(
sf.UserName + ', as segundas-feiras não é possível modificar esta tabela.',
'Suporte');
result:= false; // Não continuar
end;
|
Externos
Scripts podem ser indicados para outras aplicações (como Argow Web/MVC)
para as três operações básicas:
Além das variáveis Argow o especifação do script pode conter :PK e :TableName:
x.afterUpdate= report.do( :TableName, :Pk, :Ar_UserName );
|