Java - Búsqueda con diferentes parámetros

   
Vista:

Búsqueda con diferentes parámetros

Publicado por marc (29 intervenciones) el 20/03/2014 18:32:15
Hola, tengo una consulta que hacer, tengo un formulario de consulta donde existen distintos parámetros, el usuario debe especificar esos parámetros pero no necesariamente todos posiblemente algunos queden vacíos, mi pregunta es como debo hacer para mostrar los resultados de acuerdo a los parámetros especificados

Este es el procedimiento almacenado que desarrollé

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
CREATE procedure pro_consulta
 
@ck varchar(50)=null,
@cuenta nvarchar(50)=null,
@empresa numeric(9)=null,
@banco varchar(10)=null,
@tipo numeric(9)=null,
@con nvarchar(80)=null,
@beneficiario nvarchar(50)=null,
@fechai nvarchar(15)=null,
@fechaf nvarchar(15)=null
 
as
 
begin
SELECT * FROM PELICULAS
--varchar
WHERE ck like isnull(@ck + '%', ck) and
cod_cuenta like isnull(@cuenta + '%', cuenta) and
--num
cod_empresa like isnull(Cast(@empresa As Varchar) + '%', Cast(cod_empresa As Varchar)) AND
--varchar
cod_banco like isnull (@banco + '%', banco) and
cod_tipomov like isnull(Cast(@tipo As Varchar) + '%', Cast(cod_tipomov As Varchar)) AND
concepto like isnull (@con + '%', con) and
beneficiario like isnull (@beneficiario + '%', beneficiario) and
fecha >@fechai and
fecha <@fechaf
end
GO
 
y este es el código del botón ejecutar
 
//Declaración de variables
String ck = txtNumCK.getText();
codcuenta(cboCuenta);
String cuenta = txtCuenta.getText();
int empresa = cboEmpresa.getSelectedIndex();
codbanco(cboBanco);
String banco = txtBanco.getText();
int tipo = cboTipoMov.getSelectedIndex();
String concepto = txtConcepto.getText();
String beneficiario = txtBeneficiario.getText();
ModeloFecha f=new ModeloFecha(dateInicio.getDate());
String fechai=f.getFecha();
ModeloFecha f1=new ModeloFecha(dateFinal.getDate());
String fechaf=f1.getFecha();
if (ck.isEmpty())
try
{
cst=con.prepareCall("{call pro_consulta(?,?,?,?,?,?,?,?,?)}");
cst.setString(1, ck);
cst.setString(2, cuenta);
cst.setInt(3, empresa);
cst.setString(4, banco);
cst.setInt(5, tipo);
cst.setString(6, concepto);
cst.setString(7, beneficiario);
cst.setString(8, fechai);
cst.setString(9, fechaf);
int rpta=cst.executeUpdate();
int contador =0;
while (rs.next())
{
contador++;
Object dato[]=new Object[12];
for(int i=0;i<12;i++)
{
dato=rs.getString(i+1);
}
consulta.addRow(dato);
}
this.tbConsulta.setModel(consulta);
//Bloqueando celdas de la tabla
consulta.isCellEditable(1, 12);
if (0==contador)
{
JOptionPane.showMessageDialog(null, "No se encontró ningún registro");
}
else
{
JOptionPane.showMessageDialog(null, "La cantidad de registros encontrados son: "+contador);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}

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

Búsqueda con diferentes parámetros

Publicado por mario (29 intervenciones) el 20/03/2014 19:18:20
Estoy corrigiendo el procedimiento almacenado

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
CREATE procedure pro_consulta
 
@ck nvarchar(50)=null,
@cuenta nvarchar(50)=null,
@empresa numeric(9)=null,
@banco nvarchar(10)=null,
@tipo numeric(9)=null,
@con nvarchar(80)=null,
@beneficiario nvarchar(50)=null,
@fechai nvarchar(15)=null,
@fechaf nvarchar(15)=null
 
as
 
begin
	SELECT * FROM pre_movimientos
			--varchar
	WHERE 	ck like isnull(@ck + '%', ck) and
			cod_cuenta like isnull(@cuenta + '%', cod_cuenta) and
			--num
			cod_empresa like isnull(Cast(@empresa As Varchar) + '%', Cast(cod_empresa As Varchar)) AND
			--varchar
			cod_banco like isnull (@banco + '%', cod_banco) and
			cod_tipomov like isnull(Cast(@tipo As Varchar) + '%', Cast(cod_tipomov As Varchar)) AND
			concepto like isnull (@con + '%', concepto) and
			beneficiario like isnull (@beneficiario + '%', beneficiario) and
			fecha  >@fechai and
			fecha <@fechaf
end
GO
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