Exportar / Importar cuestionario JSON

Exportar / Importar cuestionario JSON

Procedimiento: 


Exportar formulario

  1. Abrir formulario en el editor de formularios; Checklist.aspx > SeccionPregunta.aspx?id=_____
  2. Abrir la consola del Navegador (inspeccionar)
  3. Pegar el contenido de fexporter.js.txt

  4. Ejecutar el script y se generará un archivo de texto

  5. Descargar el archivo generado

Importar  formulario

  1. Acceder al ambiente que se desea importar el formulario
  2. Crear un formulario vacío y abrirlo en el editor de formularios; Checklist.aspx > SeccionPregunta.aspx?id=_____
  3. Abrir la consola del Navegador (inspeccionar)
  4. Pegar el contenido de fimporter.js.txt

  5. Adjuntar el archivo que se generó en el paso de "Exportar formulario"

  6. Se corre el proceso y la plataforma indicará el avance del mismo

  7. Al finalizar se mostrará la bitácora del proceso generado

  8. Nota: En caso de que el formulario contenga catálogos será necesario crear esos catálogos y vincularlos manualmente al formulario.

Eliminar preguntas y secciones del formulario

  1. Acceder al ambiente que se desea importar el formulario
  2. Crear un formulario vacío y abrirlo en el editor de formularios; Checklist.aspx > SeccionPregunta.aspx?id=_____
  3. Abrir la consola del Navegador (inspeccionar)
  4. Pegar el contenido de fdeleter.js.txt
  5. Ejecutar el proceso. Esto eliminará las secciones y las preguntas.


fexporter.js.txt - TE genera un archivo JSON para poder importar ese cuestionario a otro lugar

  1. n2a.fxporter = {
    	mainItem : {}
    };
    
    n2a.fxporter.init = function(){
    	
    	n2a.fxporter.ChecklistId = _GET.id;
    	n2a.fxporter.domContainer = document.querySelector(".container form.mws-form");
    	console.log("Obteniendo secciones ...." + n2a.fxporter.ChecklistId);
    	Ext.get(n2a.fxporter.domContainer).mask("Obtniendo secciones....");
    	
    	let cuestionarioTitulo = ($("#main-title-label").text() || "").replace(/\s+/g, ' ').trim()
    	n2a.fxporter.mainItem.metaData = {
    		user : json_user.NombreCompleto,
    		uname : json_user.NombreUsuario,
    		fecha : moment().format("YYYY-MM-DD HH:mm:ss"),
    		url : document.location.href, 
    		ckid : n2a.fxporter.ChecklistId,
    		title : cuestionarioTitulo
    	};
    	
    	n2a.fxporter.obtenChecklistInfo(function(){
    		n2a.fxporter.obtenSecciones(function(v, json){
    			console.log("Secciones listas: ", n2a.fxporter.mainItem.secciones);
    			console.log("Obteniendo preguntas....");
    			Ext.get(n2a.fxporter.domContainer).mask("Obteniendo preguntas...");
    		
    			n2a.fxporter.obtenPreguntas(function(v, json){
    				Ext.get(n2a.fxporter.domContainer).unmask();
    				console.log("Preguntas listas: ", n2a.fxporter.mainItem.preguntas);
    				n2a.fxporter.showJSONWindow();
    			});
    		});
    		
    	});
    	
    
    };
    
    n2a.fxporter.showJSONWindow = function(){
    	MainActions.showHTMLWindow({
    		iconCls: "mail_box_icon",
    		html: "<div id='win-custom-field'>"+ 
    			"<label for='win-custom-field-txt'>Configuración de formulario</label><br/> " +
    			"<img src='img/icons/file-icon.png' onclick='n2a.fxporter.downloadFile();' /><br/>" +
    			"<textarea id='win-custom-field-txt' style='width:100%; height:400px;' onfocus='this.select();'></textarea>" +
    		"</div>",
    		w: 650,
    		h: 600,
    		onclose: function () {
    			
    		},
    		cb: function () {
    			let $txtField = $("#win-custom-field-txt");
    			$txtField.val(JSON.stringify(n2a.fxporter.mainItem, null, "\t"));
    
    		}
    	});
    };
    
    n2a.fxporter.obtenSecciones = function(cb){
    	n2a.fxporter.mainItem.secciones = [];
    	Ext.Ajax.request({
    		url: EvaluacionHandler,
    		params: {
    			pg: "ListSecciones",
    			start: 0,
    			limit: 100,
    			CheckListId : n2a.fxporter.ChecklistId,
    			sort : "SeccionId"
    		},
    		method: 'GET',
    		success: function (response, options) {
    			var json = Ext.util.JSON.decode(response.responseText);
    			n2a.fxporter.mainItem.secciones = json.data;
    			cb(true, n2a.fxporter.mainItem.secciones);
    		}
    	});
    	
    };
    
    n2a.fxporter.obtenChecklistInfo = function(cb){
    	n2a.fxporter.mainItem.ckItem = {};
    	Ext.Ajax.request({
    		url: CamposHandler,
    		params: {
    			pg: "list_cklist",
    			start: 0,
    			limit: 1,
    			id : n2a.fxporter.ChecklistId
    		},
    		method: 'GET',
    		success: function (response, options) {
    			var json = Ext.util.JSON.decode(response.responseText);
    			if(json.data.length > 0){
    				n2a.fxporter.mainItem.ckItem = json.data[0];
    			}
    			cb(true);
    		}
    	});
    	
    };
    
    n2a.fxporter.obtenPreguntas = function(cb){
    	n2a.fxporter.mainItem.preguntas = [];
    	Ext.Ajax.request({
    		url: EvaluacionHandler,
    		params: {
    			pg: "ListPreguntas",
    			start: 0,
    			limit: 350,
    			ckid: n2a.fxporter.ChecklistId,
    			sort : "Orden"
    		},
    		method: 'GET',
    		success: function (response, options) {
    			var json = Ext.util.JSON.decode(response.responseText);
    			n2a.fxporter.mainItem.preguntas = json.data;
    			cb(true, n2a.fxporter.mainItem.preguntas);
    		}
    	});
    	
    };
    
    n2a.fxporter.downloadFile = function(){
    	var txt = $("#win-custom-field-txt").val();
    	var filename = "RArchivos" + (new Date()).format("Ymdhis") + ".txt";
    	var element = document.createElement('a');
    	element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(txt));
    	element.setAttribute('download', filename);
    
    	element.style.display = 'none';
    	document.body.appendChild(element);
    
    	element.click();
    	document.body.removeChild(element);
    };
    
    n2a.fxporter.init();
fimporter.js.txt - Procesa los JSON generados, y crea  / actualiza las preguntas y secciones

  1. n2a.fimporter = {};
    
    n2a.fimporter.init = function(){
    	swal.close();
    	n2a.fimporter.ChecklistId = _GET.id;
    	n2a.fimporter.domContainer = document.querySelector(".container form.mws-form");
    	
    	Ext.get(n2a.fimporter.domContainer).mask("Obteniendo secciones actuales");
    	n2a.fimporter.obtenCurrentSections(function(){
    		Ext.get(n2a.fimporter.domContainer).unmask();
    		n2a.fimporter.uploadFile();
    	});
    	
    }
    n2a.fimporter.uploadFile = function(){
    	var folder = "cuenta_csv";
    	var ckid = n2a.fimporter.ChecklistId;
    	MainActions.showHTML5Upload({
    		folder: folder,
    		maxFiles: 1,
    		BeforeUpload: function (file, _win) {
    			file.rcname = "ckscript_" + ckid + "." + file.rcextension;
    		},
    		onDone: function (archivos, _win) {
    			console.log(archivos);
    			if (archivos.length > 0) {
    				var archivo = archivos[0];
    				archivo.spath = "../panel/uploads/" + folder + "/" + archivo.rcname;
    				n2a.fimporter.startProcess(archivo);
    			}
    			_win.close();
    		},
    		filters: [
    			{
    				title: "Js files",
    				extensions: "js,txt,dat"
    			}
    		]
    	});
    };
    
    n2a.fimporter.startProcess = function(archivo){
    	Ext.get(n2a.fimporter.domContainer).mask("Obtniendo contenido....");
    	console.log(archivo);
    	n2a.fimporter.getContent(archivo.spath, function(){
    		var item = n2a.fimporter.mainItem;
    		//alert(item.metaData.title);
    		Ext.get(n2a.fimporter.domContainer).unmask();
    	
    		Swal.fire({
    			title: "Importando " + item.metaData.title,
    			allowOutsideClick : false,
    			allowEscapeKey : false,
    			html: '<div id="fimporter-win_msg">Procesando...</div>',
    			onBeforeOpen: () => {
    				Swal.showLoading()
    			},
    			onOpen : () => {
    				n2a.fimporter.processChunks();
    			}
    		});
    	});
    	
    };
    
    n2a.fimporter.getSeccion2Import = function(){
    	var secciones =  n2a.fimporter.mainItem.secciones;
    	var secciones2Import = [];
    	secciones.forEach(function(seccionOriginal){
    		var seccionItem = $.extend({}, seccionOriginal);
    		seccionItem.SeccionOriginalId = seccionItem.SeccionId;
    		seccionItem.SeccionId = null;
    		delete seccionItem.SeccionId;
    		seccionItem.CheckListId = n2a.fimporter.ChecklistId;
    		
    		secciones2Import.push(seccionItem);
    	});
    	return secciones2Import;
    };
    
    n2a.fimporter.processChunks = function(){
    	var secciones2Import = n2a.fimporter.getSeccion2Import();
    	var $wcontainer = $("#fimporter-win_msg");
    	var rsData = [];
    	stepExecute(secciones2Import, {
    		onStep: function (index, item, props, cbNext) {
    			console.log(item);
    			var rsItem = {
    				Nombre : item.Nombre,
    				creado : false,
    				importado : false,
    			};
    			console.log(item.Nombre);
    			var htm = "Creando sección: <b>" + item.Nombre + "</b>";
    			var existingSection = n2a.fimporter.currentSecciones[item.SeccionClave];
    			if(existingSection){
    				item.SeccionId = existingSection.SeccionId;
    				htm = "Actualizando sección: <b>" + item.Nombre + "</b>";
    			}
    			
    			htm += "<br/><small>" + (index + 1) +  " de " + secciones2Import.length  + "</small>";
    			$wcontainer.html(htm);
    			n2a.fimporter.creaSeccion(item, function(seccionCreadaId, rs){
    				if(seccionCreadaId){
    					
    					rsItem.seccionCreadaId = seccionCreadaId;
    					rsItem.creado = true;
    				}
    				htm += "<br/><span style='color:green;' id='fimporter-msg_preguntas'>Sección creada, importando preguntas...</span>";
    				$wcontainer.html(htm);
    				n2a.fimporter.creaPreguntas({SeccionCreadaId: seccionCreadaId, SeccionOriginalId: item.SeccionOriginalId}, function(rsPregunta){
    					rsData.push(rsItem);
    					setTimeout(() => cbNext(), 600);
    					
    				});
    				
    			});
    			
    			
    		},
    		onFinish: function () {
    			var htm = $.map(rsData, function(oitem){
    				return oitem.Nombre + " ... " + (oitem.creado ? "<span style='color:green'>OK</span>" : "<span style='color:red'>Error</span>");
    			}).join("<br/>");
    			Swal.fire({
    				type: 'success',
    				title: 'Se procesaron las secciones' ,
    				html :  '<div style="margin-top:10px; text-align:left">' + htm + "</div>"
    			});
    			cleanThaCombo("ExtfieldCmbSecciones");
    			MostrarBotonera();
    			MostrarPreguntasXSeccion();
    			//_this.close();
    		}
    	});
    	
    };
    
    n2a.fimporter.creaPreguntas = function(params, cbFinish){
    	var preguntas = $.extend([], n2a.fimporter.mainItem.preguntas, true);
    	var preguntas = n2a.fimporter.mainItem.preguntas.filter(item => item.SeccionId == params.SeccionOriginalId);
    	preguntas.forEach(item => {
    		item.PreguntaId = null;
    		item.SeccionId = params.SeccionCreadaId;
    		item.CheckListId = n2a.fimporter.ChecklistId;
    		item.TieneFormula = item.Formula ? true : false;
    	});
    	var rsData = [];
    	var $wpregunta = $("#fimporter-msg_preguntas");
    	stepExecute(preguntas, {
    		onStep: function (index, item, props, cbNext) {
    			var rsItem = {
    				Nombre : item.TituloPregunta,
    				creado : false,
    				importado : false,
    			};
    			console.log(item);
    			console.log(item.TituloPregunta);
    			var htm = "Validando pregunta: <b>" + item.TituloPregunta + "</b>";
    			$wpregunta.html(htm);
    			n2a.fimporter.getPreguntaXClave(item.PreguntaClave, function(rowRepetido){
    				var htm = "Creando pregunta: <b>" + item.TituloPregunta + "</b>";
    				if(rowRepetido._v){
    					htm = "Actualizando pregunta: <b>" + item.TituloPregunta + "</b>";
    					console.warn("Ya existe " + rowRepetido.PreguntaId, rowRepetido);
    					item.PreguntaId = rowRepetido.PreguntaId;
    				}
    				$wpregunta.html(htm);
    			
    				n2a.fimporter.creaPreguntaBd(item, function(){
    					rsItem.creado = true;
    					rsData.push(rsItem);
    					cbNext();
    				});
    				
    			});
    			
    			
    			
    		},
    		onFinish: function () {
    			var htm = $.map(rsData, function(oitem){
    				return oitem.Nombre + " ... " + (oitem.creado ? "<span style='color:green'>OK</span>" : "<span style='color:red'>Error</span>");
    			}).join("<br/>");
    			$wpregunta.html(htm);
    			cbFinish();
    		}
    	});
    	
    	
    };
    n2a.fimporter.creaSeccion = function(params, cb){
    	params.pg = "AddSeccion";
    	Ext.Ajax.request({
    		url: EvaluacionHandler,
    		params : params,
    		method :'POST',
    		success:function(response, options){
    			var json = Ext.util.JSON.decode(response.responseText);
    			cb && cb(json.id || 0, json);
    		}
    	})
    };
    
    n2a.fimporter.creaPreguntaBd = function(params, cb){
    	params.pg = "AddPregunta";
    	Ext.Ajax.request({
    		url: EvaluacionHandler,
    		params : params,
    		method :'POST',
    		success:function(response, options){
    			var json = Ext.util.JSON.decode(response.responseText);
    			cb && cb(json.id || 0, json);
    		}
    	})
    };
    
    n2a.fimporter.getContent = function(spath, cb){
    	n2a.fimporter.mainItem = {};
    	Ext.Ajax.request({
    		url: spath,
    		params: {
    		},
    		method: 'GET',
    		success: function (response, options) {
    			console.log(response.responseText);
    			var json = Ext.util.JSON.decode(response.responseText);
    			n2a.fimporter.mainItem = json;
    			cb(true, n2a.fimporter.mainItem);
    		}
    	});
    	
    };
    
    n2a.fimporter.getPreguntaXClave = function(clave, cb){
    	Ext.Ajax.request({
            url: EvaluacionHandler,
            params: {
                pg: "ListPreguntas",
                start: 0,
                limit: 5,
                ckid: n2a.fimporter.ChecklistId,
                sort: "TituloPregunta",
                clave: clave
    
            },
            method: 'GET',
            success: function (response, options) {
                var row = { _v: false };
                var json = Ext.util.JSON.decode(response.responseText);
                if (json.data.length > 0) {
                    row = json.data[0];
                    row._v = true;
               
                }
    			cb(row);
    		}
    	});
    };
    
    n2a.fimporter.obtenCurrentSections = function(cb){
    	n2a.fimporter.currentSecciones = {};
    	Ext.Ajax.request({
    		url: EvaluacionHandler,
    		params: {
    			pg: "ListSecciones",
    			start: 0,
    			limit: 100,
    			CheckListId : n2a.fimporter.ChecklistId,
    			sort : "SeccionId"
    		},
    		method: 'GET',
    		success: function (response, options) {
    			var json = Ext.util.JSON.decode(response.responseText);
    			if(json.data){
    				json.data.forEach(function(item){
    					n2a.fimporter.currentSecciones[item.SeccionClave] = item;
    				});
    			}
    			cb(true);
    		}
    	});
    	
    };
    
    n2a.fimporter.init();
3. fdeleter.js.txt- Limpia todas las preguntas y secciones de un formulario



  1. n2a.fdeleter = {
  2. mainItem : {}
  3. };



  4. n2a.fdeleter.deletePregunta = function(preguntaId, cb){
  5. Ext.Ajax.request({
  6. url:EvaluacionHandler,
  7. params: { 
  8. pg : "EliminaPregunta",
  9. PreguntaId : preguntaId
  10. },
  11. method: 'GET',
  12. success: function(response, options) {
  13. var json = Ext.util.JSON.decode(response.responseText);
  14. cb && cb(json);
  15. }
  16. });
  17. };

  18. n2a.fdeleter.deleteSeccion = function(seccionId, cb){
  19. Ext.Ajax.request({
  20. url:EvaluacionHandler,
  21. params: { 
  22. pg : "EliminaSeccion",
  23. ckid : n2a.fdeleter.ChecklistId,
  24. SeccionId : seccionId
  25. },
  26. method: 'POST',
  27. success: function(response, options) {
  28. var json = Ext.util.JSON.decode(response.responseText);
  29. cb && cb(json);
  30. }
  31. });
  32. };


  33. n2a.fdeleter.init = function(){
  34. n2a.fdeleter.ChecklistId = _GET.id;
  35. n2a.fdeleter.domContainer = document.querySelector(".container form.mws-form");
  36. console.log("Obteniendo secciones ...." + n2a.fdeleter.ChecklistId);
  37. Ext.get(n2a.fdeleter.domContainer).mask("Obtniendo secciones....");
  38. let cuestionarioTitulo = ($("#main-title-label").text() || "").replace(/\s+/g, ' ').trim()
  39. n2a.fdeleter.mainItem.metaData = {
  40. user : json_user.NombreCompleto,
  41. uname : json_user.NombreUsuario,
  42. fecha : moment().format("YYYY-MM-DD HH:mm:ss"),
  43. url : document.location.href, 
  44. ckid : n2a.fdeleter.ChecklistId,
  45. title : cuestionarioTitulo
  46. };
  47. n2a.fdeleter.obtenChecklistInfo(function(){
  48. n2a.fdeleter.obtenSecciones(function(v, json){
  49. console.log("Secciones listas: ", n2a.fdeleter.mainItem.secciones);
  50. console.log("Obteniendo preguntas....");
  51. Ext.get(n2a.fdeleter.domContainer).mask("Obteniendo preguntas...");
  52. n2a.fdeleter.obtenPreguntas(function(v, json){
  53. Ext.get(n2a.fdeleter.domContainer).unmask();
  54. console.log("Preguntas listas: ", n2a.fdeleter.mainItem.preguntas);
  55. var msg = "Estás seguro que deseas eliminar las preguntas y secciones de este cuestionario?\r\n";
  56. msg += "** TITULO: " + n2a.fdeleter.mainItem.ckItem.Titulo;
  57. msg += "\r\n";
  58. msg += "** CLAVE: " + n2a.fdeleter.mainItem.ckItem.Clave;
  59. msg += "\r\n\r\n";
  60. msg += "Son " + n2a.fdeleter.mainItem.secciones.length + " secciones y " + n2a.fdeleter.mainItem.preguntas.length + " preguntas";
  61. if(confirm(msg)){
  62. n2a.fdeleter.initProcess();
  63. }
  64. });
  65. });
  66. });

  67. };

  68. n2a.fdeleter.initProcess = function(){
  69. Swal.fire({
  70. title: "Borrando de  " + n2a.fdeleter.mainItem.ckItem.Titulo,
  71. allowOutsideClick : false,
  72. allowEscapeKey : false,
  73. html: '<div id="fdeleter-win_msg">Procesando...</div>',
  74. onBeforeOpen: () => {
  75. Swal.showLoading()
  76. },
  77. onOpen : () => {
  78. n2a.fdeleter.processChunks();
  79. }
  80. });
  81. };

  82. n2a.fdeleter.processChunks = function(){
  83. n2a.fdeleter.removePreguntas(function(){
  84. n2a.fdeleter.removeSecciones(function(){
  85. cleanThaCombo("ExtfieldCmbSecciones");
  86. MostrarBotonera();
  87. MostrarPreguntasXSeccion();
  88. });
  89. });
  90. };

  91. n2a.fdeleter.removeSecciones = function(cbFinish){
  92. var $wcontainer = $("#fdeleter-win_msg");
  93. var rsData = [];
  94. var secciones = n2a.fdeleter.mainItem.secciones;
  95. stepExecute(secciones, {
  96. onStep: function (index, item, props, cbNext) {
  97. console.log(item);
  98. var rsItem = {
  99. Nombre : item.Nombre,
  100. borrado : false,
  101. };
  102. console.log(item.Nombre);
  103. var htm = "Borrando sección: <b>" + item.Nombre + ", Id="+ item.SeccionId +"  ("+ (index + 1) + " de " + secciones.length +")</b>";
  104. $wcontainer.html(htm);
  105. n2a.fdeleter.deleteSeccion(item.SeccionId, function(rsDelete){
  106. var msgDelete = "<br/><span style='color:red;' id='fexporter-msg_secciones'>No se borró</span>";
  107. if(!rsDelete.error){
  108. msgDelete = "<br/><span style='color:green;' id='fexporter-msg_secciones'>Sección borrada</span>";
  109. rsItem.borrado = true;
  110. }
  111. htm += msgDelete;
  112. $wcontainer.html(htm);
  113. rsData.push(rsItem);
  114. setTimeout(() => cbNext(), 100);
  115. });

  116. },
  117. onFinish: function () {
  118. var htm = $.map(rsData, function(oitem){
  119. return oitem.Nombre + " ... " + (oitem.borrado ? "<span style='color:green'>OK</span>" : "<span style='color:red'>Error</span>");
  120. }).join("<br/>");
  121. Swal.fire({
  122. type: 'success',
  123. title: 'Se borraron las secciones' ,
  124. html :  '<div style="margin-top:10px; text-align:left">' + htm + "</div>"
  125. });
  126. setTimeout(function(){
  127. cbFinish();
  128. }, 300);
  129. }
  130. });
  131. };

  132. n2a.fdeleter.removePreguntas = function(cbFinish){
  133. var $wcontainer = $("#fdeleter-win_msg");
  134. var rsData = [];
  135. var preguntas = n2a.fdeleter.mainItem.preguntas;
  136. if(preguntas.length <= 0){
  137. cbFinish();
  138. return;
  139. }
  140. stepExecute(preguntas, {
  141. onStep: function (index, item, props, cbNext) {
  142. console.log(item);
  143. var rsItem = {
  144. Nombre : item.PreguntaClave,
  145. borrado : false,
  146. };
  147. console.log(item.PreguntaClave);
  148. var htm = "Borrando pregunta: <b>" + item.PreguntaClave + " ("+ (index + 1) + " de " + preguntas.length +")</b>";
  149. $wcontainer.html(htm);
  150. n2a.fdeleter.deletePregunta(item.PreguntaId, function(rsDelete){
  151. var msgDelete = "<br/><span style='color:red;' id='fexporter-msg_preguntas'>No se borró</span>";
  152. if(!rsDelete.error){
  153. msgDelete = "<br/><span style='color:green;' id='fexporter-msg_preguntas'>Pregunta borrada</span>";
  154. rsItem.borrado = true;
  155. }
  156. htm += msgDelete;
  157. $wcontainer.html(htm);
  158. rsData.push(rsItem);
  159. setTimeout(() => cbNext(), 600);
  160. });

  161. },
  162. onFinish: function () {
  163. var htm = $.map(rsData, function(oitem){
  164. return oitem.Nombre + " ... " + (oitem.borrado ? "<span style='color:green'>OK</span>" : "<span style='color:red'>Error</span>");
  165. }).join("<br/>");
  166. Swal.fire({
  167. type: 'success',
  168. title: 'Se borraron las preguntas' ,
  169. html :  '<div style="margin-top:10px; text-align:left">' + htm + "</div>"
  170. });
  171. setTimeout(function(){
  172. cbFinish();
  173. }, 300);
  174. }
  175. });
  176. };

  177. n2a.fdeleter.obtenSecciones = function(cb){
  178. n2a.fdeleter.mainItem.secciones = [];
  179. Ext.Ajax.request({
  180. url: EvaluacionHandler,
  181. params: {
  182. pg: "ListSecciones",
  183. start: 0,
  184. limit: 100,
  185. CheckListId : n2a.fdeleter.ChecklistId,
  186. sort : "SeccionId"
  187. },
  188. method: 'GET',
  189. success: function (response, options) {
  190. var json = Ext.util.JSON.decode(response.responseText);
  191. n2a.fdeleter.mainItem.secciones = json.data;
  192. cb(true, n2a.fdeleter.mainItem.secciones);
  193. }
  194. });
  195. };

  196. n2a.fdeleter.obtenChecklistInfo = function(cb){
  197. n2a.fdeleter.mainItem.ckItem = {};
  198. Ext.Ajax.request({
  199. url: CamposHandler,
  200. params: {
  201. pg: "list_cklist",
  202. start: 0,
  203. limit: 1,
  204. id : n2a.fdeleter.ChecklistId
  205. },
  206. method: 'GET',
  207. success: function (response, options) {
  208. var json = Ext.util.JSON.decode(response.responseText);
  209. if(json.data.length > 0){
  210. n2a.fdeleter.mainItem.ckItem = json.data[0];
  211. }
  212. cb(true);
  213. }
  214. });
  215. };

  216. n2a.fdeleter.obtenPreguntas = function(cb){
  217. n2a.fdeleter.mainItem.preguntas = [];
  218. Ext.Ajax.request({
  219. url: EvaluacionHandler,
  220. params: {
  221. pg: "ListPreguntas",
  222. start: 0,
  223. limit: 350,
  224. ckid: n2a.fdeleter.ChecklistId,
  225. sort : "Orden"
  226. },
  227. method: 'GET',
  228. success: function (response, options) {
  229. var json = Ext.util.JSON.decode(response.responseText);
  230. n2a.fdeleter.mainItem.preguntas = json.data;
  231. cb(true, n2a.fdeleter.mainItem.preguntas);
  232. }
  233. });
  234. };

  235. n2a.fdeleter.init();


    • Related Articles

    • Consulta de resultados de checklist y cuestionarios

      IV - Resultados de checklist  Al seleccionar un cuestionario se puede tener acceso a detalles totales del mismo.   Se selecciona un elemento de la lista y podemos visualizar toda su descripción. Podemos usar filtros para agilizar la búsqueda deseada ...
    • Manual de implementación FieldWy Delivery

      Descargar archivo adjunto
    • Creación de Checklist y Cuestionarios

      I - Alta de checklist 1-¿Qué es y para que sirve un checklist?  Checklist u hojas de verificación, siendo formatos generados para realizar actividades repetitivas, controlar el cumplimiento de un listado de requisitos o recolectar datos ordenadamente ...
    • Script para agregar registros en catálogos y mostrar campos en listas

      En este script, le damos formato a 2 diferentes tipos de listas (en catálogos maestros) mediante un script EJEMPLO 1 EJEMPLO 2 SCRIPT: var _customScriptHelper = { setData2Master : function(selector, rdata){ var $me = $(selector); var mdata = rdata || ...
    • Proceso de reasignación de Turnos

      Dentro de la herramienta FLOW tenemos la opción de reasignar un turno a cualquier parte del proceso (cuestionario), según sea necesario. Si por algún motivo se requiere regresar un ticket a un paso anterior para completar información o hacer ...