S.a. Arkadaşlar webdeki gibi örnek veriyorum bir arama yaptım. bir den fazla veri var mesela 100 adet örneğin. bunu 10 10 listelemek istiyorum ama bunu gridde değil scroolbarı olan bir bileşende iç içe runtime da oluşturup yapabilmemiz mümkünmü. Böyle bir bileşen var mı...Yardımlarınızı bekliyorum.
İyi Çalışmalar
Webdeki gibi database deki bilgileri listeleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Bu aramayı bir veritabanında yapacaksın sanırım. WEB'deki gibi bir örnek vermişsin ilk okuduğumda yanlışlıkla sanki bir web sayfasından arama yapacak da sonuçları listeleyeceksin gibi algıladım...
- Belki hazır çözümler vardır ama bu çözümler senin yaratıcılığını sınırlandırır.
- Gel kendine bir fonksiyon yaz bunu bir çok projende kullan, yapacağın şey basit aslında...
- Bir veritabanın var.
- Aradığın sonuçları bir SQL sorgusu ile elde edersin.
- Sonra Başlangıç kayıt nosunu tespit etmek kolay iki farklı değişken tanımlarsın. Bir tane başlangıç nosunu, diğeri ise kaçarlı gruplar halinde görmek istiyorsan onu ifade eden değişkenin olur.
- Sonucu listeleyeceğin bir tane de ScrollBar'ı olan bir bileşen demişsin, TListView vsReport stilindeki hali bunun için biçilmiş kaftandır. Icon vs. de koyarsın.
Sonuç şu...
- Veritabanındaki KayitNo düzenli artıyorsa Sayac ve KayitNo eş güdümlü gider.. Aslında bu kurgu yanlış, örnek olsun diye yazdım...
- Bunun yerine en son KayıtNo'sunu döndürmen daha mantıklı ama neyse konuyu dağıtmayım...
- Bak tek fonksiyonla kendi isteğine uygun sonuçlarını elde ettin...
- Bir kaç button ile bunları aşağıdaki şekilde kullanarak sonuçları yansıtırsın...
- Bu 1 rakamı yerine bir değişken atarsan şunu elde edersin...
- Baskayit değişkeni global bir değişken olsun, en son değeri hatırlar olsun.
- Her döndüğünde, 20'li gruplarla listeleme yapmış olursun.
- Başarılar...
- Belki hazır çözümler vardır ama bu çözümler senin yaratıcılığını sınırlandırır.
- Gel kendine bir fonksiyon yaz bunu bir çok projende kullan, yapacağın şey basit aslında...
- Bir veritabanın var.
- Aradığın sonuçları bir SQL sorgusu ile elde edersin.
- Sonra Başlangıç kayıt nosunu tespit etmek kolay iki farklı değişken tanımlarsın. Bir tane başlangıç nosunu, diğeri ise kaçarlı gruplar halinde görmek istiyorsan onu ifade eden değişkenin olur.
- Sonucu listeleyeceğin bir tane de ScrollBar'ı olan bir bileşen demişsin, TListView vsReport stilindeki hali bunun için biçilmiş kaftandır. Icon vs. de koyarsın.
Sonuç şu...
Kod: Tümünü seç
// Uses DB, ComCtrls
Function Listele( Dataset:TDataset; Bas, Adet:Integer; Liste:TListView ): Integer;
Var
Sayac : Integer;
begin
Sayac := 0;
Liste.Items.Clear;
If Dataset.Locate( 'SiraNo', Bas, []) then
Repeat
Inc(Sayac);
With Liste.Items.Add do begin
Caption := DataSet.FieldByName('KayitNo').AsString;
Subitems.Add( DataSet.FieldByName('Adi').AsString );
Subitems.Add( ... .... ); // daha ne istersen ekleyebilirsin...
end;
Dataset.Next;
Until Dataset.EOF or ( Sayac = Adet)
else ShowMessage('Başlangıç Kayıt Bulunamadı...');
Result := Sayac; // Kaç Kayıt Gösterildiyi döndürüyorsun...
end;
- Bunun yerine en son KayıtNo'sunu döndürmen daha mantıklı ama neyse konuyu dağıtmayım...
- Bak tek fonksiyonla kendi isteğine uygun sonuçlarını elde ettin...
- Bir kaç button ile bunları aşağıdaki şekilde kullanarak sonuçları yansıtırsın...
Kod: Tümünü seç
KayitSayisi := Listele( AdoQuery1, 1, 20, ListView1 );
Kod: Tümünü seç
KayitSayisi := Listele( AdoQuery1, BasKayit, 20, ListView1 );
BasKayit := Baskayit + KayitSayisi;
- Her döndüğünde, 20'li gruplarla listeleme yapmış olursun.
- Başarılar...