var
toplam : Extended;
begin
toplam := 0;
Adotable1.first ;
while not Adotable1.eof do
begin
toplam := TOPLAM + (Adotable1.fieldbyname ('PRODUCT_ID').asfloat ) ;
Adotable1.next;
end;
Adotable1.fieldbyname('UPC').value := FloatToStr(Toplam);
end;
end;
burdaki amacım field lardan PRODUCT_ID de hangi değer var ise o değeri UPC kısmına yazacak. Aslında birde buna ek olarak değer 5 rakamlı ise değerin başına 20030, değer 4 rakamlı ise 200300 rakamlarını koyup UPC kısmına yazacak.
Biliyorum burdaki amacınız program yapmak değil yol göstermek.
Bu seferlik bir istisna olursa sevinirim
Saygılar
En son Armani tarafından 13 Nis 2004 02:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Armani yazdı:burdaki amacım field lardan PRODUCT_ID de hangi değer var ise o değeri UPC kısmına yazacak.
ne yapmak istediğiniz tam anlaşılmıyor. Kodda toplam alıp yazdırmışsınız ve kodunuz doğru gözüküyor. Burda aynısını yazdırmak istiyorum diyorsunuz. Eğer bir alanın değerinin başka bir alanla aynı olmasını istiyorsanız, Datasetin (burda AdoTable1) BeforePost olayında eşitleyin.
var
toplam: Extended;
pid: string;
begin
Adotable1.first;
while not Adotable1.eof do
begin
pid := Adotable1.fieldbyname('PRODUCT_ID').AsString;
if length(pid) = 4 then
Adotable1.fieldbyname('UPC').AsString := '200300' + pid
else if length(pid) = 5 then
Adotable1.fieldbyname('UPC').AsString := '20030' + pid
else
; //iki sarta da uymayınca yapacagın sey
Adotable1.next;
end;
end;
Planım şuydu.
Dbgridde kolonlarımdan PRODUCT_ID deki datayı Aynı yerde boş olan UPC kısmına yazdırmak istiyorum.
Ör:
Product_id Upc
2523 2523
......
Buna artı olarak nasıl bir kod yazılacagına dair hiç bir fikrim olmadıgı bir konuda Upc kısmına yazılan product_id kısmındaki bilginin başına rakam 5 rakamlı ise 20030 sabit rakamını, 4 rakamlı ise 20030 rakamını koyması
Id Alanında ki değer tahminime göre Sayı tipinde ilk önce onu Stringe çevir. ve + operatürü ile başına rakamı ekle; tekrar Sayı tipine dönüştür ve alana kaydet.
Gökmen'in koduna Adotable1.Edit ve Adotable1.Post eklenmiş hali.
var
toplam: Extended;
pid: string;
begin
Adotable1.first;
while not Adotable1.eof do
begin
pid := Adotable1.fieldbyname('PRODUCT_ID').AsString; Adotable1.Edit;
if length(pid) = 4 then
Adotable1.fieldbyname('UPC').AsString := '200300' + pid
else if length(pid) = 5 then
Adotable1.fieldbyname('UPC').AsString := '20030' + pid
else
; //iki sarta da uymayınca yapacagın sey Adotable1.Post;
Adotable1.next;
end;
end;