En resumen lo que hicimos fue customizar un checkbox utilizando imagenes de checked y uncheked
A continuación veremos la implementación:
La idea es que se
utiliza un link que devuelve la línea donde se da click, en caso que el Grid no
esté habilitado para modificarse, lo habilita y vuelve a llamarse con los
mismos parámetros. En este segundo llamado sí va a estar habilitado. Si la
clase del checkbox es desmarcado la cambia a marcado y viceversa. Cuando la
clase queda marcada asigna a la columna marca un 1 sino 0 (0 es el valor por
defecto).
El uso de la columna marca es si queremos procesar solo aquellas columnas que fueron realmente marcadas
En el select se debe escribir: ROWNUM as chkbox y 0 as MARCA.
El rownum en caso que nuestro query este compuesto por varias uniones debe estar en el select por fuera de todo el query.
2 Para configurar el CHKBOX debemos setearlo del tipo LINK.
o
type : URL
o
URL:
javascript:payUnpayCB("miStaticGridId",&CHKBOX.) (En
el primer parámetro va el static id del Grid, en el segundo parámetro ver que
luego del & va el nombre del item que hace de checkbox)
o
Link
Text: <span id="checkBoxID_&CHKBOX."
aria-hidden="true" class="fa fa-square-o"></span>
o
Link
Attributes: id="clickCheck_&CHKBOX."
3) Column Filter: False
4) Enable Users to: Sort: False
5) En CHKBOX en js Initialization Code
function(options) {
options.defaultGridColumnOptions
= {
noHeaderActivate: true
}
return options;
}
6) A nivel de página en Function and Global Variable
Declaration
function payUnpayCB(pIDGrid, pLine) {
if((apex.region(pIDGrid).widget().interactiveGrid("getActions").get("edit"))){
var view =
apex.region(pIDGrid).widget().interactiveGrid("getCurrentView");
var model = view.model;
var record =
view.view$.grid("getActiveRecord");
var aRet =
$("#checkBoxID_"+pLine).attr("class");
if (aRet == "fa
fa-square-o" ){
model.setValue( record,
"MARCA", "1");
$("#checkBoxID_"+pLine).removeClass("fa
fa-square-o").addClass("fa fa-check-square-o");
}
else {
model.setValue(
record, "MARCA", "0");
$("#checkBoxID_"+pLine).removeClass("fa
fa-check-square-o").addClass("fa fa-square-o");
}
}
else {
apex.region(pIDGrid).widget().interactiveGrid("getActions").set("edit",
true);
payUnpayCB(pIDGrid, pLine);
}
}
7) El item MARCA lo ocultamos en tiempo de ejecución y salvamos el reporte por defecto
Este comentario ha sido eliminado por el autor.
ResponderEliminarExcelente iniciativa, ya casi lo tengo, solo me da un error a la hora de correrlo
ResponderEliminarinteractiveGrid.min.js?v=20.1.0.00.13:1 Uncaught Error: Set value not allowed for field.
at Object.setValue (VM1350 interactiveGrid.min.js:1)
at payUnpayCB (configuracion-general?session=8514801567320:336)
at :1:1
Qué creen que podría ser?