Java - Consulta de Jtable-2

 
Vista:
sin imagen de perfil
Val: 106
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta de Jtable-2

Publicado por Hector (63 intervenciones) el 17/04/2019 00:15:00
Hola amigos del foro, he aquí nuevamente molestando por una consulta de un Jtable, les cuento tengo un formulario que se llama presupuesto, en el cual ingreso la mano de obra y repuestos, que anteriormente mencione por el problema de decrementar las filas, ahora el problema es el siguiente que hay un formulario que se llama cotización de repuestos, en el cual el usuario digita la patente que ya ingreso anteriormente en presupuesto y trae los datos solicitados además de los datos ya grabados anteriormente en la table de presupuestos, pero al momento de grabar los datos de la Jtable que llame anteriormente no graba, este es el código que utilizo para tal situación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
private void txtpatenteActionPerformed(java.awt.event.ActionEvent evt) {
String texto = txtpatente.getText();
texto = texto.replaceAll(" ", "");
if (texto.length() == 0) {
JOptionPane.showMessageDialog(null, "Error, debe ingresar la Patente del Vehículo.");
} else {
patente();
}
}
 
void patente() {
if (cmbpatente.getSelectedItem() == null || cmbpatente.getSelectedItem() != null) {
List<String[]> datos = MyQuery.getInstance().executeQuery("select Nombre_Compañia, Rut_Compañia, Fecha_Presupuesto, N_Siniestro, Nombre_Asegurado, Fono_Asegurado, Nombre_Tercero, Fono_Tercero, Marca_Vehiculo, Modelo_Vehiculo, Año_Vehiculo, Patente_Vehiculo, Chasis_Vehiculo from presupuesto where Patente_Vehiculo = ?", txtpatente.getText().toString());
if (datos != null && !datos.isEmpty()) {
datos.forEach(d -> {
txtcia.setText(d[0]);
txtrut.setText(d[1]);
txtfecha.setText(d[2]);
txtsiniestro.setText(d[3]);
txtnombre.setText(d[4]);
txtfonoasegurado.setText(d[5]);
txttercero.setText(d[6]);
txtfonotercero.setText(d[7]);
txtmarca.setText(d[8]);
txtmodelo.setText(d[9]);
txtaño.setText(d[10]);
txtpatente.setText(d[11]);
txtvin.setText(d[12]);
mostrardatos1(txtpatente.getText());
contar1();
txtcantidad.requestFocus();
if (cmdmodificar.equals(true)) {
cmdgrabar.setEnabled(false);
cmdeliminar.setEnabled(true);
cmdimprimir.setEnabled(true);
} else {
cmdgrabar.setEnabled(true);
cmdeliminar.setEnabled(false);
}
});
} else {
JOptionPane.showMessageDialog(null, "Esta patente no ha sidro ingresada aún en presupuestos.");
txtvin.requestFocus();
}
} else {
JOptionPane.showMessageDialog(null, "Esta patente no ha sidro ingresada aún en presupuestos.");
txtvin.requestFocus();
}
}
 
void mostrardatos1(String Valor) {
List<String[]> l = Valor.isEmpty()
? MyQuery.getInstance().executeQuery("select ID_Rep,N_Filas, Cant_Repuestos, Repuestos, Valor_Original, Valor_Alternativo, Patente_Vehiculo, Activo from presupuesto2")
: MyQuery.getInstance().executeQuery("select ID_Rep,N_Filas, Cant_Repuestos, Repuestos, Valor_Original, Valor_Alternativo, Patente_Vehiculo, Activo from presupuesto2 where Patente_Vehiculo = ?", Valor);
String[] columns = {
"ID",
"Nº Filas",
"Cant.",
"Repuestos",
"Original",
"Alternativo",
"Patente",
"Activo"
};
String[][] data = new String[l.size()][columns.length];
for (int i = 0; i < l.size(); i++) {
data[i] = l.get(i);
}
DefaultTableModel dtm = new DefaultTableModel(data, columns);
tblDatos.setModel(dtm);
TableColumn columna = tblDatos.getColumnModel().getColumn(0);
TableColumn columna1 = tblDatos.getColumnModel().getColumn(6); // aqui es donde las columnas que necesito que no se vean
TableColumn columna2 = tblDatos.getColumnModel().getColumn(7);
columna.setMaxWidth(0);
columna.setMinWidth(0);
columna.setPreferredWidth(0);
columna1.setMaxWidth(0);
columna1.setMinWidth(0);
columna1.setPreferredWidth(0);
columna2.setMaxWidth(0);
columna2.setMinWidth(0);
columna2.setPreferredWidth(0);
tblDatos.doLayout();
}
 
public void contar1() {
int i = 1;
for (int x = 0; x <= tblDatos.getRowCount(); x++) {
int suma = x + i;
txtitem.setText("" + suma);
}
}
una vez concluido que llame los datos, se debe realizar la suma de las columnas.
private void SumaRepActionPerformed(java.awt.event.ActionEvent evt) {
txttotal.setText("0");
int ta = tblDatos.getRowCount();
int c = 0;
do {
try {
int f = c++;
int n1 = Integer.parseInt(tblDatos.getValueAt(f, 4).toString());
String nu = txttotal.getText();
int nu2 = Integer.parseInt(nu);
long re1 = n1 + nu2;
txttotal.setText(String.valueOf(re1));
} catch (Exception e) {
 
}
} while (c < ta);
 
txttotal1.setText("0");
int ta1 = tblDatos.getRowCount();
int d = 0;
do {
try {
int f = d++;
int n1 = Integer.parseInt(tblDatos.getValueAt(f, 5).toString());
String nu = txttotal1.getText();
int nu2 = Integer.parseInt(nu);
long re1 = n1 + nu2;
txttotal1.setText(String.valueOf(re1));
} catch (Exception e) {
 
}
} while (c < ta);
}
una vez terminado dicho proceso se debe grabar los datos
private void cmdgrabarActionPerformed(java.awt.event.ActionEvent evt) {
String[] params = {
txtcia.getText().trim(),
txtrut.getText().trim(),
txtfecha.getText().trim(),
txtsiniestro.getText().trim(),
txtnombre.getText().trim(),
txtfonoasegurado.getText().trim(),
txttercero.getText().trim(),
txtfonotercero.getText().trim(),
txtmarca.getText().trim(),
txtmodelo.getText().trim(),
txtaño.getText().trim(),
txtpatente.getText().trim(),
txtvin.getText().trim(),
txttotal.getText().trim(),
txttotal1.getText().trim(),
txtactivo.getText().trim(),};
MyQuery.getInstance().executeStatement("insert into cotizacion values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", params);
modelPatente.addElement(txtpatente.getText().trim());
grabar();
JOptionPane.showMessageDialog(null, "Datos Grabados Satisfactoriamente");
bloqueo();
limpiar();
}
ahora grabo los datos de la Jtable
void grabar() {
try {
for (int i = 0; i < tblDatos.getRowCount(); i++) {
PreparedStatement pst = cn.prepareStatement("insert into cotizacion1(ID_Coti,N_Filas,Cant_Repuestos,Repuestos,Valor_Original,Valor_Alternativo,Patente_Vehiculo,Activo)");
pst.setString(1, tblDatos.getValueAt(i, 0).toString());
pst.setString(2, tblDatos.getValueAt(i, 1).toString());
pst.setString(3, tblDatos.getValueAt(i, 2).toString());
pst.setString(4, tblDatos.getValueAt(i, 3).toString());
pst.setString(5, tblDatos.getValueAt(i, 4).toString());
pst.setString(6, tblDatos.getValueAt(i, 5).toString());
pst.setString(7, tblDatos.getValueAt(i, 6).toString());
pst.setString(8, tblDatos.getValueAt(i, 7).toString());
pst.executeUpdate();
}
} catch (Exception e) {
System.out.print(e.getMessage());
}
}
me graba la tabla cotizacion pero no la tabla cotización1, favor de ayudarme desde ya muchas gracias, por que la idea de que el usuario de ahora en adelante llame datos y no digite todas las pantallas lo mismo
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
sin imagen de perfil
Val: 106
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta de Jtable-2

Publicado por Hector (63 intervenciones) el 22/04/2019 23:42:54
Hola amigos del foro me respondo a mi mismo, ya que no me han aclarado la duda de como grabar una jtable al ser llamada solamente por la patente de un vehículo, sino fui muy explicito me lo dicen solamente porque no puedo solucionar este problema, por ultimo hago un vídeo para que me entiendan lo que quiero hacer, desde ya muchas gracias
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta de Jtable-2

Publicado por Yamil Bracho (2315 intervenciones) el 23/04/2019 00:10:22
Tienes un error ent la consulta SQL insert. No estas especificacndo los placeholder para colocar los valores qu ete vienen del JTable.
la senetencia insert debe ser
insert into cotizacion1(ID_Coti,N_Filas,Cant_Repuestos,Repuestos,Valor_Original,Valor_Alternativo,Patente_Vehiculo,Activo) VALUES(
?, ?, ?, ?, ?, ?, ?,?)

- Crea la senetncia preparada fuera del ciclo, sino la estan creando a cada rato

- Ya que le pusiste un try..catch a tu codigo, revisa que excepcion te esta arrojando y alli te puede dar una pista de que si hay problemas y cual pudiera ser.
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