Devexpress cxGrid Server Mod konusunda tecrübesi olan var mı?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
malitutuncu
Üye
Mesajlar: 18
Kayıt: 21 Şub 2017 03:27

Re: Devexpress cxGrid Server Mod konusunda tecrübesi olan var mı?

Mesaj gönderen malitutuncu » 22 Oca 2018 04:17

Hocam, cxGrid de grid modu açık kullanıyorum ben,
bir sayfa geliyor ,
asağı indikçe kullanıcı açılıp gidiyor. böylede çok hızlı
bu yöntem daha çok raporlamada mı kullanılıyor

fatihbarut
Üye
Mesajlar: 390
Kayıt: 15 Ara 2011 08:02

Re: Devexpress cxGrid Server Mod konusunda tecrübesi olan var mı?

Mesaj gönderen fatihbarut » 22 Oca 2018 06:00

cxGridin grid modu çok ciddi hatalar verdi bende, kapattım.

malitutuncu
Üye
Mesajlar: 18
Kayıt: 21 Şub 2017 03:27

Re: Devexpress cxGrid Server Mod konusunda tecrübesi olan var mı?

Mesaj gönderen malitutuncu » 23 Oca 2018 09:44

Eğer benim anladığım bildiğimiz server-client ise .. DB yi bir servere kurup bütün müşterilerimizin oradan
veri alıp vermesini istiyorsak , bunun içinde verileri hızlı çekmek aynı zamanda sıralama yapabilmesini, arama, filtreleme yapabilmesini istiyorsak..
Gridi biraz modifiye edmeniz gerekiyor.

mesela kullanıcıya gösterilen 100 kişi ama bir şey arayacak filtreden,
arama yaptığında tamamından yapması gerekiyor.
Bunun için örn gridin eventinde Filter OnbeforeChanged ' yaptıgı filtremeyi alıp , dinamik sorguya katmalısınız....
yada
Tarihlerde problem yaşanıyorsa Onformatfilter eventinde Sizin sorgunuza ulaşmadan önce tarih sorgulamasını değiştirmelisiniz..
Mesela bu eventte kullandıgınız veritabanına göre ayarlayınca bütün tarih sorgulamaları çalışır..

Kod: Tümünü seç

var
  vt: TVarType;
begin
  vt := VarType(AValue);
  if (varDate = vt) then
  ADisplayValue := 'CONVERT(DATE,'''+ DateToStr(AValue) +''', 104)';
end;
Yada
Gridin içerisinde lazım olan bir alan eklediğinizde başka bir tablodan, tabloları joinle birleştirip gridin sorgusunda kullandığınızda gridin onShortingChanged olayında joinlerle birleştirdiğiniz tablo kısaltmalarını bu eventte ayarlamalısınız..

Yani arama yapınca, sıralama yapınca yada grid üstünde her hangi bir işlem yapınca sizin dinamik sorgunuz çalışacak.

Kod: Tümünü seç

DinamikSorgu()
begin
   if qDeneme.Active Then qDeneme.Close;
      qDeneme.SQL.Clear;
      qDeneme.SQL.Add('KÖK SORGU');
		  
      if (GridWhr <> '') then qKart.SQL.Text := 'SELECT * FROM ('+ qKart.SQL.Text +') AG WHERE '+ GridWhr;

      if SQLOrderSt <> '' then qKart.SQL.Add(' '+SQLOrderSt)
      else qKart.SQL.Add('ORDER BY AG.ID DESC');

      qKart.Open;	  
	  
end;
//GridWhr -> GridWhr = AFilterText (OnbeforeChange olayında GridWhr ye Filtreyi aldım. Mesela buradada FilterRow açıp delayed geçikmeli yazdıktan sonra 1 snye geçince aramasını istediğiniz de stringleri like le istediğiniz gibi gelior..)

//SQLOrderSt -> onShortingChanged e değişmesini istediğiniz Alan adlarını ayarlıyorsunuz gibi ayarlıyorum mesela. Örn:
if TcxGridDBColumn(TV.SortedItems).DataBinding.FieldName = 'ID' then
SQLOrderSt := 'AG.ID'

Sadece birer satırlarını mantık olarak koydum.
Tam olarak ne demek istediğinizi anlamadığım için bildiklerimden kısaca bahsettim

Cevapla