Merhaba,
cxGRID hakkında 2 tane sorunum var;
1. Tasarım ekranında oluşturduğum field sıralamasını müşteri istediği gibi özelleştirebilir mi?
Örneğin;
Tasarımım SıraNo, CariKodu, CariIsim, Adres, Telefon
Müşteri Adres, Telefon, CariKodu, CariIsim gibi sıralamayı değiştirebilir mi? (Her kullanıcı bunu kendisi sıralamayı değiştirebilir)
Bunun için cxPropertiesStore kullanıyorum ancak sıralamayı hafızasında tutmuyor, diğer alan görünür görünemez gibi değişiklikleri kayıt edebiliyorum.
Başka yöntem var mı?
2. Yine cxgrid üzerinde birden fazla alanda filtre vermek istediğimde ikinci filtre alanı tüm kayıtları getiriyor, birinci filtreye göre kısıt uygulamıyor.
İl İzmir ilçe Çankaya olmasını istiyorum.
İl alanında filtreden "İzmir"i işaretledim,
İlçe alanına geldiğim zaman tüm ilçe kayıtları geliyor. Exceldeki gibi sadece İl'i izmir olan ilçeleri nasıl getirebilirim.
Bunun için gridin kendi filter özelliğini kullanıyorum ekstra bi sorgu çalıştırılmıyor.
cxgrid sütun sırası ve filtreleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxgrid sütun sırası ve filtreleme
Bildiğim tek şey, hiç bir şey bilmediğim.
Re: cxgrid sütun sırası ve filtreleme
1. soru icin ben ini dosyaya saklamayı kullanıyorum. İsterseniz registry'ye de gorunumu kaydedebilirsiniz.
şöyle ki formun onclose olayına
geri çağırmak için ise
PropertiesStore'a gerek yok 
2. sorunuzda da veri yapınız soyle ise sorun cıkmamalı:
il ilce
izmir buca
izmir Aliağa
izmir Balçova
izmir Bayındır
izmir Bayraklı
izmir Bergama
izmir Beydağ
izmir Bornova
Konya Karatay
Konya Selçuklu
bu şekilde izmiri secerseniz izmir ilceleri gelecektir sadece.
cxgridde filtrelemeyi nerde yaparsanız yapın filtreleme sonrası ekranda kalan veriler üzerinden yeniden filtreleme yapılır.
Onemli 1. secenekteki gibi düzenleme yapmak istiyorsanız CxGridDbbTableView ozelliklerinden
yapmalısınız.
Bu sekilde baslıkların hemen solunda kucuk bir alan belirecek ve buradan hızlı sekilde alan ekleyip cıkarabileceksiniz.
Bunun yerine dilerseniz cxpopupmenu ile de alan düzenleyicisini acabilirsiniz.
şöyle ki formun onclose olayına
Kod: Tümünü seç
cxGrid1DBTableView1.StoreToIniFile(ExtractFilePath(ParamStr(0))+'GridGorunum.ini');
Kod: Tümünü seç
cxGrid1DBTableView1.RestoreFromIniFile(ExtractFilePath(ParamStr(0))+'GridGorunum.ini');

2. sorunuzda da veri yapınız soyle ise sorun cıkmamalı:
il ilce
izmir buca
izmir Aliağa
izmir Balçova
izmir Bayındır
izmir Bayraklı
izmir Bergama
izmir Beydağ
izmir Bornova
Konya Karatay
Konya Selçuklu
bu şekilde izmiri secerseniz izmir ilceleri gelecektir sadece.
cxgridde filtrelemeyi nerde yaparsanız yapın filtreleme sonrası ekranda kalan veriler üzerinden yeniden filtreleme yapılır.
Onemli 1. secenekteki gibi düzenleme yapmak istiyorsanız CxGridDbbTableView ozelliklerinden
Kod: Tümünü seç
OptionsCustomize> ColumnFiltering > True
OptionsCustomize> ColumnSorting > True
OptionsCustomize> ColumnMoving > True
OptionsCustomize> ColumnQuickCustomization > True
Bu sekilde baslıkların hemen solunda kucuk bir alan belirecek ve buradan hızlı sekilde alan ekleyip cıkarabileceksiniz.
Bunun yerine dilerseniz cxpopupmenu ile de alan düzenleyicisini acabilirsiniz.
Re: cxgrid sütun sırası ve filtreleme
Merhaba,
cevabınız için teşekkür ederim, en kısa sürede deneyip sonucu yazacağım.
cevabınız için teşekkür ederim, en kısa sürede deneyip sonucu yazacağım.
Bildiğim tek şey, hiç bir şey bilmediğim.
Re: cxgrid sütun sırası ve filtreleme
Tekrar merhaba,
1. işlem tamam. istediğim gibi oldu, tüm özellikleri kaydediyor.
2. işlem yani filtreleme ise hala sıkıntılı aynı sorun devam ediyor.
1. işlem tamam. istediğim gibi oldu, tüm özellikleri kaydediyor.
2. işlem yani filtreleme ise hala sıkıntılı aynı sorun devam ediyor.
Bildiğim tek şey, hiç bir şey bilmediğim.
Re: cxgrid sütun sırası ve filtreleme
Çoklu sütunlara göre sıralamak için, Shift tuşunu basılı tutarken sütun başlıkları tıklanmalıdır.
Görünmez bir sütun kullanarak birden çok sıralamak istiyorsanız, GridView.OptionsCustomize.ColumnSorting seçeneğini devre dışı bırakmanızı ve GridView'ın OnMouseUp olayını işlerken sütunun SortOrder özellik değerini el ile değiştirmeniz önerilir. Bu çözümü gösteren bir örnek ekledim.
Görünmez bir sütun kullanarak birden çok sıralamak istiyorsanız, GridView.OptionsCustomize.ColumnSorting seçeneğini devre dışı bırakmanızı ve GridView'ın OnMouseUp olayını işlerken sütunun SortOrder özellik değerini el ile değiştirmeniz önerilir. Bu çözümü gösteren bir örnek ekledim.
Kod: Tümünü seç
procedure TForm1.cxGrid1DBTableView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
AHitTest: TcxCustomGridHitTest;
AView: TcxGridTableView;
AColumn: TcxGridColumn;
ASortOrder: TcxDataSortOrder;
begin
with TcxGridSite(Sender) do
begin
AView := TcxGridTableView(GridView);
AHitTest := ViewInfo.GetHitTest(X, Y);
end;
if AHitTest is TcxGridColumnHeaderHitTest then
begin
AColumn := TcxGridColumnHeaderHitTest(AHitTest).Column;
ASortOrder := AColumn.SortOrder;
if not (ssShift in Shift) then
begin
AView.DataController.ClearSorting(false);
cxGrid1DBTableView1Country.SortOrder := soAscending;
end;
if (ASortOrder = soDescending) or (ASortOrder = soNone) then
AColumn.SortOrder := soAscending
else if ASortOrder = soAscending then
AColumn.SortOrder := soDescending;
end;
end;
Re: cxgrid sütun sırası ve filtreleme
2. soru için formun create olayına gridtableview adını değiştirerek aşağıdaki kodu ekleyin.
Kod: Tümünü seç
cxGrid1DBTableView1.Filtering.ColumnFilteredItemsList := True;