dbgrid'de harf ve numara göstermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgrid'de harf ve numara göstermek
selam arkadaşlar şöyle bir problemim var yardım ederseniz sevinirim
kasa programında müşteriye ait tahsilatları topladım
müşteriye ait ödemeleride topladım toplamları belli
problem şu ödemelrei tahsilattan çıkardıktan sonra kalan sonucu dbgridde
şöyle göstermek istiyorum
müşterinin borcu varsa borc tutarını göstersin ve (B) harfi yazsın
müşterinin borcu varsa alacak tutarını göstersin ve (A) harfi yazsın
tolam_tahsilat toplam_ödeme net_borc_alacak
50.000.000 100.000.000 50.000.000(B)
bunu nasıl bir kod ile yapabilirim şimdiden teşekkürler
kasa programında müşteriye ait tahsilatları topladım
müşteriye ait ödemeleride topladım toplamları belli
problem şu ödemelrei tahsilattan çıkardıktan sonra kalan sonucu dbgridde
şöyle göstermek istiyorum
müşterinin borcu varsa borc tutarını göstersin ve (B) harfi yazsın
müşterinin borcu varsa alacak tutarını göstersin ve (A) harfi yazsın
tolam_tahsilat toplam_ödeme net_borc_alacak
50.000.000 100.000.000 50.000.000(B)
bunu nasıl bir kod ile yapabilirim şimdiden teşekkürler
En son dr_ebuzer tarafından 29 Kas 2005 03:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
merhaba,
kod olarak veremesemde mantık olarak şöyle bişi olabilirmi,
eğer kişinin borcu alacağından fazla ise dbgrid1 şu alanına b yaz eğer az ise a yaz gibi
bunu datasetin oluşturulan calc alınna göre yaptırabilirsin
kolay gelsin
kod olarak veremesemde mantık olarak şöyle bişi olabilirmi,
eğer kişinin borcu alacağından fazla ise dbgrid1 şu alanına b yaz eğer az ise a yaz gibi
bunu datasetin oluşturulan calc alınna göre yaptırabilirsin
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

if (borç-alacak) >0 then
begin
edit1.text:= (borc-alacak)+' '+'(A)';
end
else
begin
edit1.text:= (borc-alacak)+' '+'(B)';
end;
buna benzer bişey olacak hocam. kısaca yazdım hata varsa affola.
Saygılarımla
Kolay gelsin.
begin
edit1.text:= (borc-alacak)+' '+'(A)';
end
else
begin
edit1.text:= (borc-alacak)+' '+'(B)';
end;
buna benzer bişey olacak hocam. kısaca yazdım hata varsa affola.
Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
dbgrid'de sayı ve numara göstermek
arkadaşlar olmadı benim yapmak istediğim şu biraz daha açayım
müşteri tablomda diyelim şöyle 3 alanım var
1-müşterialacak {müşterinin bizden alacağı}
2-müşteriborc {müşterinin bize olan borcu}
3-netborcalacak {müşterinin alacağı borcundan düştükten sonra kalan borç veya alacak}
şimdi ben 3 cü alanı string diye tanıtsam içinde rakam ve harfler olacağı için dönüştürmeyi nasıl yapıp sonucunda tablonun içinde ve dbgridde
şu görüntüyü nasıl yaparım lütfen bilenler yardım etsin
netborcalacak
500.000.000(B)
müşteri tablomda diyelim şöyle 3 alanım var
1-müşterialacak {müşterinin bizden alacağı}
2-müşteriborc {müşterinin bize olan borcu}
3-netborcalacak {müşterinin alacağı borcundan düştükten sonra kalan borç veya alacak}
şimdi ben 3 cü alanı string diye tanıtsam içinde rakam ve harfler olacağı için dönüştürmeyi nasıl yapıp sonucunda tablonun içinde ve dbgridde
şu görüntüyü nasıl yaparım lütfen bilenler yardım etsin
netborcalacak
500.000.000(B)
datasetin oncalc olayında o alana mask verebilirsin
gibi birşey olabilir
Kod: Tümünü seç
if (borc-alacak)>0 then
begin
datasetbakiye.displaymask:='###,### A'
end
else
begin
datasetbakiye.displaymask:='###,### B'
end;
Merhaba;
Bu şekilde string olan alanı floata çevirmiş vede bu alan nul dönse bile sorun vermeyecek şekilde yapmış olacaksın bunu sql koduna yerleştirisen hocam.
Sonrada Queryde bu alan için Display Format #,000 Yaparsan sorunu çözmüş olursun.
Hocam eğer yapamazsan sen kendi konud yaz buraya koddan hareketle yardımcı olmaya çalışalım.
Saygılarımla
Kolay gein.
Kod: Tümünü seç
coalesce(cast(netborcalacak as float),0)
Sonrada Queryde bu alan için Display Format #,000 Yaparsan sorunu çözmüş olursun.
Hocam eğer yapamazsan sen kendi konud yaz buraya koddan hareketle yardımcı olmaya çalışalım.
Saygılarımla
Kolay gein.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
dbgrid'de harf ve numara göstermek
selam
ben şöyle yapıyorum
------------------------------------------------------
var
netsonuc:real;
begin
tblmusteri.first;
while not tblmusteri.eof do
begin
netsonuc:=tblmusteriborc.value-tblmusterialacak.value;
if tblmusteriborc.value>tblmusterialacak then
begin
tblmusterisonuc.value:=netsonuc;{burda net sonuçta yazan rakamın önüne (B) gelmesi gerekiyor) }
işte takıldığım yer ase arkadaşımın dediği şekilde edit mask yaptım ama sonuçta o harfi göstermiyor
pro imaj arkadaşımınkini deneyemedim çünkü sql ile aram henüz iyi değil
ben şöyle yapıyorum
------------------------------------------------------
var
netsonuc:real;
begin
tblmusteri.first;
while not tblmusteri.eof do
begin
netsonuc:=tblmusteriborc.value-tblmusterialacak.value;
if tblmusteriborc.value>tblmusterialacak then
begin
tblmusterisonuc.value:=netsonuc;{burda net sonuçta yazan rakamın önüne (B) gelmesi gerekiyor) }
işte takıldığım yer ase arkadaşımın dediği şekilde edit mask yaptım ama sonuçta o harfi göstermiyor
pro imaj arkadaşımınkini deneyemedim çünkü sql ile aram henüz iyi değil
Merhaba,
Siz bir sonuç çıkarmak için tabloyu baştan sona tarıyorsunuz. Bu kayıtların artması durumunda sakınca teşkil ediyor. Fahrettin abi bakiyeyi başka bir tabloda saklamamımızı tavsiye ediyor. Yani her hareket giriş çıkışında o ikinci tabloya borç alacak durumunu ekleyip çıkarıyoruz. Böyle yaparsanız işiniz daha kolaylaşır. Şöyleki o tabloda borc alacak sonuc ve de durum dediniz.
borc alacak alanlarınının sonucunu sonuc alanına atarsınız. sonuc alanı - ise durum kısmına B veya A yazarsınız.
Daha sonra dbgride alırken sonuc ve durum alanının string toplamını alırsınız.
Kolay gelsin.
Siz bir sonuç çıkarmak için tabloyu baştan sona tarıyorsunuz. Bu kayıtların artması durumunda sakınca teşkil ediyor. Fahrettin abi bakiyeyi başka bir tabloda saklamamımızı tavsiye ediyor. Yani her hareket giriş çıkışında o ikinci tabloya borç alacak durumunu ekleyip çıkarıyoruz. Böyle yaparsanız işiniz daha kolaylaşır. Şöyleki o tabloda borc alacak sonuc ve de durum dediniz.
borc alacak alanlarınının sonucunu sonuc alanına atarsınız. sonuc alanı - ise durum kısmına B veya A yazarsınız.
Daha sonra dbgride alırken sonuc ve durum alanının string toplamını alırsınız.
Kolay gelsin.
Merhaba,
ibdatasete durum diye bir calculated alan tanımladım.
ibdataset in autocalcfield propertisi true olacak.
ibdatasetin oncalcfields ına aşağıdaki kodu yazdım.
bu şekilde bakiyeyi veriyordu. Hatta borc alacağın rakamları ile oynadım. Anında yansıtıyordu.
Umarım işinizi görür. Öbür türlü de yukarıdaki mesajıma geçmeniz daha iyi olur. Fahrettin abi öyle tavsiye ediyor.
Kolay gelsin.
ibdatasete durum diye bir calculated alan tanımladım.
ibdataset in autocalcfield propertisi true olacak.
ibdatasetin oncalcfields ına aşağıdaki kodu yazdım.
Kod: Tümünü seç
procedure TForm1.IBDataSet1CalcFields(DataSet: TDataSet);
begin
with ibdataset1 do begin
if (fieldbyname('BORCU').AsInteger-fieldbyname('ALACAGI').AsInteger)>0 THEN
FIELDBYNAME('DURUM').ASSTRING:=INTTOSTR(fieldbyname('BORCU').AsInteger-fieldbyname('ALACAGI').AsInteger)+' B'
ELSE
FIELDBYNAME('DURUM').ASSTRING:=INTTOSTR(fieldbyname('ALACAGI').AsInteger-fieldbyname('BORCU').AsInteger)+' A';
end;
end;
Umarım işinizi görür. Öbür türlü de yukarıdaki mesajıma geçmeniz daha iyi olur. Fahrettin abi öyle tavsiye ediyor.
Kolay gelsin.
dbgrid'de harf ve numara göstermek
arkadaşlar cevaplarınız için çok teşekkür ederim ofenx arkadaşımdan şunu rica ediyorum bana bu yazdığın kodu ibdatabase ile değilde normal tablede bu kodu nasıl yazacağımı yazarsan herhalde problemim hallolacak çünkü yavaş yavaş sona doğru ierliyoruz
Merhaba,
Pek fark eden bir şey olmuyor sadece ibdataset table oluyor.
Kolay gelsin.
Pek fark eden bir şey olmuyor sadece ibdataset table oluyor.
Kod: Tümünü seç
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
with table1 do begin
if (fieldbyname('BORCU').AsInteger-fieldbyname('ALACAGI').AsInteger)>0 THEN
FIELDBYNAME('DURUM').ASSTRING:=INTTOSTR(fieldbyname('BORCU').AsInteger-fieldbyname('ALACAGI').AsInteger)+' B'
ELSE
FIELDBYNAME('DURUM').ASSTRING:=INTTOSTR(fieldbyname('ALACAGI').AsInteger-fieldbyname('BORCU').AsInteger)+' A';
end;
end;
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Selamlar.ofenX yazdı:Fahrettin abi bakiyeyi başka bir tabloda saklamamımızı tavsiye ediyor. Yani her hareket giriş çıkışında o ikinci tabloya borç alacak durumunu ekleyip çıkarıyoruz.
Bahsettiğiniz yöntem de çok sağlıklı değil, zira borç ve alacak alanlarını update ederken türlü sıkıntılar çıkabiliyor, koca koca programlar da dahi bu sıkıntı olabiliyor (gördüklerime istinaden söylüyorum bunu..).Ben böyle işlemler bir SP yazıyorum, kayıt sayısı ne kadar fazla olursa olsun hiçbir kasılma sözkonusu olmuyor..
Soruya istinaden;
Bahsettiğiniz işlemi bir sorgu ile yapmak daha stabil bir çözüm olacaktır.
Kolay gele..
Merhaba
Toplamlar için ayrı bir table kullanıyorlar.
Kolay gelsin.
Siz bu yöntemi bir table için mi söylüyorsunuz yoksa mesela ibx için de mi söylüyorsunuz. Yani sizin yönteminiz tüm db bileşenleri için mi geçerli yoksa bde için mi diyorsunuz? onu merak ettim. O türün örneğini Logo'nun Lks programında da görmüştüm. onlar da mssql kullanıyor.bLue aLonE yazdı:
Bahsettiğiniz yöntem de çok sağlıklı değil, zira borç ve alacak alanlarını update ederken türlü sıkıntılar çıkabiliyor, koca koca programlar da dahi bu sıkıntı olabiliyor (gördüklerime istinaden söylüyorum bunu..)..
Toplamlar için ayrı bir table kullanıyorlar.
Kolay gelsin.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
dbgrid'de harf ve numara göstermek
selam arkadaşlar ofenx arkadaşımızın kodu güzel bir şekilde çalışıyor
hem kendisine hemde diğer cevaplayan arkadaşlara teşekkür ederim
hem kendisine hemde diğer cevaplayan arkadaşlara teşekkür ederim