Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
CxGrid FilterRow Like
#1
Tongue 
Merhaba,
Mevcutta CxGridde kalıtım alan bir nesnede FilterRow özelliğini kullanmaktayım. Hücrede yapılan aramalarda iki tarafada Like %aranan% koyma özelliğini görememekteyim. 

1680OD.png

qd5nOW.png

GridView özellikleri
v6O7vR.png
V9kR1r.png

Gridin mevcutta böyle bir özelliği varmıdır, var ise yardımlarınızı beklemekteyim. SupportedLike açık iken tek taraflı like çalışmakta
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#2
@narkotik benim bildiğim kadarı ile yok siz aradığınız şeyi yazdıktan sonra PercentWildchard kısmındaki değeride yazıyorsunuz
Ben genelde bu değeri % yerine * yapıyorum kullanıcı ahmet, *ahmet yada ahmet* şeklinde yazarak aramış oluyor
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
(11-05-2019, Saat: 19:35)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@narkotik  benim bildiğim kadarı ile yok siz aradığınız şeyi yazdıktan sonra PercentWildchard kısmındaki değeride yazıyorsunuz
Ben genelde bu değeri % yerine * yapıyorum kullanıcı ahmet, *ahmet yada ahmet* şeklinde yazarak aramış oluyor

Açıkcası beni çözmüyor, konu ile ilgili bir araştırma yapayım
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
Sorun çözülmüştür.

  TSKGridDBDataController = class (TcxGridDBDataController)
 private
   //
 protected
   procedure FilterChanged;override;
 end;


procedure TSKGridDBDataController.FilterChanged;
var
 xValue  : string;
 xColumm : TcxGridDBColumn;
 xView   : TcxGridDBTableView;
begin
 inherited;
 Try
   if GetGridView <> nil then
   begin
     xView := TSKGridView(Self.GetGridView);
     xView.BeginUpdate;
     Filter.BeginUpdate;
     with xView,ViewData do
     begin
        if FilterRow.Focused then
        begin
          xColumm := TcxGridDBColumn(Controller.FocusedColumn);
          if (xColumm <> nil) and (xColumm.PropertiesClassName = '') and (xColumm.DataBinding.Field.DataType = ftString) then
          begin
            xValue := VarToStr(FilterRow.Values[xColumm.Index]);
            if (Length(xValue)> 0) and (AnsiPos('%',xValue) = 0) then
              FilterRow.Values[xColumm.Index] := '%' + xValue + '%';
          end;
        end;
     end;
     Filter.EndUpdate;
     xView.EndUpdate;
   end;
 Except
   // Olası bir hatayı kes
 End;
end;
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#5
(12-05-2019, Saat: 01:08)narkotik Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Sorun çözülmüştür.

  TSKGridDBDataController = class (TcxGridDBDataController)
 private
   //
 protected
   procedure FilterChanged;override;
 end;


procedure TSKGridDBDataController.FilterChanged;
var
 xValue  : string;
 xColumm : TcxGridDBColumn;
 xView   : TcxGridDBTableView;
begin
 inherited;
 Try
   if GetGridView <> nil then
   begin
     xView := TSKGridView(Self.GetGridView);
     xView.BeginUpdate;
     Filter.BeginUpdate;
     with xView,ViewData do
     begin
        if FilterRow.Focused then
        begin
          xColumm := TcxGridDBColumn(Controller.FocusedColumn);
          if (xColumm <> nil) and (xColumm.PropertiesClassName = '') and (xColumm.DataBinding.Field.DataType = ftString) then
          begin
            xValue := VarToStr(FilterRow.Values[xColumm.Index]);
            if (Length(xValue)> 0) and (AnsiPos('%',xValue) = 0) then
              FilterRow.Values[xColumm.Index] := '%' + xValue + '%';
          end;
        end;
     end;
     Filter.EndUpdate;
     xView.EndUpdate;
   end;
 Except
   // Olası bir hatayı kes
 End;
end;

xView := TSKGridView(Self.GetGridView);    TSKGridView ???
Cevapla
#6
(12-05-2019, Saat: 11:46)faktoral Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(12-05-2019, Saat: 01:08)narkotik Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Sorun çözülmüştür.

  TSKGridDBDataController = class (TcxGridDBDataController)
 private
   //
 protected
   procedure FilterChanged;override;
 end;


procedure TSKGridDBDataController.FilterChanged;
var
 xValue  : string;
 xColumm : TcxGridDBColumn;
 xView   : TcxGridDBTableView;
begin
 inherited;
 Try
   if GetGridView <> nil then
   begin
     xView := TSKGridView(Self.GetGridView);
     xView.BeginUpdate;
     Filter.BeginUpdate;
     with xView,ViewData do
     begin
        if FilterRow.Focused then
        begin
          xColumm := TcxGridDBColumn(Controller.FocusedColumn);
          if (xColumm <> nil) and (xColumm.PropertiesClassName = '') and (xColumm.DataBinding.Field.DataType = ftString) then
          begin
            xValue := VarToStr(FilterRow.Values[xColumm.Index]);
            if (Length(xValue)> 0) and (AnsiPos('%',xValue) = 0) then
              FilterRow.Values[xColumm.Index] := '%' + xValue + '%';
          end;
        end;
     end;
     Filter.EndUpdate;
     xView.EndUpdate;
   end;
 Except
   // Olası bir hatayı kes
 End;
end;

xView := TSKGridView(Self.GetGridView);    TSKGridView ???
TcxGridDBTableView
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#7
Teşekkür ederim. Son bir yardım daha isteyeceğim. Bunu cxgrid de nasıl kullanacağız.
Cevapla
#8
(12-05-2019, Saat: 16:04)faktoral Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Teşekkür ederim. Son bir yardım daha isteyeceğim. Bunu cxgrid de nasıl kullanacağız.

Merhaba,
@narkotik, TcxGridDBDataController sınınfından yeni bir sınıf (TSKGridDBDataController) türetmiştir. Yine aynı sınıfa ait FilterChanged olayını ezmiştir. Yani bu olayı çağırmış ve yazdığı yeni entegrasyonlarla (kodlarla) çalışmaya zorlamıştır.
TcxGridDBDataController standart sınıfı yerine kendi TSKGridDBDataController sınıfını (bileşenini) kullandığında, herhangi bir ek kod kullanmadan yeni filtered özelliği her cxGrid'inde otomatik olarak çalışacaktır. 
Yani herhangi bir kullanım biçimi yok. Bir bileşenden türettiği yeni bir bileşene ek özellikler katmıştır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#9
@Fesih ARSLAN    @narkotik  Teşekkür ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] cxgrid hücre formatı wiseman 2 63 10-09-2019, Saat: 13:53
Son Yorum: wiseman
  Özel bir düzenlenebilir CxGrid narkotik 5 668 08-04-2019, Saat: 12:29
Son Yorum: narkotik
  DevExpress cxGrid Türkçeleştirme 41linea41 12 1.259 26-03-2019, Saat: 07:49
Son Yorum: 41linea41
  cxgrid sutun toplamı hatası (Çözüldü) cinarbil 0 344 23-02-2019, Saat: 15:53
Son Yorum: cinarbil
  cxgrid kolonları index numarasına göre eşitleme cinarbil 5 657 17-01-2019, Saat: 15:02
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi