Arkadaşlar elimde iki table var Urun ve CikisDetayadında belirli bir şart sağlanınca Urun adlı tablonun kaydını CikisDetay adlı tabloya eklemek istiyorum. Mesela text dosyadan okuttuğum barkod verisini Urun tablosunda aratıyorum eğer varsa BARKOD ve URUNADI alanlarını CikisDetay tablosunun CK_BARKOD ve CK_URUNADI alanlarına değer olarak atamak istiyorum. Aşağıdaki kod sadece bir kayıt için yapıyor bunu yani anladığım kadarıyla while döngüsü tam çalışmıyor.Yardımcı olursanız sevinrim.
Kod: Tümünü seç
procedure TfrmVeriAl.SpeedButton1Click(Sender: TObject);
var
Dosya:Textfile;
DosyaAdi,Satir:String;
miktar:integer;
begin
DosyaAdi:='C:\deneme.txt';
AssignFile(Dosya,DosyaAdi);
{$I-}
Reset(Dosya);
if IOResult=0 then
begin
while not EOF(Dosya) do
begin
ReadLn(Dosya,Satir);
if Copy(Satir,1,2)='28' then
begin
if qryUrun.Locate('BARKODU', Copy(Satir,3,5), []) then
begin
qryCikisDetay.Edit;
miktar:=StrToInt(Copy(Satir,8,5));
qryCikisDetayCK_BARKOD.AsInteger:=qryUrunBARKODU.AsInteger;
qryCikisDetayCK_URUNADI.AsString:=qryUrunADI.AsString;
qryCikisDetayCK_MIKTARI.AsInteger:=miktar;
qryCikisDetay.Post;
end;
end;
end;
if Copy(Satir,1,2)='27' then
begin
if qryUrun.Locate('BARKODU',Copy(Satir,3,5),[]) then
begin
qryCikisDetay.Edit;
miktar:=StrToInt(Copy(Satir,8,5));
qryCikisDetayCK_BARKOD.AsInteger:=qryUrunBARKODU.AsInteger;
qryCikisDetayCK_URUNADI.AsString:=qryUrunADI.AsString;
qryCikisDetayCK_MIKTARI.AsInteger:=qryCikisDetayCK_MIKTARI.AsInteger+miktar;
qryCikisDetay.Post;
end;
end;
end;
end;
1.)barkod verisini text dosyadan okuma-ki burada problem yok kuyorum-
2.)Okunan verinin URUn adlı tabloda olup olmadığını kontrol etme
3.)Varsa URUN tablosunun URUNADI alanını CIKISDETAY tablosunun URUNADI alanına kopyalamak.