Regra por processo 883 - Alterar programação de eventos
Esta regra será executada ao alterar informações da guia Programação da tela Administração de Eventos (FR234EVN) do módulo Treinamento.
Desta forma, a regra será executada nos seguintes momentos:
- Ao clicar no botão Alterar após ter feito qualquer operação (inclusão, alteração e exclusão) em qualquer uma das grades da guia (horários, instrutores, recursos instrucionais e coffee-break).
- Ao clicar no botão Marcar da tela Horários Recorrentes (chamada através dos botões Novo e Alterar, disponíveis no grupo Horários recorrentes - Manutenção).
- Ao excluir um registro da grade de Horários previstos, seja excluindo apenas uma ocorrência ou uma série (caso o registro excluído faça parte de uma).
O registro da tabela Cadastro de Eventos (R234EVN) permanece disponível para consulta na regra, assim como a variável de sistema vExecucaoRegra, para identificar se a regra está sendo chamada antes (vExecucaoRegra = 0) ou depois (vExecucaoRegra = 1) da alteração. É possível abortar a gravação das alterações utilizando o Cancel().
Exemplo:
Definir Alfa xNomEvn;
Definir Alfa xIdeEvn;
Definir Alfa xAssuntoEmail;
Definir Alfa xTextoEmail;
Definir Cursor CurR234HOR;
Definir Cursor CurR234INS;
Definir Cursor CurR033PES;
Definir Alfa xCar13;
Definir Alfa xCar10;
Definir Data xDatIni;
Definir Alfa xStrDatIni;
Definir Alfa xStrDatFim;
Definir Alfa xStrHorIni;
Definir Alfa xStrHorFim;
Definir Alfa xInstrutores;
RetornaAscII(13, xCar13);
RetornaAscII(10, xCar10);
xCodEvn = R234EVN.CodEvn;
xNomEvn = R234EVN.NomEvn;
xIdeEvn = R234EVN.IdeEvn;
@ vExecucaoRegra: 0 - Antes, vExecucaoRegra: 1 - Depois @
Se (vExecucaoRegra = 0)
{ xAssuntoEmail = "Programação do evento " + R234EVN.IdeEvn + " - Antes"; }
Senao
{ xAssuntoEmail = "Programação do evento " + R234EVN.IdeEvn + " - Depois"; }
xTextoEmail = "Evento: " + R234EVN.IdeEvn + " - " + R234EVN.NomEvn + xCar13 + xCar10;
ConverteMascara (3, R234EVN.DatIni, xStrDatIni, "DD/MM/YYYY");
ConverteMascara (3, R234EVN.DatFim, xStrDatFim, "DD/MM/YYYY");
xTextoEmail = xTextoEmail + "Período: " + xStrDatIni + " à " + xStrDatFim + xCar13 + xCar10;
xTextoEmail = xTextoEmail + "Programação: " + xCar13 + xCar10;
CurR234HOR.SQL "SELECT * FROM R234HOR WHERE CODEVN = :xCodEvn";
CurR234HOR.AbrirCursor();
Enquanto (CurR234HOR.Achou)
{
xDatIni = CurR234HOR.DatIni;
xHorIni = CurR234HOR.HorIni;
xHorFim = CurR234HOR.HorFim;
ConverteMascara (3, xDatIni, xStrDatIni, "DD/MM/YYYY");
ConverteMascara (4, xHorIni, xStrHorIni, "HH:MM");
ConverteMascara (4, xHorFim, xStrHorFim, "HH:MM");
xTextoEmail = xTextoEmail + " - " + xStrDatIni + " - " + xStrHorIni + " às " + xStrHorFim;
xInstrutores = "";
CurR234INS.SQL "SELECT CODPES FROM R234INS WHERE CODEVN = :xCodEvn AND DATINI = :xDatIni AND HORINI = :xHorIni";
CurR234INS.AbrirCursor();
Se (CurR234INS.Achou)
{
Enquanto (CurR234INS.Achou)
{
EstaNulo(xInstrutores, xNulo);
Se (xNulo = 0)
xInstrutores = xInstrutores + ", ";
xCodPes = CurR234INS.CodPes;
CurR033PES.SQL "SELECT NOMPES FROM R033PES WHERE CODPES = :xCodPes";
CurR033PES.AbrirCursor();
Se (CurR033PES.Achou)
{ xInstrutores = xInstrutores + CurR033PES.NomPes; }
CurR033PES.FecharCursor();
CurR234INS.Proximo();
}
xTextoEmail = xTextoEmail + " - Instrutores: " + xInstrutores;
}
CurR234INS.FecharCursor();
xTextoEmail = xTextoEmail + xCar13 + xCar10;
CurR234HOR.Proximo();
}
CurR234HOR.FecharCursor();
EnviaEmail ("usuario@senior.com.br", "usuario@senior.com.br", "", "", xAssuntoEmail, xTextoEmail, "", 0);
Utilização: ao alterar informações na guia Programação da tela Administração de Eventos (FR234EVN), inclusive ao gerar horários recorrentes.
Disponível para o módulo: Treinamento.