Hola amigos... ojala me puedan echar una mano con este problemita...
En un TForm tengo: 1 TDBGrid, 2 TRadiobutton, 8 TCheckbox, 1 TQuery y un TButton.
El TQuery busca en la tabla Presupuesto. Se puede buscar en 2 empresas distintas (dependiendo de cual TRadiobutton este chequeado). Ademas se puede buscar en las distintas AREAS (dependiendo de cuales TCheckbox este chequeado)
El codigo que tengo es asi....
Código Delphi
[-]
if RADIOBUTTON1.CHECKED = TRUE then EMPRESA:='REIFOX';
if RADIOBUTTON2.CHECKED = TRUE then EMPRESA:='CAINSA';
IBQUERY1.Close;
IBQUERY1.SQL.CLEAR;
IBQUERY1.SQL.ADD('SELECT SUBAREA, MONTO FROM PRESUPUESTO');
IBQUERY1.SQL.ADD('WHERE EMPRESA ='+QUOTEDSTR(EMPRESA));
if CHECKBOX1.CHECKED = TRUE then
IBQUERY1.SQL.ADD('AND AREA =QUOTEDSTR('EXISTENCIAS'));
if CHECKBOX2.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('PESQUERA'));
if CHECKBOX3.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('REVESTIMIENTO'));
if CHECKBOX4.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('BOMBA Y VALVULAS'));
if CHECKBOX5.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('SANITARIA'));
if CHECKBOX6.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('EXPLOTACION AREA SERVICIOS'));
if CHECKBOX7.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('APOYO PRODUCCION'));
if CHECKBOX8.CHECKED = TRUE then
IBQUERY1.SQL.ADD('OR AREA ='+QUOTEDSTR('ADMINISTRACION Y VENTAS'));
IBQUERY1.Open;
... funciona bien, el problema se me presenta cuando no tengo chequeado el checkbox1, porque ese es el que tiene la sentencias 'AND'...
Como puedo hacer para que me busque en las AREA que tengo chequeadas... alguien tiene alguna idea...
saludos... gracias