none
filtro inverso en dataGridView

    Question

  • Tengo una funcionalidad que me permite Filtrar una dataGridView, para ello utilizo la tecla "F4".

    Ahora quiero hacer un "Filtro Inverso", para ello voy a usar "Shift-F4".

    Para el filtro utilizo:

    awFiltro = 
    
    string.Format("{0} like '%{1}%'",adf1.awCampos1 ,fv.maskedtextbox1);
    
    awCampos es el ColumnName del dataGridView

    maskedtextbox1 es el dato que ingreso el usuario para realizar el filtrado

    por ejemplo, si quiero filtrar todos los "nombres" que contengan la letra "a" seria algo como esto:

    aa0kNombre like '%a%'

    esto estaría en una variable st

    y yo hago:

    awFiltro = awFiltro + "and" + st; // para ir adicionando filtros, filtrado por capas

    se me ocurrio hacer:

    awFiltro = awFiltro  + "and" + "(!(" + st + "))";

    para decir algo como: filtra por "esto" y no por "esto otro"

    esto me permitiría continuar haciendo filtro sobre filtro según el deseo del usuario, el podría usar una mezcla de filtros y filtros inversos.

    PERO ME DA ESTE ERROR: No se puede interpretar el token '!' en la posición 2.

    con el siguiente filtro: (!(aa0kNombre like '%a%')) and (!(na0kNivel = 0))

    colocar el '!' delante me resulta muy cómodo, escribo mucho menos código, ALGUNA IDEA  ????

    ejemplo: en la venta de propiedades, el cliente tiene determinadas características que debe tener la propiedad a comprar, pero no todas tienen la misma prioridad, a veces el cliente no lo tiene muy claro.

    si hiciéramos un conjunto de filtros, todos juntos podría pasar que no queden propiedades con todas esas características.

    en cambio con "mi sistema" ;) se van aplicando filtros, de esa forma se van visualizando cada vez menos propiedades, cuando la cantidad es digamos "digital" (menos de 10) se puede conversar sobre la ubicación, cantidad de piezas, etc.

    el filtrado se va haciendo mientras dialogamos con el cliente sobre cual es lo único a lo que no quiere renunciar y las siguientes cosas infaltables.


     

     

     

    Friday, September 20, 2013 8:40 AM

Answers

  • Hola, en SQL la negación es con NOT

    Ejemplo

    SELECT * FROM TABLA WHERE CAMPO1 NOT LIKE '%PRUEBA%'


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marked as answer by macgyber Friday, September 20, 2013 5:54 PM
    Friday, September 20, 2013 9:04 AM