BuscaAtividadeDisciplina

Retorna as Atividades / Disciplinas, de um determinado colaborador, utilizadas no cálculo. O mesmo processo pode ser feito via cursor, no entanto, a utilização da função gera um ganho de performance, pois retorna apenas os dados que estão carregados em memória.

Conforme o parâmetro “pTipAtiDis”, os dados lidos ficarão disponíveis nas tabelas de Atividades (R171APF, R171APR) ou nas tabelas de Disciplinas (R171DPF, R171DPR).

Sintaxe: BuscaAtividadeDisciplina(Numero pTipAtiDis, Numero pSeqAtiDis, Numero pSeqRateio):

Parâmetros:

pTipAtiDis - Variável numérica: se for informado 0 (zero) busca as Atividades e se for informado 1 (um) busca as Disciplinas;

pSeqAtiDis - Sequência das Atividades / Disciplinas;

pSeqRateio - Sequência do Rateio;

Retorno (na própria função):
0 Execução bem sucedida;
1Valor passado pela variável pTipAtiDis desconhecido;
2Não existe Atividade / Disciplina nesta posição;
3Não existe rateio nesta posição, porém os valores integrais foram carregados;
4Erro Inesperado.
Exemplo 1:

Obter todas as disciplinas cadastradas para um determinado colaborador:

<div class="Code"><p>Ind = 1;<br></br>Ret = BuscaAtividadeDisciplina(1, Ind, 1);</p><p>Enquanto ((Ret = 0) ou (Ret = 3))<br></br>Inicio</p><p></p><p> /* Neste momento a tabela R171DPF estará carregada com a Disciplina da sequência "Ind" */</p><p><br></br> /* Se tiver rateio cadastrado, ele estará disponível na tabela R171DPR */</p><p></p><p> /* Busca a próxima disciplina */</p><p><br></br> Ind = Ind + 1;<br></br> Ret = BuscaAtividadeDisciplina(1, Ind, 1);<br></br>Fim;</p><p><br></br>/* Quando sair do Enquanto, "Ret" será 2, pois ele percorreu todas as disciplinas do colaborador */</p></div>

Exemplo 2:

Obter todas as atividades cadastradas para um determinado colaborador e seus respectivos percentuais rateados:

<div class="Code"><p>Ind = 1;<br></br>IndRat = 1;<br></br>Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);</p><p>Enquanto ((Ret = 0) ou (Ret = 3))<br></br>Inicio</p><p> /* Neste momento a tabela R171APF estará carregada com a Atividade da sequência "Ind" */</p><p> /* Busca todos os rateios da atividade da sequência "Ind" */<br></br> Enquanto (Ret = 0)<br></br> Inicio</p><p> /* Neste momento a tabela R171APR estará carregada com a Atividade da <br></br> sequência "Ind" e o Rateio indicado pelo índice "IndRat" */</p><p> /* Busca o próximo rateio da sequência "Ind" */<br></br> IndRat = IndRat + 1;<br></br> Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);<br></br> Fim;<br></br> /* Quando sai do Enquanto, "Ret" será igual a 3, pois ele percorreu todos os <br></br> rateios da atividade */</p><p> /* Busca a próxima atividade */<br></br> IndRat = 1;<br></br> Ind = Ind + 1;<br></br> Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);<br></br>Fim;<br></br>/* Quando sair do Enquanto, "Ret" será 2, pois ele percorreu todas as atividades do colaborador */</p></div>

Utilização: Gerador de Relatórios e Regras.

Disponível para o módulo: Administração de Pessoal.

Este artigo ajudou você?