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.