17609 - Executar relatório e enviar por e-mail para cada colaborador (Ex.: Cartão Ponto)
Problema: Precisamos executar um relatório específico, sendo que para as matrículas listadas neste relatório, deve ser enviado um mail, com o relatório gerado. É possível atender essa necessidade?
Solução:
Para tratar essa necessidade deverá definir dois relatórios onde:
Relatório 1:
- Deve ser criado um relatório que busque todos os colaboradores que deverão receber o e-mail.
- Para cada colaborador, executar a função ExecutaRelatorio, informando os parâmetros para geração do relatório 2. Para esta função, deve ser utilizada também as funções abaixo que definem os parâmetros de entrada do modelo:
SetaNumeroTelaEntrada(Alfa NomeCampo, Numero Valor)
SetaDataTelaEntrada(Alfa NomeCampo, Numero Valor)
SetaAlfaTelaEntrada(Alfa NomeCampo, Alfa Valor)
EscondeCampoTelaEntrada(Alfa NomeCampo)
- Após gerar o relatório 2, enviá-lo por e-mail;
- Após enviado, deve-se excluí-lo. Para isso, utilize a função ExecProg, que permite executar um arquivo .bat. Neste arquivo, deve ser definido para excluir o arquivo gerado no diretório definido no modelo 2.
Relatório 2;
- Modelo de relatório que deve ser gerado individualmente. Este modelo deve ser alterado o formato de saída para Arquivo. Necessitando ser informado o diretório e nome do arquivo a ser salvo.
Exemplo: Cartão Ponto, Holerites (Envelopes), Contratos de Trabalho, etc.
Rotina / Tela: Envio de relatório por e-mail.
Rotina / Tela: Envio de relatório por e-mail.
Solução:
De forma padrão, o sistema não possui a funcionalidade de gerar individualmente os relatórios e em paralelo enviar um a um ao seu destinatário.
Quando é gerado um relatório no sistema, todos os colaboradores são gerados ao mesmo tempo, formando um mesmo arquivo PDF por exemplo.
Enviar cada arquivo individual ao seu destinatário, buscando seu e-mail da ficha complementar por exemplo, é um comportamento que pode ser feito via Customização.
Caso o usuário possua conhecimento em Customizações de Relatório, poderá desenvolver a mesma se baseando no exemplo abaixo.
Ou então, poderá solicitar que a Senior, através da sua Fábrica de Software faça a customização para o cliente.
Abaixo, um exemplo caso seja optado por tratar da customização internamente.
Relatório 1:
- Deve ser criado um relatório que busque todos os colaboradores que deverão receber o e-mail.
- Para cada colaborador, executar a função ExecutaRelatorio, informando os parâmetros para geração do relatório 2. Para esta função, deve ser utilizada também as funções abaixo que definem os parâmetros de entrada do modelo:
SetaNumeroTelaEntrada(Alfa NomeCampo, Numero Valor)
SetaDataTelaEntrada(Alfa NomeCampo, Numero Valor)
SetaAlfaTelaEntrada(Alfa NomeCampo, Alfa Valor)
EscondeCampoTelaEntrada(Alfa NomeCampo)
- Após gerar o relatório 2, enviá-lo por e-mail;
- Após enviado, deve-se excluí-lo. Para isso, utilize a função ExecProg, que permite executar um arquivo .bat. Neste arquivo, deve ser definido para excluir o arquivo gerado no diretório definido no modelo 2.
Relatório 2;
- Modelo de relatório que deve ser gerado individualmente. Este modelo deve ser alterado o formato de saída para Arquivo. Necessitando ser informado o diretório e nome do arquivo a ser salvo.