İçinde kaç adet var

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

İçinde kaç adet var

Mesaj gönderen Dostk »

Selam. Database ve listview de ki ürün numaraları tutuyorsa ve bu ürün 'SU KAYAĞI' ise her birini toplamda kaç tane olduğunu nasıl bulabilirim?

Örnek:
2 ŞAMREL
3 SU KAYAĞI
3 SU KAYAĞI
3 SU KAYAĞI ----> TOPLAM 3 ADET
4 MİSİNA
4 MİSİNA
5 SU KAYAĞI
5 SU KAYAĞI
5 SU KAYAĞI
5 SU KAYAĞI
5 SU KAYAĞI
5 SU KAYAĞI----> TOPLAM 6 ADET

Kod: Tümünü seç

procedure TForm6.AdetleriGir(Sender: TObject);
var
  R, HBSay: Integer;
begin
  HBSay := 0;
  With QPLNew, STList do
  begin
    for R := 0 to Items.Count - 1 do
    begin
      Connection := PLConnection;
      Close;
      SQL.Clear;
      SQL.Add('Select * From FIRMALAR');
      SQL.Add('Where URUNNO=:KN');
      ParamByName('KN').AsString := Items[R].SubItems[1];
      Prepared := True;
      Open;
      Items.BeginUpdate;
      try
        if (Pos(FieldByName('URUNNO').AsString, Items[R].SubItems[1]) > 0) and
          (Pos(FieldByName('URUN').AsString, 'SU KAYAĞI') > 0) then
        begin
          inc(HBSay);
          Items[R].SubItems[2] := IntToStr(HBSay) + ' Adet var';
        end;
      finally
        Items.EndUpdate;
      end;
    end;
  end;
 end;

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2195
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: İçinde kaç adet var

Mesaj gönderen freeman35 »

select count(*) from tablename. TStrings yada tstringlist te mükerrer kayıt girişi için boolean bir değişken vardı, aklıma gelmedi şimdi. onu True yap ve count u kullan
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

seci20
Üye
Mesajlar: 231
Kayıt: 25 May 2015 05:39

Re: İçinde kaç adet var

Mesaj gönderen seci20 »

hocam şu kod işinizi görür muhtemelen.

Kod: Tümünü seç

var
i,sayısı:integer;
begin
sayısı:=0;
for i := 0 to listview1.Items.Count -1 do
begin
if listview1.Items[i].Caption='3' then
if listview1.Items[i].SubItems[0]='SU KAYAĞI' then
sayısı:=sayısı+1;

end;

end;

onur2x
Üye
Mesajlar: 18
Kayıt: 29 Şub 2016 12:20

Re: İçinde kaç adet var

Mesaj gönderen onur2x »

Sql group incelerseniz belirli bir kategorideki kayıtları listelersin ona göre suzersin vs eğer veritabanından çekerken sayısını da öğrenirsin

Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

Re: İçinde kaç adet var

Mesaj gönderen Dostk »

Merhaba;

Tavsiye üzerine "Select Count(*)" ile işleme devam edeceğim; fakat öncesinde ürünün adını ve ürünün numarasını aşağıdaki kodlarla almak istediğimde 'SU KAYAĞI' dışında araya faklı ürünlerinde bilgisi giriyor, acaba kodlamada nerede hata yapıyorum?


Kod: Tümünü seç

var
  HB: String;
begin
With QPLNew, STList do
  begin
    Connection := PLConnection;
    Close;
    SQL.Clear;
    SQL.Add('Select * From FIRMALAR');
    Prepared := True;
    Open;
    while Not EOF do
    begin
      HB := Copy(FieldByName('URUN').AsString, 2, 14);
      Next;
      if Pos(HB, 'SU KAYAĞI') > 0 then
      begin
        Memo2.Lines.Add(FieldByName('URUN').AsString); // test için şimdilik memoya aktarıyorum
        Memo1.Lines.Add(HB + ' ' + FieldByName('URUNNO').AsString);
      end;
    end;
  end;
end;

apex06
Üye
Mesajlar: 57
Kayıt: 19 Nis 2012 12:21

Re: İçinde kaç adet var

Mesaj gönderen apex06 »

Bence en güzeli SQL ile kayıtları alıp döngü ile istediğin yere taşımak

SELECT URUNNO, URUNADI, COUNT(*) AS SAYI
FROM FIRMALAR
GROUP BY URUNNO, URUNADI

Cevapla