markdown Acumula lo contestado en el cuadro de conocimiento

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Acumula lo contestado en el cuadro de conocimiento相关的知识,希望对你有一定的参考价值。

Agrega lo contestado de P2-P7 en las otras menciones de P1A

```
////////////// ACCUMULATE CUADRO DE CONOCIMIENTO
function accumulateCuadroConocimiento() {
    var valuesAccumulateMap = {};
    accumulateMultipleValues("P3A", valuesAccumulateMap);
    accumulateMultipleValues("P4", valuesAccumulateMap);
    accumulateMultipleValues("P5", valuesAccumulateMap);
    accumulateMultipleValues("P6", valuesAccumulateMap);
    accumulateSingleValue("P7", valuesAccumulateMap);
    accumulateSingleValue("P8", valuesAccumulateMap);
    accumulateSingleValue("P9", valuesAccumulateMap);
    accumulateSingleValue("P10", valuesAccumulateMap);
    
    // excluir lo elegido en P3 y NINGUNA(999)
    excludeValues([getEnterValue("P3"), "999"], valuesAccumulateMap);

    // En P3A (otras menciones) debe asignarse la respuesta de lo acumulado
    var selectedOpts = new JSONArray();
    var mapValueAliasP3A = createMapValueAlias("P3A");
    for (var val in valuesAccumulateMap) {
        if (val in mapValueAliasP3A) {
            var alias = mapValueAliasP3A[val];
            selectedOpts.put(alias); // alias válido para P3A
        }
    }

    var node = ApiClient.findQuestionOptions("P3A");
    var answer1 = ApiClient.findAnswerOptions("P3A");
    answer1.setOptions(selectedOpts);
    // Establecer en P3A los textos de las opciones otra de los alias indicados
    var accumulativeOtherTexts = getAccumulativeOtherText(["P3A", "P4", "P5", "P6", "P7", "P8", "P9", "P10"]);
    answer1.setOtherText(accumulativeOtherTexts);
    answer1.setOptionsShowOrder(node.getVisibleOptionsJSONArray());
}

// Agrega el valor elegido en la pregunta de opciones simples "alias" dentro de map
function accumulateSingleValue(alias, map) {
    var val = getEnterValue(alias);
    if (val!=-1) {
        map[val] = true;    
    }
}

// obtiene el valor elegido en la pregunta de opciones simples "alias"
function getEnterValue(alias) {
    var answerOpts = ApiClient.findAnswerOptions(alias);
    if (answerOpts!=null) {
        var value = ApiClient.findItem(answerOpts.getEnterOption()).getValue();
        return value;    
    }
    return -1;
}

// Agrega los valores elegidos en la pregunta de opciones múltiples "alias" dentro de map
function accumulateMultipleValues(alias, map) {
    var valuesSel = getEnterValues(alias);
    for (var i = 0; i < valuesSel.length; i++) {
        var val = valuesSel[i];
        map[val] = true;
    }
}

// obtiene los valores elegidos en la pregunta de opciones múltiples "alias"
function getEnterValues(alias) {
    var valuesSel = [];
    var answerOpts = ApiClient.findAnswerOptions(alias);
    if (answerOpts!=null) {
        var enterOptions = answerOpts.getEnterOptions();
        for (var i = 0; i < enterOptions.length(); i++) {
            var optAlias = enterOptions.get(i);
            var opt = ApiClient.findItem(optAlias);
            valuesSel.push(opt.getValue());
        }    
    }

    return valuesSel;
}

// Crea un mapa con el formato: map[value]=alias con las opciones de la pregunta "alias"
function createMapValueAlias(alias) {
    var mapValueAlias = {}; // 
    var pThis=ApiClient.findQuestionOptions(alias);
    var thisOpts = pThis.getOptions();
    for (var i = 0; i < thisOpts.length; i++) {
        var opt = thisOpts[i];
        mapValueAlias[opt.getValue()] = opt.getAlias();
    }
    return mapValueAlias;
}

// Elimina los valores dentro del array "values" de map
function excludeValues(values, map) {
    for (var i = 0; i < values.length; i++) {
        var val = values[i];
        if (val in map) {
            delete map[val];    
        }
    }
}

// Retorna los textos de la opción otra de las preguntas contenidas en "aliasesArray" separados por "," valueOther es el valor de la opción otra en el conjunto de preguntas
function getAccumulativeOtherText(aliasesArray) {
    var accumulativeOtherTexts = "";
    for (var i = 0; i < aliasesArray.length; i++) {
        var alias = aliasesArray[i];
        var valuesSel = getEnterValues(alias);
        var answer = ApiClient.findAnswerOptions(alias);
        if (answer!=null) {
            var otherText = answer.getEnterOtherText();
            if (otherText!=null && otherText.trim()!="") {
                if (accumulativeOtherTexts.indexOf(otherText)==-1) {
                    accumulativeOtherTexts = accumulativeOtherTexts=="" ? otherText : accumulativeOtherTexts + "," + otherText;    
                }
            }
        }
    }

    return accumulativeOtherTexts;
}

```

以上是关于markdown Acumula lo contestado en el cuadro de conocimiento的主要内容,如果未能解决你的问题,请参考以下文章

markdown Decidir en base a lo introductioncido en una pregunta de texto abierto

markdown Decidir en base a lo introductioncido en una pregunta de texto abierto

markdown Excluir lo capturado en una pregunta de opc simplesymúltiple(con los mismos valores)de

markdown Excluir lo capturado en una pregunta de opc simplesymúltiple(con los mismos valores)de

markdown Excluir lo capturado en una pregunta de opc simples y simples(con los mismos valores)dentro

红移中的 PERCENTILE_CONT()