Cuando deseamos crear busquedas avanzadas, estableciendo estas en base a las opciones que el usuario seleccione. Pasos para realizarlo:
1).Diseñamos el formulario de busqueda avanzada, en el cual colocamos las condiciones a buscar, agregandoles checkbox para cada condición , el que seleccionara el usuario.
2).En el botón BUSCAR comprobamos cuales checkbox han sido marcados y simplemente construimos el sql.
public String buscarButton_action() {
// TODO: Procesar la acción de clic de botón. El valor de devolución es un
// nombre de caso de navegación en el que un valor nulo devolverá la misma página.
try{
getSessionBean1().setComandosql("");
String sql ="";
//precio
if (preciocheckbox.isChecked()) {
String precio = (String)precioInicialField.getText();
double precioInicial = Double.parseDouble(precio);
precio = (String)precioFinalField.getText();
double precioFinal = Double.parseDouble(precio);
sql = " precio >= '" + precioInicial + "' and precio <= '" + precioFinal + "'";
}
//tipo
if (tipocheckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String idTipo = (String) tipodropDown.getSelected();
sql = sql + " idtipo like '" + idTipo + "'";
}
//operacion
if (operacioncheckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String idOperacion = (String) operaciondropDown.getSelected();
sql = sql + " idoperacion like '" + idOperacion + "'";
}
if (corregimientocheckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String corregimiento = (String) corregimientodropDown.getSelected();
sql = sql + " corregimiento like '" + corregimiento + "'";
}
//distrito
if (distritocheckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String distrito = (String) distritodropDown.getSelected();
sql = sql + " distrito like '" + distrito + "'";
}
if (provinciacheckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String provincia = (String) provinciadropDown.getSelected();
sql = sql + " provincia like '" + provincia + "'";
}
//pais
if (paischeckbox.isChecked()) {
if (sql.equals("") == false)
sql = sql + " and ";
String idPais = (String) paisdropDown.getSelected();
sql = sql + " idpais like '" + idPais + "'";
}
// verificar y generar el sqlcomand
if (sql.equals("")) {
info("Por favor seleccione una condicion de busqueda");
} else{
getSessionBean1().setComandosql(sql);
// info("Comando a evaluar " + sql);
this.getExternalContext().redirect("faces/propiedadesResultadosTipo.jsp");
}
}catch(Exception e) {
log("Error ", e);
error("Error " + e);
}
return null;
}
Resultado de la busqueda
Comments
numero de computadoras que se compre, si las computadoras son mayor de 10 se hace un descuento del
20% sobre el costo total de la pc; si es mayor a 15 se hace un descuento del 25%; mostrar el
nombre del comprador, la cantidad comprada, precio unitario, el descuento total , y el total a
pagar.
en una fabrica de computadoras se plantea ofrecer a los clientes un descuento dependiendo del
numero de computadoras que se compre, si las computadoras son mayor de 10 se hace un descuento del
20% sobre el costo total de la pc; si es mayor a 15 se hace un descuento del 25%; mostrar el
nombre del comprador, la cantidad comprada, precio unitario, el descuento total , y el total a
pagar.
numero de computadoras que se compre, si las computadoras son mayor de 10 se hace un descuento del
20% sobre el costo total de la pc; si es mayor a 15 se hace un descuento del 25%; mostrar el
nombre del comprador, la cantidad comprada, precio unitario, el descuento total , y el total a
pagar.