Database search işleminde checkbox

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Database search işleminde checkbox

Mesaj gönderen brs »

Selam,

Kullanıcı adına göre databasede arama yaptırıyorum, ancak ortaya bir sıkıntı çıktı.
Rehberde kişi sayısı fazla olduğundan bir arama yapıldığında listview.Items.clear yapılarak kişi listviewde tek kalacak şekilde listeleme gerçekleşiyor; Kişiyi listview checkboxsı işaretleyip ikinci bir arama yapıldığında önceki seçili olan checkbox doğal olarak iptal ediliyor, hem filtered işlemini gerçekleştirip hende önceki seçili olan checkbox iptal olmaması için ne yapabilirim?


Kod: Tümünü seç

procedure TForm5.TelefondaAra(Sender: TObject); // Ara
var
  LItem: TListViewItem;
begin
  With TFDQuery.Create(Nil) do
  begin
    Connection := Form1.XBaglan;
    Close;
    SQL.Clear;
    SQL.Add('Select * From Telefon');
    SQL.Add('Where KADI Like ' + QuotedStr('%' + SearchEdit.Text + '%'));
    SQL.Add('Order By KADI ASC');
    SQL.Add('Limit 0,100');
    Prepared := True;
    Open;
    if Not IsEmpty then 
    begin
      ListView.BeginUpdate;
      try
        /// ListView.Items.Clear;
        while Not Eof do
        begin
          LItem := ListView.Items.Add;
          LItem.Data['Tel'] := FieldByName('TEL').AsString;
          LItem.Data['Kadi'] := FieldByName('KADI').AsString;
          Next;
        end;
      finally
        EndUpdate;
        Free;
      end;
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Database search işleminde checkbox

Mesaj gönderen fesiharslan »

Merhaba;
Filter olayında ListView Item'ları yazdığınız kritere göre gizlenmektedir. Filter'ı boş olduğunda tüm Item'lar yeniden görünür duruma getirilir. Kısacası anlatmak istediğim; Filter işlemi sırasında Item'lar yok edilip yeniden oluşturulmaz.

Çözüm için;
ListView seçim işleminde, Item.Tag özelliğine 1 değeri, seçimi iptal etiğinde 0 değerini verebilirsiniz. Daha sonra ListView'ın OnFilter, OnSearchChange veya benzer bir olayında Item.Tag = 1 ise Cheked özelliğini True, 0 ise False yapabilirsiniz.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Database search işleminde checkbox

Mesaj gönderen brs »

Teşekkür ederim ligi için, benimde aklıma databaseye bir alan daha oluşturup database üzerinde yaptırmayı düşünüyordum...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Database search işleminde checkbox

Mesaj gönderen fesiharslan »

brs yazdı:Teşekkür ederim ligi için, benimde aklıma databaseye bir alan daha oluşturup database üzerinde yaptırmayı düşünüyordum...
Buda bir çözüm fakat;
Mobil platformda her Check ve UnCheck işleminde veri tabanında Update yapmak çok mantıklı değil.
Veri tabanında bu alanlar olsun, yukarıda anlattığım yöntemi kullanın. İllede veri tabanına göndereceğim diyorsanız, o zaman verileri toplu Update edin.
Cevapla