cxgrid de string alanı integer gibi sıralama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxgrid de string alanı integer gibi sıralama
merhaba arkadaslar.. aradım bulamadım.. eğer varsa kusura bakmayın..
benım bir string bir alanım var.. ama istisnalar haricinde sayı olarak değerler giriliyor..
ben gridde sıralama yaparken integer gibi sıralamak istiyorum..
ornegin ..
alanımdaki değerleri 1 den 100 e kadar düşünün..
sıralama yaptığımda
1,10,100,11,12 diye gidiyor..
ama istediğim bu değil ..
1,2,3,4, 5-a,5-b, 99,100, gibi istiyorum
alanı string tanımlamamın sebebi bazen bu degere 5-a,5-b gibi değerlerin de girilebilmesi..
benım bir string bir alanım var.. ama istisnalar haricinde sayı olarak değerler giriliyor..
ben gridde sıralama yaparken integer gibi sıralamak istiyorum..
ornegin ..
alanımdaki değerleri 1 den 100 e kadar düşünün..
sıralama yaptığımda
1,10,100,11,12 diye gidiyor..
ama istediğim bu değil ..
1,2,3,4, 5-a,5-b, 99,100, gibi istiyorum
alanı string tanımlamamın sebebi bazen bu degere 5-a,5-b gibi değerlerin de girilebilmesi..
İnsanca.... Pek insanca....
yani bir bir integer alan tanımlayayım..
pozisyon değerini (mevzu bahis alan
) oraya integer olarak yazdırayım..
doğru mu anladım.
ama 5-a gibi bir değeri nasıl yapacam. ve gridde görüntülenen pozisyonu sort ederken nasıl o tanımladığım yedek alana göre yapacam..
aslında benım düşündüğüm cxgridde properties lik bir durum var mı ...
.. bilgi olsun diye soyleyim.. D7, mysql 4.1 QR 4.0 kullanıyorum..
pozisyon değerini (mevzu bahis alan

doğru mu anladım.
ama 5-a gibi bir değeri nasıl yapacam. ve gridde görüntülenen pozisyonu sort ederken nasıl o tanımladığım yedek alana göre yapacam..
aslında benım düşündüğüm cxgridde properties lik bir durum var mı ...
.. bilgi olsun diye soyleyim.. D7, mysql 4.1 QR 4.0 kullanıyorum..
İnsanca.... Pek insanca....
s.a.
veritabani olarak ne kullandığınızı bilemiyorum ama
stringleri sağa dayalı olarak kaydederseniz sıralamayı istediğiniz şekilde yapacaktır.
yani;
atıyorum alanın uzunluğu varchar (10) olsun
kayıtları
'5-a'
'5-b' şeklinde değil
' 5-a'
' 5-b'
' 5a'
gibi saklarsanız istediğiniz şekilde sıralama yapar.
kolay gelisn.
veritabani olarak ne kullandığınızı bilemiyorum ama
stringleri sağa dayalı olarak kaydederseniz sıralamayı istediğiniz şekilde yapacaktır.
yani;
atıyorum alanın uzunluğu varchar (10) olsun
kayıtları
'5-a'
'5-b' şeklinde değil
' 5-a'
' 5-b'
' 5a'
gibi saklarsanız istediğiniz şekilde sıralama yapar.
kolay gelisn.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
benim söyledim şu şekilde bir fonksiyon yazmanızdı:
fonksiyon parametre olarak string değer alıp integer değer döndürecekti.
tabiki fonksiyon içinde direk olarak strtoint() kullanmayacaktınız. gelen veriyi karakter karekter inceleyip harlerin yerine 0 koyabilirdiniz. daha sonra sorguda;
select * from tablom order by fonksiyonum(alanim);
fonksiyon parametre olarak string değer alıp integer değer döndürecekti.
tabiki fonksiyon içinde direk olarak strtoint() kullanmayacaktınız. gelen veriyi karakter karekter inceleyip harlerin yerine 0 koyabilirdiniz. daha sonra sorguda;
select * from tablom order by fonksiyonum(alanim);
sağa dayalı kayıt otomatik oluyormu yoksa kodlamı çevirmek gerek. benim bildiğim char tipi sağa boşlul ekler varchar boyut neyse ou tutar. peki sağa dayalı string nasıl tutulabilir ?aslangeri yazdı:s.a.
veritabani olarak ne kullandığınızı bilemiyorum ama
stringleri sağa dayalı olarak kaydederseniz sıralamayı istediğiniz şekilde yapacaktır.
yani;
atıyorum alanın uzunluğu varchar (10) olsun
kayıtları
'5-a'
'5-b' şeklinde değil
' 5-a'
' 5-b'
' 5a'
gibi saklarsanız istediğiniz şekilde sıralama yapar.
kolay gelisn.
aslengeri hocam..
alana karakter de girilince sıralama olmuyor..
harfli olanı en sona atıyor..
burda görünsün diye space yerine _ koyuyorum
'______1234'
'______1235'
'______1236'
'______1237'
'______1238'
'_____1234A'
gibi oluyor..
ama ben 1234A nin 1234 ün altında görünmesini istiyorum..
bunu nasıl yapabilirim..
alana karakter de girilince sıralama olmuyor..
harfli olanı en sona atıyor..
burda görünsün diye space yerine _ koyuyorum
'______1234'
'______1235'
'______1236'
'______1237'
'______1238'
'_____1234A'
gibi oluyor..
ama ben 1234A nin 1234 ün altında görünmesini istiyorum..
bunu nasıl yapabilirim..
İnsanca.... Pek insanca....
s.a.
açıkçası o şekilde nasıl olur bilmiyorum. şu an aklıma bir fikirde gelmiyor.
istediğin şey bana pek uygun gelmedi, verdiğin örnek genelleştirilmesi biraz sıkıntılı bi durum gibi. 5 karakterli elemanı istediğin sıraya koymak pek mümkün görünmüyor çünkü önünde 4 karakterli elemanlar var. mantık olarak önce onları koyması gerekir. (baştaki boşluk karakterlerini unutmayalım)
kolay gelsin.
açıkçası o şekilde nasıl olur bilmiyorum. şu an aklıma bir fikirde gelmiyor.
istediğin şey bana pek uygun gelmedi, verdiğin örnek genelleştirilmesi biraz sıkıntılı bi durum gibi. 5 karakterli elemanı istediğin sıraya koymak pek mümkün görünmüyor çünkü önünde 4 karakterli elemanlar var. mantık olarak önce onları koyması gerekir. (baştaki boşluk karakterlerini unutmayalım)
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
s.a.
abi şimdi o fikri sen verdin (yani devamını getireceksin
) ..
benim bir kolonum var..
1 den başlıyor..
string olmak zorunda çünkü bir ara kayıt eklenip a, b, c gibi değerler eklenebiliyor..
aşta boşluk şart değil..
baştaki boşluk standart olarak sayı girilen alanların integer gibi sıralanması için iyi.
dediğim gibi
kayıtlar
1990
1991
1991A
1992
şeklinde ve 1991A sonradan eklenen kayıt.. database de o sıra ile kayıtlı değil. gridde ise yukarıdaki şekilde sıralamak nasıl mümkün olabilir.
..
aslangeri size ve diğer arkadasların ilgisine teşekkur ediyorum
abi şimdi o fikri sen verdin (yani devamını getireceksin

benim bir kolonum var..
1 den başlıyor..
string olmak zorunda çünkü bir ara kayıt eklenip a, b, c gibi değerler eklenebiliyor..
aşta boşluk şart değil..
baştaki boşluk standart olarak sayı girilen alanların integer gibi sıralanması için iyi.
dediğim gibi
kayıtlar
1990
1991
1991A
1992
şeklinde ve 1991A sonradan eklenen kayıt.. database de o sıra ile kayıtlı değil. gridde ise yukarıdaki şekilde sıralamak nasıl mümkün olabilir.
..
aslangeri size ve diğer arkadasların ilgisine teşekkur ediyorum
İnsanca.... Pek insanca....
s.a.
eğer alana girilecek veriler için belirli kurallar varsa o kurallara göre @hakan can ın dediği şekilde sıralama yapılabilir. boşlukları değerin hem sağına hem soluna ekleyeceğiz.
atıyorum alanımız varchar10 ve bu alana sizin verdiğiniz örnekteki gibi kayıtlar giriliyor. ilk 5 karakteri sayı son 5 karakteri rakam olarak değerlendirmeye alalım.
1990 bunun önüne 1 boşluk sonuna 5 boşluk koyacağız.
1990A bunun önüne 1 boşluk sonuna 4 boşluk koyacağız.
böylelikle sıralamayı istediğiniz şekilde yapacağı kanaatindeyim.
deneme imkanım olmadı.
kolay gelsin.
eğer alana girilecek veriler için belirli kurallar varsa o kurallara göre @hakan can ın dediği şekilde sıralama yapılabilir. boşlukları değerin hem sağına hem soluna ekleyeceğiz.
atıyorum alanımız varchar10 ve bu alana sizin verdiğiniz örnekteki gibi kayıtlar giriliyor. ilk 5 karakteri sayı son 5 karakteri rakam olarak değerlendirmeye alalım.
1990 bunun önüne 1 boşluk sonuna 5 boşluk koyacağız.
1990A bunun önüne 1 boşluk sonuna 4 boşluk koyacağız.
böylelikle sıralamayı istediğiniz şekilde yapacağı kanaatindeyim.
deneme imkanım olmadı.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim