Kullanıcı

Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.
30 Temmuz 2010 09:43:16

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Sohbet Penceresi

Son 5 Notlar:

09 Temmuz 2010 15:09:00
merhaba arkadaÅŸlar ilk defa bi soru soracam
son olarak üzerinde çalıştığım bi proğramda sorun var
datadan belirli bi kritere göre arama yapıyor bunlardan çift olanları teke düşürüp gride nasıl yazdıra bilirim
örnek vererek anlatırsam daha sağlam olur sanırsam

datadan k
10 Temmuz 2010 03:07:46
GÜZEL SİTE SEVDİM ;D
14 Temmuz 2010 14:45:20
aloo nasılsınız...
15 Temmuz 2010 18:16:38
 maske msnden bi konuÅŸalım kanky.
17 Temmuz 2010 15:16:16
ınterbase procedure soruma cevap verecek sevgili bir kul yokmu arkadaşlar ?

Show 50 latest

Gönderen Konu: DBGrid Toplama  (Okunma sayısı 2339 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
DBGrid Toplama
« : 10 Temmuz 2008 23:48:29 »
Slm arkadaşlar benim DBGRID ile ilgili bi sorum olacak. ::)Benim programımda fiyat alanı var ve ben bu alanı LABEL veya EDITin içerisine TOPLAM olarak aktarmak istiyorum. ;)Yani fiyat alanını toplayıp EDIT veya LABELe yazıyacak.Şimdiden Tşkler...

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: DBGrid Toplama
« Yanıtla #1 : 11 Temmuz 2008 02:04:13 »
Fiyat alanını toplayacak derken?.. Yani tablodaki tüm kayıtlara ait fiyat alanının toplamını mı yazmak istiyorsun? diyelim ki tabloda 5 kayıt var ve label a bu 5 kayıdın fiyat alaının toplamını mı yazacaksın? belli etmemişsin. Ama anladığım doğruysa sana kendim için daha önceleri yazmış olduğum ve TBookMarkStr sınıfının kullanımına da basit bir örnek teşkil edecek function ı ekliyorum umarım işine yarar.

Function aşağıdaki gibi.

Kod: (delphi) [Seç]
function ColSumm(var Table: TTable; FieldName: string): Longint;
var
  BookMarkStr: TBookmarkStr;
  ColumnTotal: Longint;
begin
  ColumnTotal := 0;
  if not Table.Active then exit;
  with Table do
    if RecordCount > 0 then
    begin
      First;
      BookMarkStr := Bookmark;
      DisableControls;
      while not EOF do
      begin
        ColumnTotal := ColumnTotal + FieldByName(FieldName).AsInteger;
        Next;
      end;
      EnableControls;
      Bookmark := BookMarkStr;
    end;
  Result := ColumnTotal;
end;

Bu function ı ilgili formda public olarak da tanımlayabilirsin. Kullanımına gelince benim kullanımım Integer tipli alanlar içindi ama sen ne tip bir alan için kullanacaksın bilmiyorum diyelim ki parasal yada kayan noktalı tip bir alanı toplayacaksın o zaman functiondan dönen değerin tipini, ColumnTotal local değişkenin değer tipini ve 16. satırdaki AsInteger atamasını kullanacağın alanın taşıdığı veri tipine göre modifiye etmelisin. Bu modification dan sonra örneğin ilgili TTable nesenesinin AfterPost olay işleyicisinde ve ilgili formun OnShow olay işleyicisinde aşağıdaki gibi bir tanımlama yaparsan işini görür sanıyorum.

Kod: (delphi) [Seç]
  Label1.Caption := IntToStr(ColSumm(Table1, 'FIYAT'));


Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 223
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: DBGrid Toplama
« Yanıtla #2 : 11 Temmuz 2008 18:51:56 »
Slm ...Aşağıdaki kod işini görecektir.Bir Buttona;//
Kod: (delphi) [Seç]
var
 giderytl:integer;
begin
  giderytl:=0;
  IBDataSet1.First;
  While not IBDataSet1.eof Do
  begin
   giderytl:=giderytl+IBDataSet1GIDER_YTL.AsInteger;//Bu alan parasal alan olacak.
   IBDataSet1.Next;
  end;
   Label1.Caption:=Floattostr(giderytl);
  end;
Bu Şekilde DBGridde Hem Tüm liste Toplamı alınacak hemde Kriterlere göre listelenen Parasal alan kaç tane ise her iki türlü Toplam alınacak..
« Son Düzenleme: 11 Temmuz 2008 19:11:35 by Cturk »

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: DBGrid Toplama
« Yanıtla #3 : 11 Temmuz 2008 20:11:55 »
tşkler çokk sağolun...

Çevrimdışı benkeibushido

  • Yeni Üye
  • *
  • İleti: 17
  • Rep: +0/-0
  • Cinsiyet: Bay
Ynt: DBGrid Toplama
« Yanıtla #4 : 27 Nisan 2009 10:47:56 »
Çok teşekkür ederim ... güzel örnekler çok işime yaradı ;)

Çevrimdışı bykade

  • Yeni Üye
  • *
  • İleti: 2
  • Rep: +0/-0
Ynt: DBGrid Toplama
« Yanıtla #5 : 07 Eylül 2009 01:00:20 »
var 
giderytl:integer; 
begin 
 giderytl:=0; 
 IBDataSet1.First; 
 WhilenotIBDataSet1.eof Do 
 begin 
  giderytl:=giderytl+IBDataSet1GIDER_YTL.AsInteger;//Bu alan parasal alan olacak. 
  IBDataSet1.Next; 
 end; 
  Label1.Caption:=Floattostr(giderytl); 
 end; 
------------------
bu örnekte nota yada virgüllü olanı hesaplamıyor
örneğin alanlarda olan 0,4+0,5+0,2 gibi olanaları...bunları nasıl toplatırız acil yardım

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 361
  • Rep: +6/-0
  • Cinsiyet: Bay
Ynt: DBGrid Toplama
« Yanıtla #6 : 07 Eylül 2009 09:32:46 »
[ALAN].AsInteger tam sayı değeri verir, eğer ondalıklı (reel) sayılarla işlem yapılacaksa [ALAN].AsFloat ile toplama yapmalısınız.
Åžaban Åžahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı barutali

  • Global Moderatör
  • *****
  • İleti: 1.316
  • Rep: +38/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: DBGrid Toplama
« Yanıtla #7 : 08 Eylül 2009 16:49:36 »
query kullandığını varsayarsak ...


Kod: (delphi) [Seç]

with query do
begin
close;
sql.clear;
sql.add('Select  SUM(TOPLANCAKALAN) From TABLON as SONUC');
OPEN;
end;

label1.caption := floattostr(query.fieldbyname('SONUC').asfloat;


alternatifler çoğalsın istedim ..

En İyi Öğrenme Metodu Yaparak ve Yaşayaraktır.
M.Kemal ATATÜRK

Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 223
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: DBGrid Toplama
« Yanıtla #8 : 08 Eylül 2009 18:10:31 »
Parasal alanın Field'ı "DOUBLE PRECISION" olarak ata (Parasal alanlarda daha randımanlı çalışır,problem yaşamazsın.) üstüne gel; Object inspector\Display Format = ###0.00 // olarak tanımla.

Çevrimdışı beysoft

  • Yeni Üye
  • *
  • İleti: 2
  • Rep: +0/-0
Ynt: DBGrid Toplama
« Yanıtla #9 : 27 Eylül 2009 20:28:15 »
emeğinize sağlık arkadaşlar

Çevrimdışı 3hamit

  • Yeni Üye
  • *
  • İleti: 1
  • Rep: +0/-0
Ynt: DBGrid Toplama
« Yanıtla #10 : 09 Mart 2010 23:47:09 »
tv kartının görüntüsünü forumda bir butona basarak nasıl açabilirim. yardım ederseniz sevinirim