Versões: | Microsiga Protheus 8.11 , Microsiga Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Idiomas: | Espanhol , Inglês |
Essa implementação possibilita, por exemplo, a redefinição da média dos itens de competência através
de critérios que diferem dos adotados pelo sistema.
Eventos
Na rotina de Cálculo dos Resultados das Avaliações, durante o cálculo da média por item de competência.
APDM010.PRW
APD01001 - Redefinição da Média ( [ aMediaItemComp ], [ aVlrQuestao ] ) --> aMediaItemComp
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
aMediaItemComp | Array of Record | Médias por item de competência | |||||||||||||||
aVlrQuestao | Array of Record | Valor de cada questão |
-
aMediaItemComp()
- Retorna o valor das médias alteradas pela função do usuário.
Será enviado dois arrays para a função do usuário vis ParamIXB.
Param1 = aMediaItemComp: Média por item de competência. Tipo array.
aMediaItemComp[ nPos , 01 ] := cCodAvaliacao //01 - Código da Avaliação
aMediaItemComp[ nPos , 02 ] := cCodAdo //02 - Código do Avaliado
aMediaItemComp[ nPos , 03 ] := cCodPro //03 - Código do Projeto
aMediaItemComp[ nPos , 04 ] := dDtIava //04 - Período Inicial
aMediaItemComp[ nPos , 05 ] := dDtFava //05 - Período Final
aMediaItemComp[ nPos , 06 ] := cCodCom //06 - Competencia
aMediaItemComp[ nPos , 07 ] := cCodItem //07 - Código do Item
aMediaItemComp[ nPos , 08 ] := cCodNet //08 - Código da Rede
aMediaItemComp[ nPos , 09 ] := 0 //09 - ZERO
aMediaItemComp[ nPos , 10 ] := cCodTip //10 - Tipo de Avaliação
aMediaItemComp[ nPos , 11 ] := cCodTipAv //11 - Tipo do Avaliador
Param2 = aVlrQuestao: Valor das Questões. Tipo array.
aVlrQuestao[ nPos , 01 ] := xFilial("RDB" //01 - Filial da RDB
aVlrQuestao[ nPos , 02 ] := cCodAvaliacao //02 - Código da Avaliação
aVlrQuestao[ nPos , 03 ] := cCodAdo //03 - Código do Avaliado
aVlrQuestao[ nPos , 04 ] := cCodPro //04 - Código do Projeto
aVlrQuestao[ nPos , 05 ] := cCodDor //05 - Código do Avaliador
aVlrQuestao[ nPos , 06 ] := dDtIava //06 - Período Inicial
aVlrQuestao[ nPos , 07 ] := dDtFava //07 - Período Final
aVlrQuestao[ nPos , 08 ] := cCodCom //08 - Código da Competência
aVlrQuestao[ nPos , 09 ] := cCodIte //09 - Item de Competência
aVlrQuestao[ nPos , 10 ] := cCodNet //10 - Código da Rede
aVlrQuestao[ nPos , 11 ] := cCodQue //11 - Código da Questão
aVlrQuestao[ nPos , 12 ] := nVlrQuestao //12 - Valor da Questão
aVlrQuestao[ nPos , 13 ] := cCodTip //13 - Código do Tipo de Avaliação
aVlrQuestao[ nPos , 14 ] := cCodTipAv //14 - Tipo do Avaliador
aVlrQuestao[ nPos , 15 ] := DtFava //15 - Período Final
Deverá ser retornado o array com a mesma estrutura de aMediaItemComp.
Segue exemplo do ponto de entrada que deverá ser utilizado:#INCLUDE 'RWMAKE.CH'USER FUNCTION APD01001Local aMediaItemComp := Paramixb[1] //-- Array com a média dos itens de competênciaLocal aVlrQuestao := Paramixb[2] //-- Array com o valor das questõesLocal nQuestao := 0 Local nX := 0 For nQuestao := 1 to Len(aMediaItemComp) nx := 0 Aeval(aVlrQuestao,{|X| If(x[3]==aMediaItemComp[nQuestao,2] .And.; x[8]+x[9]+x[10]+x[14] == aMediaItemComp[nQuestao,6]+aMediaItemComp[nQuestao,7]; +aMediaItemComp[nQuestao,8]+aMediaItemComp[nQuestao,11],nx++,nil)}) aMediaItemComp[nQuestao,9] := aMediaItemComp[nQuestao,9] / nxnext nQuestao Return(aMediaItemComp)