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;
1 Valor passado pela variável pTipAtiDis desconhecido;
2 Não existe Atividade / Disciplina nesta posição;
3 Não existe rateio nesta posição, porém os valores integrais foram carregados;
4 Erro Inesperado.

Exemplo 1:

Obter todas as disciplinas cadastradas para um determinado colaborador:

Ind = 1;
Ret = BuscaAtividadeDisciplina(1, Ind, 1);

Enquanto ((Ret = 0) ou (Ret = 3))
Inicio

 

  /* Neste momento a tabela R171DPF estará carregada com a Disciplina da sequência "Ind" */


  /* Se tiver rateio cadastrado, ele estará disponível na tabela R171DPR */

 

  /* Busca a próxima disciplina */


  Ind = Ind + 1;
  Ret = BuscaAtividadeDisciplina(1, Ind, 1);
Fim;


/* Quando sair do Enquanto, "Ret" será 2, pois ele percorreu todas as disciplinas do colaborador */

Exemplo 2:

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

Ind = 1;
IndRat = 1;
Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);

Enquanto ((Ret = 0) ou (Ret = 3))
Inicio

  /* Neste momento a tabela R171APF estará carregada com a Atividade da sequência "Ind" */

  /* Busca todos os rateios da atividade da sequência "Ind" */
  Enquanto (Ret = 0)
  Inicio

    /* Neste momento a tabela R171APR estará carregada com a Atividade da
       sequência "Ind" e o Rateio indicado pelo índice "IndRat" */

    /* Busca o próximo rateio da sequência "Ind" */
    IndRat = IndRat + 1;
    Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);
  Fim;
  /* Quando sai do Enquanto, "Ret" será igual a 3, pois ele percorreu todos os
     rateios da atividade */

  /* Busca a próxima atividade */
  IndRat = 1;
  Ind = Ind + 1;
  Ret = BuscaAtividadeDisciplina(1, Ind, IndRat);
Fim;
/* Quando sair do Enquanto, "Ret" será 2, pois ele percorreu todas as atividades do colaborador */

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

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

Este artigo ajudou você?