iberck
9/8/2017 - 4:45 PM

Mostrar la respuesta de otra pregunta en esta pregunta (opc múltiples con otra)

Mostrar la respuesta de otra pregunta en esta pregunta (opc múltiples con otra)

La respuesta de P2 se muestra por defecto al navegar hacia P3, ambas preguntas son de opciones múltiples con otra y tienen los mismos valores.

importPackage(com.liquidsoft.msurvey.api);

function onNavigate(params) {
    var valuesSel1 = [];
    var answer1 = ApiClient.findAnswerOptions("P2"); // múltiple
    var enterOpts1 = answer1.getEnterOptions();
    for (var i = 0; i < enterOpts1.length(); i++) {
        var optAlias = enterOpts1.get(i);
        var opt = ApiClient.findItem(optAlias);
        valuesSel1.push(""+opt.getValue());
    }
    
    var pThis=ApiClient.findQuestionOptions($node);
    var answer2 = new MAOptions(answer1.getAnswerType(), pThis);
    var thisOpts = pThis.getOptions();
    var selectedOptsAns2 = new JSONArray();
    for (var i = 0; i < thisOpts.length; i++) {
        var opt = thisOpts[i];
        if (valuesSel1.indexOf(""+opt.getValue()) > -1) {
            selectedOptsAns2.put(opt.getAlias());
        }
    }
    answer2.setOptions(selectedOptsAns2);
    answer2.setOptionsShowOrder(pThis.getVisibleOptionsJSONArray());
    answer2.setOtherText(answer1.getEnterOtherText());
    ApiClient.addTemporalAnswer($node, answer2);
    
    var answer = ApiClient.showAndWait($node);
    var next = ApiClient.findNext($node);
    return next;
}