PerAcertoQue
Esta variável retornará na regra o percentual de acerto da questão (0 a 100).
Tipo: Numérica - zz9,99999
Definir Cursor Cur_R202RES;
Definir Alfa xResCor;
PercAcertoQue = 100;
QtdResCerTes = 0;
QtdResIncTes = 0;
xGruPer = R202PER.GruPer;
xCodPer = R202PER.CodPer;
Cur_R202RES.SQL "SELECT
CODRES,RESCOR FROM R202RES WHERE GRUPER = :xGruPer AND
CODPER = :xCodPer ORDER BY CODRES";
Cur_R202RES.AbrirCursor();
xQtdeResCor = 0;
xQtdeResInc = 0;
xQtdeRespostas = 0;
xHouveAssinalamento = 0;
Enquanto (Cur_R202RES.Achou)
{
xCodRes = Cur_R202RES.CodRes;
xResCor = Cur_R202RES.ResCor;
/* Verifica se houve assinalamento. Só corrige a questão se pelo menos
uma resposta for assinalada. Isso é feito pois uma resposta incorreta não
assinalada é considerada como correta. E para evitar que ao simplesmente passar
de uma questão para outra, sem assinalar qualquer resposta, seja corrigida
indevidamente a questão. Exemplo: Digamos que o usuário não terminou todas as
questões do teste, as questões não respondidas não podem ser corrigidas.
*/
Se (ResAssTeste[xCodRes] = "S")
xHouveAssinalamento = 1;
Se (ResAssTeste[xCodRes] <> xResCor)
PercAcertoQue = 0;
Se (ResAssTeste[xCodRes] = xResCor)
xQtdeResCor = xQtdeResCor + 1;
Se ((ResAssTeste[xCodRes] = "S") e (xResCor = "N"))
xQtdeResInc = xQtdeResInc + 1;
xQtdeRespostas = xQtdeRespostas + 1;
Cur_R202RES.Proximo();
}
Cur_R202RES.FecharCursor();
Se (xHouveAssinalamento = 0)
{
PercAcertoQue = 0;
QtdResCerTes = 0;
QtdResIncTes = 0;
Cancel(0);
}
Se (xQtdeResInc > 0)
{
PercAcertoQue = 0;
QtdResCerTes = 0;
QtdResIncTes = xQtdeResInc;
Cancel(0);
}
Se (xQtdeRespostas > 0)
{
PercAcertoQue = ((xQtdeResCor / xQtdeRespostas) * 100);
QtdResCerTes = xQtdeResCor;
QtdResIncTes = xQtdeResInc;
Cancel(0);
}
Utilização: Pode ser utilizada na regra associada ao processo 262-Certificação - Corrigir questões.
Disponível para o módulo: TR.