ERP – Processo Automático – Como proceder para executar um relatório utilizando o processo automático onde a data seja sempre alterada diariamente ou semanalmente
Dúvida
Como proceder para executar um relatório utilizando o processo automático onde a data seja sempre alterada diariamente ou semanalmente no módulo de Recursos?
Exemplo:
Rodar o mesmo semanalmente (todo domingo) porém na tela de entrada onde defino a data, preciso que sempre utilize a semana anterior.
Se for rodar no próximo domingo dia 21/12, a tela de entrada para esse relatório tem que ser de 15 a 20/12.
Solução
Para executar um relatório utilizando processo automático onde a data seja sempre alterada, realize os passos a seguir:
1. Exclua o campo data da tela de entrada(senão ele sempre pegará o valor fixo da última execução) e deixe sendo apenas uma variável de regra;
2. Crie uma regra na Pré Seleção do relatório através do gerador de relatórios e atribua para o campo data da entrada via regra a variável DatSis - 7 assim constantemente ao executar o relatório buscará 7 dias para trás e alimentará o seu campo no relatório para fazer o filtro de forma automática;
Exemplo da regra no relatório como estava atualmente(os campos da tela de entrada era o EEmiIni e EEmiFim):
ConverteDataToDb(EEmiIni,DatIniStr);
ConverteDataToDb(EEmiFim,DatFimStr);
Cond = "";
Se (EEmiIni > 0)
Inicio
Cond = " AND (E501TCP.DATEMI >= " + DatIniStr + ")";
InsClauSQLWhere ("DETALHE_1", Cond);
Fim;
Cond = "";
Se (EEmiFim > 0)
Inicio
Cond = " AND (E501TCP.DATEMI <= " + DatFimStr + ")";
InsClauSQLWhere ("DETALHE_1", Cond);
Fim;
3. Sugestão como deve ajudar a regra para atender a necessidade:
EEmiIni = DatSis - 7;
EEmiFim = DatSis;
ConverteDataToDb(EEmiIni,DatIniStr);
ConverteDataToDb(EEmiFim,DatFimStr);
Cond = " AND (E501TCP.DATEMI >= " + DatIniStr + ") AND (E501TCP.DATEMI <= " + DatFimStr + ")";
InsClauSQLWhere ("DETALHE_1", Cond);
Abaixo imagem mostrando o relatório com a depuração e com valores fazendo o filtro: