Título: Búsqueda con diferentes parámetros Publicado por: marc85 en 20 Marzo 2014, 18:24 pm 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é 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 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(); 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); rs=cst.executeQuery(); while (rs.next()) { 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); } catch(Exception e) { JOptionPane.showMessageDialog(null, e); } |