Sayıları yazarken üçlü gruplara ayıran DBGrid

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
betultezel
Üye
Mesajlar: 7
Kayıt: 03 Eyl 2003 01:27
Konum: eskişehir
İletişim:

Sayıları yazarken üçlü gruplara ayıran DBGrid

Mesaj gönderen betultezel »

Database de Number ve Currency olarak tanımladıgım alanları DBGrid de giriş yaparken üçlü gruplara ayıran bir DBGrid var mı? , ya da böyle bir DBGrid i ben nasıl yazabilirim ?
Bunu aslında DBGrid alanlarında Edit nesnesi göstererek yapmaya çalıştım ama başarılı olamadım.
Yardımcı olursanız sevinirim.
betül
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Bunu grid de yapmanıza veya uğraşmanıza gerek yok ki. Query veya table nesnesinden hangisini kullanıyorsanız üstüne sağ tıklayın Fields editore girin. Şayet buraya fieldları aktarmamışsanız fields editorun ortasında sağ tıklayın "Add All Field" yapın. Tablodaki bütün fieldların orda gözükmesini sağlayın. Daha Sonra virgüllü olraka göstermek istediğiniz field a tıklayın, objeck inspectore geçin orda göreceğiniz "Displayformat"
alanını ###,###,###,###,### aynen bu şekilde girin. Fields editoru kapatın ve programınızı çalıştırın. Sayıların binerli guruplar halinde virgüllerle ayrıldığını göreceksiniz.
Sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Sair arkadaşımızın yazdıklarına ek bilgi vermek istiyorum,
"Displayformat"
alanını ###,###,###,###,### aynen bu şekilde girin.
Bunu kısaca #,### şeklindede yada Noktadan sonrası için hassasiyete göre, #,##0.00 şeklinde kullanabilirsin. Bunu ben böyle kullanıyorum.

Eğer hiç değer yok ise yada 0 (Sıfır ise) kullanıcı ekranda 0.00 Şeklinde değer görüyor (Parasal Alanlar İçin)
Sayısal Alanlar için ise,
#,##0
Kullanıyorum 0 (Sıfır) olan değerler ekranda doğrudan 0 olarak görülüyor.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
mmumtaze
Üye
Mesajlar: 10
Kayıt: 07 Eki 2003 11:18
Konum: ankara

merhabalar

Mesaj gönderen mmumtaze »

sizin dediğiniz gibi display format özelliğini kullandığım zaman kullanıcı mesela 5.000.000 yazsa ve yanlış yazdığını anlayıp bir sıfır eklediği zaman 50.000.000 yapmak istediği zaman hata veriyor.fiyatı birdaha girmek zorunda kalıyor.bunu nasıl nasıl yapabiliriz?başka bir çözümü yokmu?benim başıma geldi kullanıcı böyle olmasını istemedi.birde ben dbeditte displayformat özelliğini kullandım.hesaplama yaparken hata verdi.ben table ın oncalcfields alanına kodu yazdım.Table1kalan.asfloat:=table1toplam.asfloat-table1pesinat.asfloat gibi.kalan,pesimnat ve toplam kısmının parasal olarak gösterilmesini istiyorum ve bu olay dbeditte olacak. bunu nasıl yapabilirim?teşekkürler.
Kullanıcı avatarı
safak
Şafak EBESEK
Mesajlar: 165
Kayıt: 05 Ağu 2003 04:39
Konum: Istanbul
İletişim:

displayformat

Mesaj gönderen safak »

Benim çalışmalalrımda DisplayFormat düzeltme sırasında hiç bir zaman hata vermedi. Büyük olasılıkla başka bir hesaplama ya da sınırlamanız bu hataya neden oluyor. Üzerine kod eklemediğiniz bir tabloda denemeniz ve ardından kodlarınızı eklemeniz, hatayı bulmanızı kolaylaştırabilir.

Yapmak istediğinzi hesaplama için CalculatedFields başlığına bakabilirsiniz. Daha önceki cavaplarda da belirtilen Query/Table Editor yardımıyla hesaplanmış alanları ekleyebilir ve yönetebilirsiniz.
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

Calculated alan oluşturma ile ilgili bilgi verebilirmisiniz acaba. Bu veritabanıyla ilgili bişeymi yoksa kod olarak mı oluşturuluyor. bendede arkadaşın dediği gibi hatalar veriyor(Floatile ilgili bi hata ). (Normal toplamaveya diğer işlemleri işlemi yaparken ). Eğer giilen değerleri otomatik olarak topluyorsa süper bişi bence. Yani benim gibi biri için..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

calculated field ile ilgili açıklamalar şu mesajda var : viewtopic.php?t=667

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Şu mesajda da var

viewtopic.php?t=633

Kolay Gelsin
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

hata mesajının çıkma nedeni heralde sayıların bulunduğu aralıktan kaynaklanıyor.(float değer olmadığı ile ilgili mesaj.) Peki başka hangi değişkenle bu işlemleri yapabiliriz. Aralardaki noktaları kabul etmesi için..
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

arkadaşlar matematiksel işlemlerde currency kullanıyorum.

dbedit1.text:=formatcurr('#,###',a);

gibi bi formülle noktalama işlemini yaptırıyorum. ama değer fazla olunca (Float değer aralığından kaynaklanıyor bence) yani atıyorum float değişkeni -125487 ile +125487 arasında oluyor. Ben 4.578.964.200 gibi bi değer girdiğimde de float ile ilgili bi mesaj çıkıyor. İnteger olarak tanımlasam o zaman formatlama olmuyo zaten. Nasıl bir değişken kullanacam ben şimdi. Bu konuda çok aradım ama hep nasıl nokta koyulacağı ile ilgili bilgiler var. ama bunun hesaplama esnasında sorun çıkardığından kimse bahsetmiyor.

kolay gelsin...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam bir noktada yanlış var ama tespit edemedim notlarından.

1. parasal işlemler için ben de kullandığım veritabanında varsa Currency formatını kullanırım. Ama senin yazdığın gibi bu formatın sınırları yüzbinler değil, trilyonları bile saklayabilirsin.

2. DisplayFormat olayı sadece veriyi gösterirken düzenler, mesela senin istediğin tarzda binlik ayıracı koymak için. Onun dışında bu noktalar işlem yaparken hiçbir zaman gözönüne alınmaz.

Table1.FieldByName('para_alanı').AsFloat

şeklinde istediğin yerden ulaşabilmen lazım.

Kolay gelsin.
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

mustafa hocam teşekkür ederim sorunu giderdim sayende.
Cevapla