Java - Crear numero de serie de 1 en 1 para una factura

 
Vista:
Imágen de perfil de Felipe
Val: 8
Ha disminuido su posición en 168 puestos en Java (en relación al último mes)
Gráfica de Java

Crear numero de serie de 1 en 1 para una factura

Publicado por Felipe (5 intervenciones) el 09/11/2019 01:33:18
Estoy creando un sistema de ventas en NetBeans, ahora quise poner un numero de factura que aumente de 1 en 1, para ello cree este método:

1
2
3
4
5
6
7
8
9
10
11
12
13
void generarSerie() {
 
    String serie = vdao.NroSerieVentas();
    //A esta variable la traigo desde otra clase.
 
    int increment = Integer.parseInt(serie);
    if (serie == null) {
        txtSerie.setText("000001");
    } else {
        increment = increment + 1;
        txtSerie.setText("00000" + increment);
    }
}

Pero cuando lo ejecuto en un JFrame me arroja este error:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at vistas.VentasForm.generarSerie(VentasForm.java:55)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Crear numero de serie de 1 en 1 para una factura

Publicado por Kabuto (1381 intervenciones) el 09/11/2019 13:50:18
En esta línea:
1
int increment = Integer.parseInt(serie);

Si el String serie esta vacío se produce una excepción al intentar transformar ese "vacío" en un valor numérico.
Y eso es lo que está pasando, la línea de error está indicando que se intenta convertir una cadena vacía

1
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""

Puedes:
- intentar controlar la excepción con un try catch
- evitar que el String serie este vacío, por ejemplo, haciendo que el método vdao.NroSerieVentas() en lugar de devolver null o cadena vacía "", devuelva el String "0"
- cambiar la línea donde parseas el String a int. Ponla dentro del condicional, cuando ya has comprobado que serie es distinto de null

1
2
3
4
5
6
7
if (serie == null) {
txtSerie.setText("000001");
} else {
int increment = Integer.parseInt(serie);
increment = increment + 1;
txtSerie.setText("00000" + increment);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar