Procedure tform1.cargararticulos;
var
// nitem : tlistitem;
costo, util1, prlista1, prlista2, prlista3, prlista4, prlista1n, prlista2n, prlista3n, prlista4n, iva , coston: real;
cad, cad2 , stb, stm, ru, sru: string;
contador : integer;
Begin
Screen.Cursor:=crHourGlass;
StaticText1.Caption:='ESPERE UN MOMENTO. CARGANDO ARTICULOS';
StaticText1.Visible:=true;
Application.ProcessMessages;
ru:=devolverultimoparametro(combobox2.Text);
sru:=devolverultimoparametro(combobox3.Text);
cad:='SELECT aru.codigo AS ruc, aru.descripcion AS rud , ars.codigo AS src, ars.descripcion AS srd, art.codigo AS arc, art.descripcion AS ard, art.costoi, ';
cad:=cad+'art.costoant, art.prlista1, art.prlista2, art.prlista3, art.prlista4, art.idar ';
cad:=cad+'FROM articulosrubros aru, articulossubrubros ars, articulos art, articulosdeproveedor ard ';
cad:=cad+'WHERE art.rubro = aru.idr AND art.subrubro = ars.idsr AND art.idar = ard.idarticulo AND art.eliminado=0 AND ard.idproveedor = '+devolverultimoparametro(LabeledEdit1.Text)+' ';
if combobox2.ItemIndex>0 then
cad:=cad+'AND art.rubro = '+devolverultimoparametro(combobox2.Text)+' ';
if combobox3.ItemIndex>0 then
cad:=cad+'AND art.subrubro = '+devolverultimoparametro(combobox3.Text)+' ';
cad:=cad+'ORDER BY ';
case combobox1.ItemIndex of
0 : cad:=cad+'art.codigo';
1 : cad:=cad+'art.rubro';
2 : cad:=cad+'art.subrubro';
3 : cad:=cad+'art.descripcion';
4 : cad:=cad+'art.costoi';
5 : cad:=cad+'art.prlista1';
6 : cad:=cad+'art.prlista2';
7 : cad:=cad+'art.prlista3';
8 : cad:=cad+'art.prlista4';
end;
dbi.bpqsl.SQL.Text:=cad;
dbi.bpqsl.Open;
listapantalla.Clear;
contador:=0;
while not dbi.bpqsl.EOF do begin
cad2:=dbi.bpqsl.FieldByName('arc').AsString+'|'+dbi.bpqsl.FieldByName('ruc').AsString+'('+dbi.bpqsl.FieldByName('rud').AsString+')|'+dbi.bpqsl.FieldByName('src').AsString;
cad2:=cad2+'('+dbi.bpqsl.FieldByName('srd').AsString+')|'+dbi.bpqsl.FieldByName('srd').AsString+'|'+floattostrf(dbi.bpqsl.FieldByName('costoi').AsFloat,ffFixed,8,2)+'|';
cad2:=cad2+floattostrf(dbi.bpqsl.FieldByName('costoant').AsFloat,ffFixed,8,2)+'|'+floattostrf(dbi.bpqsl.FieldByName('prlista1').AsFloat,ffFixed,8,2)+'|';
cad2:=cad2+floattostrf(dbi.bpqsl.FieldByName('prlista2').AsFloat,ffFixed,8,2)+'|'+floattostrf(dbi.bpqsl.FieldByName('prlista3').AsFloat,ffFixed,8,2)+'|';
cad2:=cad2+floattostrf(dbi.bpqsl.FieldByName('prlista4').AsFloat,ffFixed,8,2)+'|'+floattostrf(dbi.bpqsl.FieldByName('idar').AsFloat,ffFixed,8,2);
listapantalla.Add(cad2); // this line is causing the trouble
dbi.bpqsl.Next;
inc(contador);
end;
if listapantalla.Count=0 then begin
StaticText1.Caption:='No se encuentran articulos con esos datos';
StaticText1.Font.Color:=clYellow;
StaticText1.Visible:=true;
Timer1.Enabled:=true;
end;
listview1.Items.Count:=contador;
dbi.bpqsl.Close;
StaticText1.Visible:=false;
Screen.Cursor:=crDefault;
listview1.Repaint;
Application.ProcessMessages;
end;