Serkronyx
9/8/2017 - 5:00 PM

Excluye las opciones múltiples que fueron elegidas en una pregunta de opciones múltiples previa.

Excluye las opciones múltiples que fueron elegidas en una pregunta de opciones múltiples previa.

Excluye las opciones múltiples que fueron elegidas en una pregunta de opciones múltiples previa.. Las opciones con código > 90 no son excluidas.

importPackage(com.liquidsoft.msurvey.api);

function onNavigate(params) {
    // Exluye las opciones múltiples elegidas en una pregunta dentro de esta pregunta.
    var answerOpts1 = ApiClient.findAnswerOptions("P23");
    var enterOptions = answerOpts1.getEnterOptions();
    var valuesSel = [];
    for (var i = 0; i < enterOptions.length(); i++) {
        var optAlias = enterOptions.get(i);
        var opt = ApiClient.findItem(optAlias);
        valuesSel.push(""+opt.getValue());
    }

    var pThis=ApiClient.findQuestionOptions($node);
    var thisOpts = pThis.getOptions();
    for (var i = 0; i < thisOpts.length; i++) {
        var opt = thisOpts[i];
        // la opción fue seleccionada en la pregunta anterior, y tiene código menor a 90
        if (valuesSel.indexOf(""+opt.getValue())>-1 && opt.getValue() < 90) {
            opt.setVisible(false);
        } else {
            opt.setVisible(true);
        }
    }
    
    var answer = ApiClient.showAndWait($node);
    var next = ApiClient.findNext($node);
    return next;
}