Filtrar grilla con dos combos

Buenos días... Tengo en un formulario una grilla cargada con los datos de una vista hecha sobre la tabla Stock que entre otros campos posee los campos codrubro y codproveedor, por los cuales quiero filtrar la grilla. Coloque dos combos uno para la tabla rubros y otro para la tabla proveedores. La idea es que la grilla muestre los registros que contengan el rubro seleccionado y el proveedor seleccionado por medio de los combos; y me esta filtrando uno de los combos y no ambos. Al seleccionar el rubro, me filtra la grilla por el rubro sin importar proveedor y al elegir el proveedor(por medio delos combos claro) filtra los proveedores pero no mantiene el filtro de los rubros hache anteriormente. Perdón por lo extenso y desde ya gracias

1 Respuesta

Respuesta
1
PUes en este caso, depende de como estés realizando el filtro, si es con la instrucción <SET FILTER> o si lo estas haciendo con una consulta <SELECT - SQL>, de cualquier forma te mando un ejemplo de algo que te podría ayudar.
Suponiendo que tienes los combos "cmbCodRubro" para el Rubro y "cmbCodProveedor" para los Proveedores. Utilizando la instrucción <SET FILTER> quedaría algo así:
IF !EMPTY(ThisForm.cmbCodRubro.Value) AND !EMPTY(ThisForm.cmbCodProveedor.Value)
    SET FILTER TO CodRubro == ThisForm.cmbCodRubro.Value AND ;
        CodProveedor == ThisForm.cmbCodProveedor.Value
ELSE
    IF !EMPTY(ThisForm.cmbCodRubro.Value)
        SET FILTER TO CodRubro == ThisForm.cmbCodRubro.Value
    ENDIF
    IF !EMPTY(ThisForm.cmbCodProveedor.Value)
        SET FILTER TO CodProveedor == ThisForm.cmbCodProveedor.Value
    ENDIF
ENDIF
O si utilizas una instrucción <SELECT - SQL> la condición sería básicamente la misma:
SELECT * ;
FROM ;
    Stock ;
WHERE ;
    CodRubro == ThisForm.cmbCodRubro.Value AND ;
    CodProveedor == ThisForm.cmbCodProveedor.Value
Tal vez tengas que utilizar la función <ALLTRIM()> para que las comparaciones concuerden.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas