Mise a jour d'un record a partir d'un stringgrid Question voir mon code
WinLin
Messages postés86Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention 3 septembre 2007
-
22 mars 2005 à 22:46
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
23 mars 2005 à 12:23
bonjour j'ecris un petit soft pour petit besoin avec des record
et j'ai une commande qui ce trouve dans une stringgrid
et j'aimerai mettre a jour mon fichier de stock
alors ma demarche etait de faire un for qui boucle de 1 a X Ligne du stringgrid et dans ce for faire un while sur le fichier qui boucle jusqu'a avoir atteind la fin du fichier en testant le numero de serie de l'article et en mettant la quantite a jour de l'article
mon probleme est que cela fonctionne si je vend un article mais si j'en vend plusieur il ne passe pas dans le while pourtant je pense que mes condition sont bonne .
if FileExists('L:\Gestion-stock\data-fic\StockLL.dat') then
begin
assignFile(Fichier,'L:\Gestion-stock\data-fic\StockLL.dat');
reset(fichier);
// strcpt variable qui va parcourrir le tableau permettant
// de changer les variables
for strcptgrid2:=1 to (stringgrid2.RowCount) do
begin
// le while va parcourir tout le fichier de a a z en effectuant le test
recpos:=0;
while (not eof(fichier)) do
begin
// strcpt variable qui va parcourrir le tableau permettant
// de changer les variables
read(fichier,dencode);
if dencode.serie=stringgrid2.Cells[1,strcptgrid2] {and (dencode.emplacement=stringgrid2.Cells[4,strcptgrid2]) } then
begin
showmessage('passage dans la boucle while valeur '+inttostr(strcptgrid2));
recpos:=filepos(fichier); // si teste ok alors prendre la position du pointeur
seek(fichier,recpos+1); // placement du pointeur sur le record a modifier
buffercal:=strtoint(dencode.qt)-strtoint(stringgrid2.Cells[5,strcptgrid2]);
// Remplissage du buffer
dencode.qt:=inttostr(buffercal);
dencode.serie:=stringgrid2.Cells[1,strcptgrid2]; // nous allons tester cet valeur avec
dencode.description:=stringgrid2.Cells[2,strcptgrid2];
dencode.taille:=stringgrid2.Cells[3,strcptgrid2];
dencode.emplacement:=stringgrid2.Cells[4,strcptgrid2]; // l'emplacement comme cela si il y a plusieur emplacement avec le meme code
dencode.prix:=stringgrid2.Cells[6,strcptgrid2];
dencode.date:=dencode.date;
write(fichier,dencode);
end;
end;
end;
showmessage('numeraux de serie article non trouver');
end;
closefile(fichier);
end;
merci d'avance pour votre aide
A voir également:
Mise a jour d'un record a partir d'un stringgrid Question voir mon code