none
Problema JQgrid suma columna RRS feed

  • Pregunta

  • Hola. 
    Mi problema es que tengo unas columnas con unos formatos, concretamente la columna que quiero sumar tiene un formato de un "." cada 3 cifras (5.000) y cada vez que quiero sumar me toma el punto como una coma y si tengo que sumar 5.000 y 5 me da como resultado 10. Si desactivo el formato de la columna me lo suma sin problema pero querría que el formato se mantuviese.
    Así que necesitaba saber como poder hacer que al sumar el punto no lo tome como coma, o que al tomar los datos el método 'sum' los tome sin formato.

    Mi código para ello sería:

    var colSum = $grid.jqGrid('getCol','columna3',false,'sum');
    
     $grid.jqGrid('footerData','set',{columna2: 'Total: ' , columna3: colSum},false); 

    Gracias

    lunes, 22 de mayo de 2017 11:57

Respuestas

  • hola

    que localization estas asignando al jqgrid ? porque la config que tome serala que aplique la puntualcion

    jqGrid Loading Data - Localization

    veras varios .js de nombre grid.locale-xx.js

    en donde xx es la cultura que aplicara, deberias validar cual estas asignando para asi definir si toma el punto o la coma como decimal

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de mayo de 2017 14:13
  • Encontré la solución y por si alguien más le interesa la pondré aquí.
    Para sobrescribir las opciones de formato predeterminadas del archivo de idioma del que habló arriba Leandro
    Tuttini tenemos que ir a la parte de código donde tenemos el ColModel, y en la columna que tenía el
    problema añadir este código:

     formatter:'number',
     formatoptions:{thousandsSeparator: ".",decimalSeparator:",", decimalPlaces: 2},

    Bueno pongo este porque es como me interesa a mí, cada uno pondrá el que le haga falta.
    Buen días y gracias Leandro

    martes, 23 de mayo de 2017 11:06

Todas las respuestas

  • hola

    que localization estas asignando al jqgrid ? porque la config que tome serala que aplique la puntualcion

    jqGrid Loading Data - Localization

    veras varios .js de nombre grid.locale-xx.js

    en donde xx es la cultura que aplicara, deberias validar cual estas asignando para asi definir si toma el punto o la coma como decimal

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de mayo de 2017 14:13
  • hola

    que localization estas asignando al jqgrid ? porque la config que tome serala que aplique la puntualcion

    jqGrid Loading Data - Localization

    veras varios .js de nombre grid.locale-xx.js

    en donde xx es la cultura que aplicara, deberias validar cual estas asignando para asi definir si toma el punto o la coma como decimal

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola
    Lo primero gracias por contestar, lo segundo es que empecé hace 4 días con jquery y concretamente con jqgrid así que ando algo perdido.
    Para especificar diré que es una práctica sobre un ejercicio hecho por otra persona y que es parte de una jsp con javascript.
    En la jsp no hay nada parecido a grid.locale-xx.js Lo más parecido que hay es en el controlador de la jsp una llamada a la librería java.util.Locale. la aplicación está hecha en España así que supongo que si el grid.locale-xx existe en algún lugar que no encuentro (porque ando muy verde que acabo de empezar) tendría que ser o -es o -gl (España o Galicia).

    Se me olvidó comentar y es algo muy importante que supongo que cambiará tu posible respuesta es que los fomatos a las columnas se las doy "yo", es decir  la columna llama a una función para que le dé formato

                  

    name:'Columna3',
                      index:'Columna3',
                      editable:false,
                      hidden:false,
                      align:'right',
                      resizable:false,
                      width:'140px' ,
                      formatter: precise_round
                   },            

    y precise_round es una función que usa una librería de java

      function precise_round(num) {       
            return $.fmatter.util.NumberFormat(Math.round(num), $.jgrid.formatter.integer);
        }

    Si hay algo más que se pueda decir de la aplicación para que me puedas ayudar, lo que necesites ;)
    Gracias


    martes, 23 de mayo de 2017 7:47
  • Encontré la solución y por si alguien más le interesa la pondré aquí.
    Para sobrescribir las opciones de formato predeterminadas del archivo de idioma del que habló arriba Leandro
    Tuttini tenemos que ir a la parte de código donde tenemos el ColModel, y en la columna que tenía el
    problema añadir este código:

     formatter:'number',
     formatoptions:{thousandsSeparator: ".",decimalSeparator:",", decimalPlaces: 2},

    Bueno pongo este porque es como me interesa a mí, cada uno pondrá el que le haga falta.
    Buen días y gracias Leandro

    martes, 23 de mayo de 2017 11:06
  • Hola MaNueLiNe,

    Gracias por visitar los foros y compartir con nosotros tu solución.

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, hace que sea más fácil para los otros visitantes encontrar la solución  más tarde. Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal  cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 23 de mayo de 2017 21:39
    Moderador