Hola mjjj, lo que yo haria seria utilizar un CheckListBox, el AND lo pondría donde esta tu Where, tu codigo quedaria mas o menos asi.
Código Delphi
[-]
var
i,flg:Integer;
begin
flg := 0;
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)+' AND ');
for i:=0 to CheckListBox1.Items.Count-1 do
begin
if CheckListBox1.Checked[i]=true then if flg=0 then begin QUERY1.SQL.ADD(' AREA ='+QUOTEDSTR(CheckListBox1.Items[i]));
flg := 1;
end
else
QUERY1.SQL.ADD(' OR AREA ='+QUOTEDSTR(CheckListBox1.Items[i]));
end;
IBQUERY1.Open;
Estoy suponiendo que el texto de cada CheckBox seria el mismo al area a buscar.
Saluditos