cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Merhabalar arkadaşlar, hepinize kolay gelsin.
cxGrid kullandığım bir projemde şöyle bir sorunum var.
Miktar alanına hem miktar hemde kilogram bazında bilgi girilmekte, istediyim adet türünden olduğunda properties olarak calcedit, kilogram bazında bilgi girildiyinde currency gibi properti kullanmak. Maksat Adetli satış yaptığımızda tam sayı, kilogramlı satış yaptığımızda 1,300 KG gibisinden değer gire bilmek. Programsal tarafdan kodlarla bunu yapıyorum fakat, tüm hücrelerdeki miktar alanı en son değişikliye göre ayarlanıyor. Her satır için sütundaki propeertiyi değiştire bilirmiyiz?
cxGrid kullandığım bir projemde şöyle bir sorunum var.
Miktar alanına hem miktar hemde kilogram bazında bilgi girilmekte, istediyim adet türünden olduğunda properties olarak calcedit, kilogram bazında bilgi girildiyinde currency gibi properti kullanmak. Maksat Adetli satış yaptığımızda tam sayı, kilogramlı satış yaptığımızda 1,300 KG gibisinden değer gire bilmek. Programsal tarafdan kodlarla bunu yapıyorum fakat, tüm hücrelerdeki miktar alanı en son değişikliye göre ayarlanıyor. Her satır için sütundaki propeertiyi değiştire bilirmiyiz?
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Merhaba
yapacağın işlem için properties i değiştirmek daha karmaşık olur. onun yernine currency seçip kuruş hanesini kapatmak daha kolay olmaz mı?
Ayrıca her satırda yapılacak işlemin farklı olması ile ilgili bir örnak vardı.
viewtopic.php?f=2&t=29903&hilit=cxEditR ... ry#p164210
yapacağın işlem için properties i değiştirmek daha karmaşık olur. onun yernine currency seçip kuruş hanesini kapatmak daha kolay olmaz mı?
Ayrıca her satırda yapılacak işlemin farklı olması ile ilgili bir örnak vardı.
viewtopic.php?f=2&t=29903&hilit=cxEditR ... ry#p164210
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Sütunun OnGetProperties event ini kullanarak bu işlemi gerçekleştirebilirsiniz. Forma bir adet TcxEditRepository bileşeni sürükleyin. Bu bileşeni çift tıklayıp kullanmak istediğininiz giriş stillerini oluşturun ve isimlendirin. Sonra hangi sütunu bir koşula göre şekillendirmek istiyorsanız o sütunun OnGetProperties olayına aşağıdaki benzeri bir kod ekleyin.
Kod: Tümünü seç
procedure TFormParamF.cxGridRegistryDBTableView1DEGER_INTGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
var
AColumn: TcxCustomGridTableItem;
Kod: String;
GirisTuru: Integer;
begin
inherited;
AColumn := cxGridRegistryDBTableView1.GetColumnByFieldName('KOD'); // Kod sahasının hangi sütüun olduğu bulunuyor.
Kod := VarToStr(ARecord.Values[AColumn.Index]); // Kod sahasının değeri alınıyor.
GirisTuru := Falan Filan Falan; // Burada Kod sahasının değerine göre GirisTuru nun ne olması hesaplanmalı.
case GirisTuru of
1: AProperties := cxEditRepository1Text.Properties;
2: AProperties := cxEditRepository1Float.Properties;
3: AProperties := cxEditRepository1Integer.Properties;
4: AProperties := cxEditRepository1EvetHayir.Properties;
5: AProperties := cxEditRepository1ColorComboBox.Properties;
else
AProperties := cxEditRepository1Text.Properties;
end;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Merhabalar, Cevaplarınız için minnetdarım. Zaman ayırıp detaylı bilgi verdiyiniz için hepinize teşekkür ediyorum..
Verdiğiniz örnek üzerinden yola çıktım fakat bir kaç bilgiye yönelik hatamı düzeltmemde yardımcı olursanız daha düzgün anlamış olacağım.
İlk önce kullandığım Grid nesnesi, bir cxGridDBTableView deyil cxGridTableView'dir.
Yukardaki örnekleri ele alarak şöyle bir kod yazmış oldum.
Kodları derlediyimizde sorunsuz çalıştı fakat satır işlemi gerçekleştirdiyimde en son kayıt propertisini almakta, örnekleyecek olursam şöyle:
ilk kayıtda cxCalcEdit1.EditValue değerini 2 yaptıktan sonra, Birim alanıma 1.350 KG gibi bir değer girip, sonrasında cxCalcEdit1.EditValue değerini 1 yapıp aşağı inerek yeni bir kayıta bu sefer adet bazında 5 girdiyimde yukarıda eklemiş olduğum 1.350 değeri otomotik olarak 1.35 oluyor. cxCalcEdit1.EditValue değerini tekrar 2 yapıp aşağıya inip yeni bir satıra 2.235 KG bazında değer girdiyimde bu sefer ilk satırdaki 1.35 değişerek 1.350 oluyor ve ikinci satırda adet bazında eklemiş olduğum 5 değeri bu seferde 5.000 şekilinde oluyor.
NOT: Noktadan sonra düzgün değer elde etmek için (,0.000) şeklinde Display Format kullandığım için kaynaklandığını zann ediyorum. Böyle bir formatı nasıl bir yöntem ile elde ede biliriz?
Sonucunu şöyle elde etmek istemiştim:
------Değer---- -----Birim----
-------1.350----------KG-----
---------5------------Adet----
-------2.235----------KG-----
---------4------------Adet----
---------1------------Adet----
---------2------------Adet----
Malesef şu sonucu bir türlü elede edemedim.. Kod yazmadan bile bir fikir verirseniz çok sevinirim.
Tekrar teşekkürler. Kolay gelsin..
Verdiğiniz örnek üzerinden yola çıktım fakat bir kaç bilgiye yönelik hatamı düzeltmemde yardımcı olursanız daha düzgün anlamış olacağım.
İlk önce kullandığım Grid nesnesi, bir cxGridDBTableView deyil cxGridTableView'dir.
Yukardaki örnekleri ele alarak şöyle bir kod yazmış oldum.
Kod: Tümünü seç
procedure TForm1.cxGrid1TableViewBirimGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
var
AColumn: TcxCustomGridTableItem;
Kod: String;
GirisTuru: Integer;
begin
inherited;
AColumn := cxGrid1TableView1.Controller.GridView.FindItemByName('cxGrid1TableViewBirim');
Kod := VarToStr(ARecord.Values[AColumn.Index]);
GirisTuru := cxCalcEdit1.EditValue;
case GirisTuru of
1: AProperties := cxEditRepository1CalcItem1.Properties;
2: AProperties := cxEditRepository1SpinItem1.Properties;
end;
end;
ilk kayıtda cxCalcEdit1.EditValue değerini 2 yaptıktan sonra, Birim alanıma 1.350 KG gibi bir değer girip, sonrasında cxCalcEdit1.EditValue değerini 1 yapıp aşağı inerek yeni bir kayıta bu sefer adet bazında 5 girdiyimde yukarıda eklemiş olduğum 1.350 değeri otomotik olarak 1.35 oluyor. cxCalcEdit1.EditValue değerini tekrar 2 yapıp aşağıya inip yeni bir satıra 2.235 KG bazında değer girdiyimde bu sefer ilk satırdaki 1.35 değişerek 1.350 oluyor ve ikinci satırda adet bazında eklemiş olduğum 5 değeri bu seferde 5.000 şekilinde oluyor.
NOT: Noktadan sonra düzgün değer elde etmek için (,0.000) şeklinde Display Format kullandığım için kaynaklandığını zann ediyorum. Böyle bir formatı nasıl bir yöntem ile elde ede biliriz?
Sonucunu şöyle elde etmek istemiştim:
------Değer---- -----Birim----
-------1.350----------KG-----
---------5------------Adet----
-------2.235----------KG-----
---------4------------Adet----
---------1------------Adet----
---------2------------Adet----
Malesef şu sonucu bir türlü elede edemedim.. Kod yazmadan bile bir fikir verirseniz çok sevinirim.
Tekrar teşekkürler. Kolay gelsin..
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Madem giriş türünü cxCalcEdit1 den alacağız. Yukarıdaki iki satırda neden bu kadar işlem yaptık?RADCoder yazdı:
AColumn := cxGrid1TableView1.Controller.GridView.FindItemByName('cxGrid1TableViewBirim');
Kod := VarToStr(ARecord.Values[AColumn.Index]);
GirisTuru := cxCalcEdit1.EditValue;
Kod: Tümünü seç
GirisTuru := StrToIntDef(Kod, 0);
Kod: Tümünü seç
if UpperCase(Kod) = 'ADET' then GirisTuru := 1;
if UpperCase(Kod) = 'KG' then GirisTuru := 2;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Cevabınız için teşekkür ederim.
Yukarda verdiğim kodları tamamen örnek ve mantığı anlama amacıyla uyguladım.
Zaten GirisTuru olan kısımda değerin nerden geleceğinin önemi yok, Edit nesnesinden yahut farklı bir değişkenden gele bilir.
Sıkıntı olan kısım cxGridTableView da olan satırlarda eklenen değerler İnt ve Float olarak ayrılmıyor.
Müşteri 1 Kilogramlık bir şey aldığında, ben 1 yazdığımda onun 1.000 şu şekilde olması gerekiyor. Yahut 1 Kilo 200 gram gibi, değerde 1.200 olması gerekirken 1.2 gibi oluyor. Bunu düzeltmek için Display format kullanıyorum, fakat o zamanda eklediğim yere göre tam sayı değerleri float oluyor yahud tüm çekili değerler tam sayı oluyor..
Mutlaka vardır bir yoluda, ben uzun zamandır artık Delphi kullanmıyorum.
Yinede teşekkür ederim, Allah razı olsun değerli zamanınızı ayırdınız.
Yukarda verdiğim kodları tamamen örnek ve mantığı anlama amacıyla uyguladım.
Zaten GirisTuru olan kısımda değerin nerden geleceğinin önemi yok, Edit nesnesinden yahut farklı bir değişkenden gele bilir.
Sıkıntı olan kısım cxGridTableView da olan satırlarda eklenen değerler İnt ve Float olarak ayrılmıyor.
Müşteri 1 Kilogramlık bir şey aldığında, ben 1 yazdığımda onun 1.000 şu şekilde olması gerekiyor. Yahut 1 Kilo 200 gram gibi, değerde 1.200 olması gerekirken 1.2 gibi oluyor. Bunu düzeltmek için Display format kullanıyorum, fakat o zamanda eklediğim yere göre tam sayı değerleri float oluyor yahud tüm çekili değerler tam sayı oluyor..
Mutlaka vardır bir yoluda, ben uzun zamandır artık Delphi kullanmıyorum.
Yinede teşekkür ederim, Allah razı olsun değerli zamanınızı ayırdınız.
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Küçük bir örnek uygulama yazın gönderin. Üzerinde çalışalım.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Projeyi ek olarak buraya ekledim. Umarım yapmak istediyimi düzgün şekilde anlatmışımdır.
Tekrar çok teşekkür ederim. Allah razı olsun..
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Giriş türünü satırı eklerken belirlemeniz yetmez. Grid'in hangi satırı nasıl göstereceğini hatırlaması gerekir. Böyle bir durumda Birim bilgisini içeren bir sütun oluşturmanız ve satırı bu bilgiyle beraber eklemeniz gerekir. Örnek proje ektedir.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Merhabalar, Cevabınız ve yardımınız için minnetdarım.
Projemde tüşla ekleme olmadığı için bu yöntemi kullanamıyorum.
Ben olayı farklı bir şekilde şimdilik çözdüm.
Yardımınız için teşekkür ederim. Kolay gelsin..
Projemde tüşla ekleme olmadığı için bu yöntemi kullanamıyorum.
Ben olayı farklı bir şekilde şimdilik çözdüm.
Yardımınız için teşekkür ederim. Kolay gelsin..
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Arkadaşlar vakit ayırıp, emek vermişler, yardım etmeye çalışmışlar. Çözümünü neden paylaşmıyorsun ?RADCoder yazdı:Ben olayı farklı bir şekilde şimdilik çözdüm.
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 !!!
Re: cxGrid ile her satır için, sütuna farklı properties ayarlamak.
Merhabalar, FreeMan. Aslında bir kod yada bir işlem kullanmış olsam yada konusu geçen mevzu ile ilgili burda yazılan kodlara ek bir satır kullanıp bir şeyler yazsaydım, elbetde burda paylaşırdım. Sonuçta benden başka birisininde ihtiyacı ola bilir. Yaptığın yorum ile foruma katıkıda bulunma çabanı taktir ediyorum. Fakat kilogram ve adet bazlı satışlar topdan satış yapılan depoda çekiye vurularak çeki başına düşen fiyatdan adetle satışa sunuldu.
Yani 10 Kilogramlık mehsuller halinde mesela 130 tl gibi fiyat konuldu. Satışınıda adetle giriliyor şimdilik. Bildiyin üzere 3 tane alırsa 390 tl gibi adet bazında hesapladık. Yukarıda yazdığım gibi, ben Delphiden ayrılalı oldu biraz. Herkese yardımları için teşekkür ediyorum..
Özelliklede sana teşekkür ederim..
Hepinizden Allah razı olsun.. Kolay gelsin..
Yani 10 Kilogramlık mehsuller halinde mesela 130 tl gibi fiyat konuldu. Satışınıda adetle giriliyor şimdilik. Bildiyin üzere 3 tane alırsa 390 tl gibi adet bazında hesapladık. Yukarıda yazdığım gibi, ben Delphiden ayrılalı oldu biraz. Herkese yardımları için teşekkür ediyorum..
Özelliklede sana teşekkür ederim..
Hepinizden Allah razı olsun.. Kolay gelsin..