Calculando el Total de una Columna en un Interactive Grid con JavaScript

Calculando el Total de una Columna en un Interactive Grid con JavaScript

¿Alguna vez necesitaste, o necesitas, calcular el total de una columna de un interactive grid y al mismo tiempo poder utilizar ese dato en otro elemento de tu pagina?. Hoy vengo a comentarte que puedes realizarlo con la ayuda de javascript.

Interactive Grid

En Oracle APEX, el Interactive Grid (IG) es una herramienta poderosa para mostrar y editar datos de forma interactiva. Sin embargo, a veces es necesario realizar cálculos en los datos mostrados. Por ejemplo, puede que necesites calcular la suma de una columna en el IG.

Para hacer esto, puedes utilizar JavaScript y la API de Oracle APEX.

Paso 1:

Debes crear una region tipo Interactive Grid (Cuadricula Interactiva), puedes elegir una tabla o consulta de tu preferencia para mostrar datos.

A esta region vamos a definirle un identificador estatico, en este caso yo le pondre "suma".

Y agregaremos un elemento de tipo numerico al cual enviaremos el total del calculo.

Paso 2:

Ya tenemos nuestra region creada, ahora vamos a crear una accion dinamica sobre la columna que queremos sumar, en este caso yo la creare sobre la columna ART_PRECIO.

Esta DA se va a disparar cada vez que cambie datos en la mencionada columna.

A esta DA agregamos dos Acciones.

La primera sera para Definir un valor que afectara al elemento TOTAL que creamos.

La segunda accion ejecutara el codigo javascript que afectara de igual manera al elemento total.

El la misma ira el siguiente codigo.

var model = apex.region("suma").widget().interactiveGrid("getViews", "grid").model; // suma es el identificador estatido de la IG
var n_dist_amount, n_total = 0;
var col_gl_amount = model.getFieldKey("ART_PRECIO");//ART_PRECIO es el nombre de la columna
model.forEach(function(igrow) //recorremos el modelo
       {
               n_dist_amount = parseInt(igrow[col_gl_amount], 10);
               if (!isNaN(n_dist_amount)) {
                         n_total += n_dist_amount;
          }
  }
      );

console.log(n_total);

$s('P7_TOTAL', n_total);//enviamos el valor

Esto lo guardamos y al ejecutarlo, tendriamos algo mas o menos como lo siguiente.

Puedes ver la demo aqui

Conclusion

Hemos explorado cómo calcular la suma de una columna en un Interactive Grid de Oracle APEX utilizando JavaScript y la API de Oracle APEX. Este proceso puede ser útil cuando necesitas realizar cálculos o validaciones en los datos mostrados o agregados en tu IG. Espero que esta guía te haya sido útil y te haya proporcionado una solución efectiva para tus necesidades de cálculo en Oracle APEX. ¡Gracias por leer y hasta la próxima!