SoloCodigo

Programación General => Java => JSP/Servlets => Mensaje iniciado por: thecarfal en Miércoles 20 de Enero de 2010, 21:47

Título: problema al cargar datos decimales con jsp
Publicado por: thecarfal en Miércoles 20 de Enero de 2010, 21:47
Buen dia el mismo es para ver si me pueden ayudar en un problema que tengo con una aplicacion elaborada en codigo jsp al intentar cargar  monto_cedido, creditos_del_ejercicio, total_creditos_disponibles los cual son  datos decimales y anteriormente eran enteros; aca le dejo el codigo.

<%  
         
   Connection con = null;
    try {
        String campo = request.getParameter("rif_cedente");
        if (campo instanceof String) {        
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con = DriverManager.getConnection("jdbc:odbc:SQLSERVER");
            Statement stmt = con.createStatement();
                        
            double monto_cedido;
            double creditos_del_ejercicio;
            double total_creditos_disponibles;      

            if (request.getParameter("monto_cedido").equals(""))
                monto_cedido = 0;
            else
                monto_cedido = Double.parseDouble(request.getParameter("monto_cedido"));   
           
            if (request.getParameter("creditos_del_ejercicio").equals(""))
                creditos_del_ejercicio = 0;
            else
                creditos_del_ejercicio = Double.parseDouble(request.getParameter("creditos_del_ejercicio"));               
           
            if (request.getParameter("total_creditos_disponibles").equals(""))
                total_creditos_disponibles = 0;
            else
                total_creditos_disponibles = Double.parseDouble(request.getParameter("total_creditos_disponibles"));               
           
            String cadena = "insert into s7_9_Inventario_Cesion (rif_cedente, nombre_cedente, rif_cesionario, nombre_cesionario, numero_escri_notif, fecha_escri_notif, fecha_contrat_cesion, monto_cedido, tributo_orig_credito_fiscal, periodo_orig_credito_fiscal, numero_declaracion_credito_fiscal, fecha_declaracion_credito_fiscal, creditos_del_ejercicio, total_creditos_disponibles, status_creditos, mes, ano, citranscriptor, Observaciones) values ( '"+ request.getParameter("rif_cedente") +"', '"+ request.getParameter("nombre_cedente") +"', '"+ request.getParameter("rif_cesionario") +"', '"+ request.getParameter("nombre_cesionario") +"', '"+ request.getParameter("numero_escri_notif") +"', '"+ request.getParameter("fecha_escri_notif") +"', '"+ request.getParameter("fecha_contrat_cesion") +"', "+ (monto_cedido) +", '"+ request.getParameter("tributo_orig_credito_fiscal") +"', '"+ request.getParameter("periodo_orig_credito_fiscal") +"', " +
            "'"+ request.getParameter("numero_declaracion_credito_fiscal") +"', '"+ request.getParameter("fecha_declaracion_credito_fiscal") +"', "+ (creditos_del_ejercicio) +", "+ (total_creditos_disponibles) +", '"+ request.getParameter("status_creditos") +"', '"+ session.getAttribute("Mes") +"', '"+ session.getAttribute("Ano") +"', '"+ session.getAttribute("Ced") +"', '"+ request.getParameter("observacion") +"')";
            stmt.execute(cadena);
            stmt.close();
            stmt=null;
            out.print("<span class='Estilo7'>La información se almacenó satisfactoriamente...</span>");
         response.sendRedirect("Siger_Recaudacion_7_9.jsp");
        }
        else {
            out.print("<span class='Estilo7'>No se pudo almacenar la información debido a la existencia de algun campo vacio...</span>");
        }    
    }
   /*catch (NumberFormatException e0) {
      out.println("<span class='Estilo7'>Error! No utilice COMAS (,), ni PUNTOS (.) para los numeros introducidos, en su lugar redondee el numero y vualva a intentar registrar la misma informacion tomando en cuenta esta salvedad!</span>");
   } */
    catch (SQLException e1) {
        out.print("<span class='Estilo7'>Se presentó un error! es posible que este tratando de introducir un registro duplicado..." + e1.toString() + "</span>");
    }    
    catch (Exception e){
        out.print(e.toString());
    }  
    finally {        
       
    }      
%>
Título: Re: problema al cargar datos decimales con jsp
Publicado por: arielb en Martes 26 de Enero de 2010, 22:25
Hola bienvenido, te manda algún error?, cual es el problema exactamente?
Título: Re: problema al cargar datos decimales con jsp
Publicado por: thecarfal en Miércoles 27 de Enero de 2010, 18:53
Cita de: "juez"
Hola bienvenido, te manda algún error?, cual es el problema exactamente?

SI ESTE ES EL ERROR AL COLOCAR EN LOS CAMPOS VALORES DECIMALES..
java.lang.NumberFormatException: For input string: "3,4"  

3,4 FUE LO QUE COLOQUE EN EL CAMPO..
Título: Re: problema al cargar datos decimales con jsp
Publicado por: arielb en Miércoles 27 de Enero de 2010, 21:10
Y es correcto que puedan escribir número decimales con coma para el programa que haces?
Si no lo es puedes restringuirlo con esta función pero sería a nivel del browser solamente

Código: Text
  1. //Esta función permite escribir números decimales y que el punto no se repita
  2.    function decimalDosPuntos(evento,campo){
  3.  
  4.         var tecla ;
  5.         if ( navigator.appName.toUpperCase() != "NETSCAPE"){
  6.                  tecla =  evento.keyCode;
  7.         }else{
  8.               tecla = evento.which;
  9.         }
  10.        
  11.         if (tecla <= 13 ){
  12.           return false;
  13.         }else if ( tecla >=48 && tecla <=57){
  14.             return true;
  15.         }else if ( tecla == 46){
  16.             var cadena = document.getElementById(campo).value;
  17.             if ( cadena.indexOf(".") != -1 ){
  18.                 return false;
  19.             }else{
  20.                 return true;
  21.             }
  22.         }else{
  23.             return false;
  24.         }
  25.     }
  26.  

y por si acaso debieras validar también del lado del servidor(esto es una buena práctica), utilizando la clase numberFormat y Locale
ya que el error es de asignar un valor String que contiene coma a un double
Título: Re: problema al cargar datos decimales con jsp
Publicado por: thecarfal en Lunes 1 de Febrero de 2010, 21:02
si mi pana debo cargar decimales ya que el campo va a contener valor moneda y debo guardarlo en la bd tal cual ejemplo 5.300,53
Ya no encuentro que hacer muy agradecido..
Título: Re: problema al cargar datos decimales con jsp
Publicado por: thecarfal en Lunes 1 de Febrero de 2010, 21:03
si mi pana debo cargar decimales ya que el campo va a contener valor moneda y debo guardarlo en la bd tal cual ejemplo 5.300,53
Ya no encuentro que hacer muy agradecido..