Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Cxgridtableview iki kolonu çarpma işlemi
#1
Photo 
İyi günler,

Kadir gecemiz mübarek olsun.
resimdeki gibi CxGridTableView var burada Adet, Birim fiyat, Tutar sutunları Float olarak ayarlı ve Adet, Birim fiyat sutunlarının edit özelliği true
 cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,6] :=
strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,3]) *
strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,5]);

koduyla olarak ilk ekleme anında tutar alanına sonuç yazdırabiliyorum. İhtiyacım olan 
adet veya birim fiyat sutunlarından biri değiştiğinde tutar alanını yukarıdaki kodla güncellemek.

sutunun Ondrawcustomcell   olayını denedim olmadı

sutunun Onchange gibi bir olayı yok mu veya yerine kullanabileceğim bir olay.

mümkünse resimde göründüğü gibi başlık bölümündeki çizgileri daha net nasıl ayarlanabilir.


Ek Dosyalar Resimler
   
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
(21-06-2017, Saat: 12:44)cinarbil Adlı Kullanıcıdan Alıntı: İyi günler,

Kadir gecemiz mübarek olsun.
resimdeki gibi CxGridTableView var burada Adet, Birim fiyat, Tutar sutunları Float olarak ayarlı ve Adet, Birim fiyat sutunlarının edit özelliği true
 cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,6] :=
strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,3]) *
strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[eklesatir,5]);

koduyla olarak ilk ekleme anında tutar alanına sonuç yazdırabiliyorum. İhtiyacım olan 
adet veya birim fiyat sutunlarından biri değiştiğinde tutar alanını yukarıdaki kodla güncellemek.

sutunun Ondrawcustomcell   olayını denedim olmadı

sutunun Onchange gibi bir olayı yok mu veya yerine kullanabileceğim bir olay.

mümkünse resimde göründüğü gibi başlık bölümündeki çizgileri daha net nasıl ayarlanabilir.

Amin, cümlemizin Kadir gecesi mübarek olsun inşallah.

Neden Calculated bir field kullanmıyorsunuz ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
TcxGridDBTableView.DataController.Options taki dcoImmediatePost değerini true yapıp deneyebilirmisiniz?

“Do. Or do not. There is no try.”
Cevapla
#4
(21-06-2017, Saat: 12:46)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Amin, cümlemizin Kadir gecesi mübarek olsun inşallah.

Neden Calculated bir field kullanmıyorsunuz ?

Cevabınız için teşekkür ederim.
Cxgrid yeni kullanmaya başladım ve Calculated  özelliği olduğunu bilmiyordum.
Hemen araştırmaya başlayacağım.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#5
(21-06-2017, Saat: 12:54)cinarbil Adlı Kullanıcıdan Alıntı:
(21-06-2017, Saat: 12:46)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Amin, cümlemizin Kadir gecesi mübarek olsun inşallah.

Neden Calculated bir field kullanmıyorsunuz ?

Cevabınız için teşekkür ederim.
Cxgrid yeni kullanmaya başladım ve Calculated  özelliği olduğunu bilmiyordum.
Hemen araştırmaya başlayacağım.


Otomatik hesaplama (Calculated), DataSet temel nesnesine ait bir özelliktir. TDataSet'ten türeyen her nesnede kullanabilirsiniz.
DelphiCan'dır!
Cevapla
#6
Merhaba, 

Ben olsam ilk tercihim view içerisinde bu işlemi gerçekleştirmek olurdu. 
Select Adet, BirimFiyat, (Adet * BirimFiyat) as Tutar From TabloAdi

"Adet" ve/veya "BirimFiyat" alanları güncellendiği zaman "Tutar" alanı da otomatik olarak güncellenmiş olurdu. 

İlla ki ben grid üzerinde bu işlemi yapmak istiyorum diyorsanız..

"Tutar" kolonunun "onGetDataText" olayında çarpım işleminizi yaptırabilirsiniz.
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#7
(21-06-2017, Saat: 13:38)barutali Adlı Kullanıcıdan Alıntı: Merhaba, 

Ben olsam ilk tercihim view içerisinde bu işlemi gerçekleştirmek olurdu. 
Select Adet, BirimFiyat, (Adet * BirimFiyat) as Tutar From TabloAdi

"Adet" ve/veya "BirimFiyat" alanları güncellendiği zaman "Tutar" alanı da otomatik olarak güncellenmiş olurdu. 

İlla ki ben grid üzerinde bu işlemi yapmak istiyorum diyorsanız..

"Tutar" kolonunun "onGetDataText" olayında çarpım işleminizi yaptırabilirsiniz.

Cevaplarınız için teşekkür ederim hepinizden Allah razı olsun
Tüm cevapları deneyeceğim 
Barut ali bey OngetDataText olayına yazdım 
procedure Tparametrefrm.view_tutarGetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
begin
 if (cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,3] <> null) and
    (cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,5] <> null) then
     cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,6] :=
     strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,3]) *
     strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,5]);
cxgridde herhangi bir yere tıkladığında Acces Violation hata veriyor.
Tablodan yapamıyorum cxgridde ihtiyaç duyulan malzemeler ekleniyor. 
fiyat ve adet bilgilerinde değişiklik varsa yapılıyor sonra tablo ya kaydediliyor.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#8
(21-06-2017, Saat: 14:16)cinarbil Adlı Kullanıcıdan Alıntı:
(21-06-2017, Saat: 13:38)barutali Adlı Kullanıcıdan Alıntı: Merhaba, 

Ben olsam ilk tercihim view içerisinde bu işlemi gerçekleştirmek olurdu. 
Select Adet, BirimFiyat, (Adet * BirimFiyat) as Tutar From TabloAdi

"Adet" ve/veya "BirimFiyat" alanları güncellendiği zaman "Tutar" alanı da otomatik olarak güncellenmiş olurdu. 

İlla ki ben grid üzerinde bu işlemi yapmak istiyorum diyorsanız..

"Tutar" kolonunun "onGetDataText" olayında çarpım işleminizi yaptırabilirsiniz.

Cevaplarınız için teşekkür ederim hepinizden Allah razı olsun
Tüm cevapları deneyeceğim 
Barut ali bey OngetDataText olayına yazdım 
procedure Tparametrefrm.view_tutarGetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
begin
 if (cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,3] <> null) and
    (cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,5] <> null) then
     cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,6] :=
     strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,3]) *
     strtofloat(cxgrid_uretimrecetesi_view.datacontroller.values[ARecordIndex,5]);
cxgridde herhangi bir yere tıkladığında Acces Violation hata veriyor.
Tablodan yapamıyorum cxgridde ihtiyaç duyulan malzemeler ekleniyor. 
fiyat ve adet bilgilerinde değişiklik varsa yapılıyor sonra tablo ya kaydediliyor.

Hatanın sebebi, OngetDataText olayı gerçekleştiği anda, ARecordIndex sütunundaki 3, 5 ve 6 nolu satırlar henüz oluşmamıştır.
Yani Grid satırları oluşturulurken, daha ilk kaydın, birinci sütun birinci satırında (ilk hücresinde), ARecordIndex'in 3, 5 ve 6. hücre değerlerini çağırıyorsunuz.
DelphiCan'dır!
Cevapla
#9
İlgili dataset'iniz içine bir tane Calculated field oluşturun ve OnCalcFields'da ilgili hesaplama işlemini yapın, rahatınıza bakın. Grid ile uğraşmanıza da gerek kalmaz böylelikle.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#10
Matematiksel işlemler için Calculated field oluşturun, daha sonra OnCalcFields olayında işlemi yapabilirsiniz daha kolay ve rahat olur sizin için
Don't fear the try!
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows Explorer dan delphi formuna dosya Drag&Drop işlemi örneği adelphiforumz 1 247 23-01-2025, Saat: 15:16
Son Yorum: yhackup
  unidbgird tek enterde edit ve post ıslemi mehmet07 1 267 05-01-2025, Saat: 15:44
Son Yorum: mehmet07
  WebModule Multipart File Upload İşlemi pro_imaj 5 536 11-12-2024, Saat: 17:44
Son Yorum: pro_imaj
  Minimize İşlemi hakkında adelphiforumz 2 689 24-06-2024, Saat: 11:50
Son Yorum: adelphiforumz
  store procedure ile toplama islemi sadikacar60 5 933 22-04-2024, Saat: 12:50
Son Yorum: bydelphi



Konuyu Okuyanlar: 1 Ziyaretçi