CXGrid Sorgusuna ulaşmak..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
CXGrid Sorgusuna ulaşmak..
S.A.
Arkadaşlar uzun süredir yoğunluktan forumu ziyaret edemiyordum. Gelmişken bir soru sorayım bari dedim..
Cxgrid üzerinde yapılmış olan süzme işleminin oluşturduğu sorguya ulaşabilirmiyim.
Yapmak istediğim şeyi şöylece anlatayım..
Cxgrid üzerinde kayıtlarımı listeliyorum. Daha sonra kullanıcı bazı süzme işlemleri yapıyor veya sıralama yapıyor. Ben bunu böylece yazdırmak istiyorum. Raporlama aracıma aynı query bağlı ama cxgridin sorgularını tınlamıyor. Şimdi CxGridin PrintingSystemini kullan dediğinizi duyar gibiyim ama FastReport kullanmak zorundayım.. Bu oluşan sorguyu kendi queryme nasıl eşitleyebilirim ?
Arkadaşlar uzun süredir yoğunluktan forumu ziyaret edemiyordum. Gelmişken bir soru sorayım bari dedim..
Cxgrid üzerinde yapılmış olan süzme işleminin oluşturduğu sorguya ulaşabilirmiyim.
Yapmak istediğim şeyi şöylece anlatayım..
Cxgrid üzerinde kayıtlarımı listeliyorum. Daha sonra kullanıcı bazı süzme işlemleri yapıyor veya sıralama yapıyor. Ben bunu böylece yazdırmak istiyorum. Raporlama aracıma aynı query bağlı ama cxgridin sorgularını tınlamıyor. Şimdi CxGridin PrintingSystemini kullan dediğinizi duyar gibiyim ama FastReport kullanmak zorundayım.. Bu oluşan sorguyu kendi queryme nasıl eşitleyebilirim ?
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
Aşağıda runtime da xcgrid e filtre eklemek için kullandığım kod mevcut sanırım burdan birşeyler çıkartabilirsin. Senin istediğini bende bi ara düşünmüştüm ama vakit darlığından printingsystem ile geçiştirmiştim. Ozaman hep beraber bi el atalım abiler kardeşler

Kod: Tümünü seç
.........
......
var Item : TcxFilterCriteriaItem;
ItemList : TcxFilterCriteriaItemList;
F : TcxDBDataFilterCriteria;
begin
if Sender<>nil then Exit;
InProgress := True;
F := VIW_BakiyeRpr.DataController.Filter;
if CHK_BakiyesiOlan.Checked then begin
try
ItemList := F.Root.AddItemList(fboOr);
Item := F.FindItemByItemLink(VIW_BakiyeRprTXT_AlacakBakiye);
if Item = nil then Item := ItemList.AddItem(VIW_BakiyeRprTXT_AlacakBakiye, foNotEqual, 0, '0');
Item.OperatorKind := foNotEqual;
Item.Value := 0;
Item := F.FindItemByItemLink(VIW_BakiyeRprTXT_BorcBakiye);
if Item = nil then Item := ItemList.AddItem(VIW_BakiyeRprTXT_BorcBakiye, foNotEqual, 0, '0');
Item.OperatorKind := foNotEqual;
Item.Value := 0;
finally
end;
end else begin
F.RemoveItemByItemLink(VIW_BakiyeRprTXT_AlacakBakiye);
F.RemoveItemByItemLink(VIW_BakiyeRprTXT_BorcBakiye);
end;
VIW_BakiyeRpr.DataController.Filter.Active := F.Root.Count>0;
InProgress := False;
............
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Biraz geç oldu ama
belki birilerine lazım olur..
şeklinde oluşan sorguya ulaşabiliyoruz..

Kod: Tümünü seç
cxGrid1DBTableView1.DataController.Filter.FilterText
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
Geç olsunda, güç olmasın
Bu tamda istenilenivermiyor, yani field isimleri ve değerleri tam geliyor ama eğer exlookup kullanıldıysa buraya string değeri yazıyor buda query ye direk eklenmeden önce bir işlemden geçirmekte fayda olucak.
Kolay gele

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Burada bir yanlış anlaşılma var sanırım. Biz bu yöntemi cxGride uygulanan süzme gibi işlemlerde oluşturduğu SQL cümlesine ulaşmak için kullanmıştık.mudipasa yazdı:cxGrid1DBTableView1.DataController.Filter.FilterText i belirledim ama bunu çalışma anında nasıl cxGrid e uygulayabilirim ?
Siz nasıl cxGride uygularım diye sorunca benim anladığım yazmış olduğunuz Sql cümlesini bu yöntemle uygulamaya çalışmanızdır ki bunun için cxGride değil bağlı olduğu Datasete uygulamanız yeterlidir.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
TRSoft teşekkür ederim. Ben bu konuda sorunumu çözdüm. biraz forumdan birazda karıştırarak halloldu. Bilgi olsun diye makaleler kısmına yazdım. "cxGrid de iki tarih arası filtreleme (çalışma anında kodla)"
Herekese iyi çalışmalar
[url]viewtopic.php?t=20559[/url]
Herekese iyi çalışmalar
[url]viewtopic.php?t=20559[/url]
Re: CXGrid Sorgusuna ulaşmak..
Kod: Tümünü seç
cxGrid1DBTableView1.DataController.Filter.FilterText
cxGrid1DBTableView1 DataController Altındaki Filterin OnChange
ine SQL Kodunuzla
Kod: Tümünü seç
cxGrid1DBTableView1->DataController->Filter->FilterText
örnek
Kod: Tümünü seç
void __fastcall TForm9::cxGrid1DBTableView1DataControllerFilterChanged(TObject *Sender)
{
if(cxGrid1DBTableView1->DataController->Filter->FilterText.Length() > 0 )
sSQLSorgu +=" && "+cxGrid1DBTableView1->DataController->Filter->FilterText ;
}
Islem_Yapacak_Fonksiyonum( sSQLSorgu);

Re: CXGrid Sorgusuna ulaşmak..
Merhaba,
Veri tipi tarih olan sütunlarla ilgili filtre eklenip yukarıdaki kod çalıştırıldığında tarih kültürel formatta geliyor, SQL formatında gelmiyor bu sorunu nasıl aşabiliriz arkadaşlar?
(
Kültürel formattan kastedilen örnek = '31.1.2015'
SQL formattan kastedilen örnek = '2015-01-31'
)
Veri tipi tarih olan sütunlarla ilgili filtre eklenip yukarıdaki kod çalıştırıldığında tarih kültürel formatta geliyor, SQL formatında gelmiyor bu sorunu nasıl aşabiliriz arkadaşlar?
(
Kültürel formattan kastedilen örnek = '31.1.2015'
SQL formattan kastedilen örnek = '2015-01-31'
)
Re: CXGrid Sorgusuna ulaşmak..
Araştırırken keşfettim;
şeklinde bir düzenleme yaptıktan soran yukarıdaki örneklerde de belirtildiği gibi
ile SQL cümlesi elde edilebiliyor arkadaşlar
Kod: Tümünü seç
cxGrid1DBTableView1.DataController.Filter.DateTimeFormat := 'yyyy-mm-dd';
Kod: Tümünü seç
cxGrid1DBTableView1.DataController.Filter.FilterText;