Relatório para espelho do ponto

Este recurso não está disponível no Gestão de Pessoas | HCM GO UP. Saiba mais.

Para customizar um modelo de relatório para a Assinatura Eletrônica é recomendado fazer uma cópia de um modelo já existente e, assim, necessário realizar as seguintes alterações no modelo:

Parâmetros de entrada

Ajuste os parâmetros com a seguinte nomenclatura e estrutura:

Nome da variável

Descrição da variável

Tipo

Tamanho

Edição

Tabela.Campo

Abrangência

Senha

Relacionar SQL

Valores

Util. Val.

Ignorar

EDatCmp

Competência

Data

0

MM/YYYY

Não

Não

Sim

Não

Não

EDatInR

Data Início Apuração

Data

0

DD/MM/YYYY

Não

Não

Sim

Não

Não

EDatFiR

Data Início Apuração

Data

0

DD/MM/YYYY

Não

Não

Sim

Não

Não

EVisRel

Modo de exibição

Cadeia de Caracteres

1

U

Não

Não

Sim

Lista

Não

Não

EAbrEmp

Empresa

Cadeia de Caracteres

099

A[99]

R034FUN.NUMEMP

Sim

Não

Sim

Não

Não

EAbrTcl

Tipo Colaborador

Cadeia de Caracteres

099

A[99]

R034FUN.TIPCOL

Sim

Não

Sim

Não

Não

EAbrCad

Colaborador

Cadeia de Caracteres

099

A[99]

R034FUN.NUMCAD

Sim

Não

Sim

Não

Não

ELisDem

Listar demitidos

Cadeia de Caracteres

1

U

Não

Não

Sim

Lista

Não

Não

Os valores esperados para a variável EVisRel são: “A - Assinar”, “V - Visualizar” e “R - Reprovar”.

Nota
  • Os parâmetros EAbrEmp, EAbrTcl e EAbrCad normalmente já existem nos modelos de relatório;
  • Se você quiser listar colaboradores demitidos através da tela de Gestão das assinaturas do espelho do ponto, será necessário incluir o campo ELisDem na tela de entrada do modelo conforme as parametrizações (tabela Parâmetros de entrada).

Seção Detalhe

Altere a Seção Detalhe do modelo e inclua o seguinte trecho de regra no evento Antes Imprimir:

<div class="Code"><p>...</p><p>xNumEmp = r034fun.numemp;</p><p>xTipCol = r034fun.tipcol;</p><p>xNumCad = r034fun.numcad;</p><p>...</p></div>

Seção adicional

Inclua uma seção adicional para exibir as informações da assinatura eletrônica do colaborador.

Exemplo:

Nesta seção é necessário adicionar os campos DTexto, DData, DHora, DUsuario, DEmail e DIp, os quais receberão as informações da assinatura no relatório que será gerado. Remova o espaço para assinatura manual, caso exista.

Inclua o seguinte trecho de regra no evento Antes Imprimir:

<div class="Code"><p>Definir alfa EVisRel;</p><p></p><p><span class="comentario">/* Visualizar */</span></p><p>Se (EVisRel = <span class="azul">"V"</span>)</p><p class="Ident1">Cancel (1);</p><p></p><p><span class="comentario">/* Assinar */</span></p><p>Se (EVisRel = <span class="azul">"A"</span>) {</p><p class="Ident1">Definir Alfa xData;</p><p class="Ident1">Definir Alfa xHora;</p><p class="Ident1">Definir Alfa xUsuario;</p><p class="Ident1">Definir Alfa xEmail;</p><p class="Ident1">Definir Alfa xIp;</p><p></p><p>AssinaturaDigitalPonto(xNumEmp, xTipCol, xNumCad, EDatCmp, EVisRel,xData, xHora, xUsuario, xEmail, xIp);</p><p></p><p class="Ident1">AlteraControle(<span class="azul">"DTexto"</span>, <span class="azul">"Descrição"</span>, <span class="azul">"Assinado digitalmente em"</span>);</p><p class="Ident1">AlteraControle(<span class="azul">"DData"</span>, <span class="azul">"Descrição"</span>, xData);</p><p class="Ident1">AlteraControle(<span class="azul">"DHora"</span>, <span class="azul">"Descrição"</span>, xHora);</p><p class="Ident1">AlteraControle(<span class="azul">"DUsuario"</span>, <span class="azul">"Descrição"</span>, xUsuario);</p><p class="Ident1">AlteraControle(<span class="azul">"DEmail"</span>, <span class="azul">"Descrição"</span>, xEmail);</p><p class="Ident1">AlteraControle(<span class="azul">"DIp"</span>, <span class="azul">"Descrição"</span>, xIp);</p><p>}</p><p></p><p><span class="comentario">/* Reprovar */</span></p><p>Se (EVisRel = <span class="azul">"R"</span>) {</p><p class="Ident1">Definir Alfa xData;</p><p class="Ident1">Definir Alfa xHora;</p><p class="Ident1">Definir Alfa xUsuario;</p><p class="Ident1">Definir Alfa xEmail;</p><p class="Ident1">Definir Alfa xIp;</p><p></p><p>AssinaturaDigitalPonto(xNumEmp, xTipCol, xNumCad, EDatCmp, EVisRel,xData, xHora, xUsuario, xEmail, xIp);</p><p></p><p>AlteraControle(<span class="azul">"DTexto"</span>, <span class="azul">"Descrição"</span>, <span class="azul">"Reprovado digitalmente em"</span>);</p><p>AlteraControle(<span class="azul">"DData"</span>, <span class="azul">"Descrição"</span>, xData);</p><p>AlteraControle(<span class="azul">"DHora"</span>, <span class="azul">"Descrição"</span>, xHora);</p><p>AlteraControle(<span class="azul">"DUsuario"</span>, <span class="azul">"Descrição"</span>, xUsuario);</p><p>AlteraControle(<span class="azul">"DEmail"</span>, <span class="azul">"Descrição"</span>, xEmail);</p><p>AlteraControle(<span class="azul">"DIp"</span>, <span class="azul">"Descrição"</span>, xIp);</p><p></p><p>}</p></div>

Através desta regra será feito o preenchimento das informações da assinatura.

Nota

Para listar esta seção, é necessário utilizar a função ListaSecao().

<div class="Code"><p><span class="comentario">/* Tratamento para Demitidos */</span></p><p></p><p>Se (ELisDem = <span class="azul">"N"</span>) {</p><p class="Ident1">Definir alfa sqlaux;</p><p class="Ident1">sqlaux = <span class="azul">" AND NOT EXISTS ( \</span></p><p class="Ident1"><span class="azul">SELECT 1 FROM R038AFA WHERE</span></p><p class="Ident1"><span class="azul">R038AFA.NUMEMP = R034FUN.NUMEMP AND</span></p><p class="Ident1"><span class="azul">R038AFA.TIPCOL = R034FUN.TIPCOL AND</span></p><p class="Ident1"><span class="azul">R038AFA.NUMCAD = R034FUN.NUMCAD AND</span></p><p class="Ident1"><span class="azul">R038AFA.DATAFA = (SELECT MAX(R038AFA.DATAFA) FROM R038AFA,R010SIT WHERE</span></p><p class="Ident1"><span class="azul">R038AFA.NUMEMP = R034FUN.NUMEMP AND</span></p><p class="Ident1"><span class="azul">R038AFA.TIPCOL = R034FUN.TIPCOL AND</span></p><p class="Ident1"><span class="azul">R038AFA.NUMCAD = R034FUN.NUMCAD AND</span></p><p class="Ident1"><span class="azul">R038AFA.DATAFA &#x3C;= " + dataFinalAlfa + " AND</span></p><p class="Ident1"><span class="azul">R038AFA.SITAFA = R010SIT.CODSIT AND</span></p><p class="Ident1"><span class="azul">R010SIT.TIPSIT = 7))";</span></p><p class="Ident1">InsSQLWhereSimples (<span class="azul">"Colaboradores"</span>, sqlaux);</p><p>}</p><p>Essa regra faz com que, quando a variável <b>ELisDem</b> estiver definida como <b>"N"</b>, os colaboradores demitidos não sejam listados no relatório.</p></div>

Este artigo ajudou você?