cs_apz
Messages postés281Date d'inscriptiondimanche 7 avril 2002StatutMembreDernière intervention11 avril 2013
-
16 sept. 2002 à 21:43
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 2006
-
18 sept. 2002 à 00:53
salut,
je voulais faire un filtrage sur une table en utlisant les numeros d'enregistrements pour recuperer
la valeur du premier champ et ensuite etablir mon filtre.
mais voila ca n'a pas bien marché.
------------------------------
var
Form1: TForm1;
RECN1, RECN2 : longint;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
allrec :longint;
combien:longint;
i : integer;
begin
combien:=3; //combien de record dans une seule fois
RecN1:=1;
RecN2:=RecN1+combien;
allrec:=kiosque.RecordCount;
Table1.Filtered:=true; // voir table1 OnFilterRecord event
While RecN1<=allrec do begin
DBGrid1.DataSource:=DS;
Showmessage('les : '+IntToStr(RECN1)+' à '+IntToStr(RECN2)+' Enreg. de la TABLE1.DB');
sleep(500);
DBGrid1.DataSource:=NIL;
//-------
RecN1:=RecN2+1;
RecN2:=RecN1+how_much;
end;
table1.Filtered:=false;
end;
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
s1, s2 : string;
begin
s1:=''; s2:='';
Accept:=false;
with Table1 do
begin
// 1ere
showmessage('RECN1='+IntToStr(recn1));
recno:=recn1;
showmessage('le 1er record actif est :'+IntToStr(recno)+' '+fieldbyname('ref').asstring );
s1:=Fieldbyname('Champ1').AsString;
label2.Caption:='s1='+s1;
// 2eme
showmessage('RECN2='+IntToStr(recn2));
recno:=recn2;
showmessage('le 2eme record actif est :'+IntToStr(recno)+' '+fieldbyname('ref').asstring);
s2:=Fieldbyname('Champ1').asstring;
label3.Caption:='s2='+s2;
end;
Accept:=(DataSet.FieldByName('Champ1').asstring>=s1)and(DataSet.FieldByName('Champ1').asstring<=s2);
end;
---------------------
qlq peut le tester pour moi et me dire ou se situ la faille ?
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 18 sept. 2002 à 00:53
Ici ce n'est pas possible : RecNo et RecordCoount ne sont pas valides sur les tables filtrées !!!
Donc dés que Filtered=True, RecNo et RecordCount valent 1 quelque soit la position ou le nombre de lignes.