Quiero agradecer a todos;psque me dieron una luz, para poder resorver mi problema. Ya lo pude resolver. Aqui les dejo el procedimiento por si alguien lo va a nacesitar en algun momento. De nuevo gracias a todos.
Código Delphi
[-]
procedure TMovimiento_Pedidos.desglose_articulo_ventas;
var conte, i, c1, fec1, fec2 : integer;
compras3, estado1, fec0 : string;
fecha1, fecha2 : string; fe1, fe2 : TDateTime;
Ano, Mes, Dia : Word;
begin
estado1 := 'ANULADO';
fecha1 := datetostr(fechaini.DateTime);
fecha2:= datetostr(fechafin.DateTime);
c1 := 0;
IBQuery4.Close;
IBQuery4.SQL.Clear;
IBQuery4.SQL.Add('select count(*) as entradas from ARTICULOS a inner join FACTURADT b on (b.FAARID = a.ARID) '+
'inner join FACTURAS c on (c.FAID = b.FAID) and (c.FAESTADO <> '''+estado1+''') and (c.FAFCH between '''+fecha1+''' and '''+fecha2+''') '+ ' where a.ARCODIGO = '''+Codigo_Prod.Text+'''');
IBQuery4.Prepare;
IBQuery4.Open;
begin
conte := IBQuery4.FieldByName('entradas').AsInteger;
IBQuery4.Close;
IBQuery4.SQL.Clear;
IBQuery4.SQL.Add('select extract(year from c.fafch) annio, extract(month from c.fafch) mess, sum(b.facantidad) total_mes '+
'from ARTICULOS a inner join FACTURADT b on (b.FAARID = a.ARID) '+
'inner join FACTURAS c on (c.FAID = b.FAID) and (c.FAESTADO <> '''+estado1+''') and (c.FAFCH between '''+fecha1+''' and '''+fecha2+''') '+
'where a.ARCODIGO = '''+Codigo_Prod.Text+''' group by 1,2 order by 1,2 ');
IBQuery4.Prepare;
IBQuery4.Open;
end;
c1 := 0;
IBQuery4.First;
while not Movimiento_Pedidos.IBQuery4.EOF do
begin
begin
sg1.Cells[1+c1,3] := IBQuery4.FieldByName('mess').AsString+'-'+IBQuery4.FieldByName('annio').AsString;
sg1.Cells[2+c1,3] := IBQuery4.FieldByName('total_mes').AsString;
c1 := c1+2;
end;
IBQuery4.Next;
end;
end;
El problema estaba, en que no estaba utilizando el while, y lo que utilizaba era el for.
Gracias.