Alacak dekontu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 10:05

Alacak dekontu

Mesaj gönderen isahin474650 » 27 Eki 2017 04:09

Merhaba hocalarım

Şu şekilde bir proplemim var AdoTable Afterpost alanına aşağıdaki kodudumu yazıyorum cari hesabıma 100 TL alacak olarak işliyor sıkıntı yok Ama Cari hareketı düzelt diyorum 75 TL yapıyorum Cari hesap Bakiyisi 175 oluyor Yani cari hesaptan önceki 100 silmiyor Konu hakkında yardımlarınıza ihtiyacım var

Kod: Tümünü seç

procedure TAlacakDekontu.CHHAREKETAfterPost(DataSet: TDataSet);
begin
Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value:=Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value+CHHAREKETALACAK.Value;
Yeni_Cari_Kayit.ADOTABLE1BAKIYE.Value:=Yeni_Cari_Kayit.ADOTABLE1BORC.Value-Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value;
Yeni_Cari_Kayit.ADOTABLE1.Post;
end;

ertank
Üye
Mesajlar: 1032
Kayıt: 11 Eyl 2015 11:45

Re: Alacak dekontu

Mesaj gönderen ertank » 27 Eki 2017 05:08

Merhaba,

Sorununuz ile ilgili olarak;
1- Cari hareketi düzelttikten sonra database içinde ilgili satır 75 TL olarak güncellenmiş oluyor mu? Kullandığınız database sisteminin araçlarını kullanarak bunu teyid edebiliyor musunuz?
2- Eğer yukarıdaki soruya EVET şeklinde cevap veriyor iseniz: Sorun Cari Hesap Bakiye hesaplama rutini içinde olabilir. İlgili kodu paylaşmanız mümkün mü?

isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 10:05

Re: Alacak dekontu

Mesaj gönderen isahin474650 » 27 Eki 2017 05:25

Cari hareket datasindan 75 olarak düzeliyor ama cari hesap datası 175 oluyor
Carihesaptan 100 guncellemiyor
Cari harekette sorun yok

ertank
Üye
Mesajlar: 1032
Kayıt: 11 Eyl 2015 11:45

Re: Alacak dekontu

Mesaj gönderen ertank » 27 Eki 2017 07:28

İlgili kod paylaşımı olmadan yardımcı olabilmek pek mümkün gözükmüyor.

isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 10:05

Re: Alacak dekontu

Mesaj gönderen isahin474650 » 27 Eki 2017 10:48

O sorunu çözdüm Değiştir button

Cari hesaptan o tutarı çıkartıp yenisini post ettim


Dbgrid de toplu olarak dekont girişi yapmaya çalışıyorum

Ben ikinci satıra gectigimde post ediyor ve insert hatası alıyorum

Veri tabanına bakıyorum ben 1. Satırı yazıp ikiye geçtiğimde direk kayıt yapıyor

Örnek verecek olursak fatura listesinde stoklar girilir kayıt button basılınca Dbgrid listesini kayıt yapar onun gibi

Ayrı ayrı stoklara işler bu şekilde

Toplu borç alacak dekontu giriş yapmaya çalışıyorum

AfterPost o kodu alıyorum buton kaydet üzrine koyuyorum bu seferde dbgrid listesindeki bir satırı cariye işliyor yani buton uzrine hiç işe yaramıyor

Dbgrid otomatik post olayını kapata bilirmiyiz
Yoksa otomatik post olayını Adotable denmi kapatiriz

İlerde bu sıkıntı bana fatura bölümüne geçince sıkıntı yazacağım orada aynı olacak ben birinci stok girip ikinci stok gectigimde bu sıkıntıyı yaşarım

Ben adotablet post dedikten sonra kayıt yapsın

Kusura bakmayın yeni başladım sorumda hatam varsa özür dilerim eğer ufak bir stok program varsa inceleyerek yapmaya çalışıyım ben

Kod: Tümünü seç

 
 procedure TAlacakDekontu.CHHAREKETAfterPost(DataSet: TDataSet);
begin
Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value:=Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value+CHHAREKETALACAK.Value;
Yeni_Cari_Kayit.ADOTABLE1BAKIYE.Value:=Yeni_Cari_Kayit.ADOTABLE1BORC.Value-Yeni_Cari_Kayit.ADOTABLE1ALACAK.Value;
Yeni_Cari_Kayit.ADOTABLE1.Post;
end;
  

ertank
Üye
Mesajlar: 1032
Kayıt: 11 Eyl 2015 11:45

Re: Alacak dekontu

Mesaj gönderen ertank » 28 Eki 2017 10:06

Eğer tablo doldurulmadan kayıt etmesin istiyor iseniz aklıma hemen gelen iki yöntem aşağıdaki gibi. Bunlar dışında farklı bir yöntem geliştirmekte mümkün olabilir:
1- TDBGrid özelliği sebebiyle verileri otomatik kaydeder. Bunun önüne geçmeye çalışmak yerine veri bağlantısı olmayan bir TStringGrid ile çalışabilirsiniz. İşlem tamamlandığı zaman buton tıklaması ile kayot yaparsınız.

2- Geçici bir tablo oluşturup DBGrid bağlantısını bu geçici tabloya yönlendirebilirsiniz. Bunun için mutlaka database tablosu kullanmanız gerekmez. MemoryTable (hafıza tablosu) kullanabilirsiniz. İlk aklıma gelen kbmMemTable bileşenidir. Ticari kullanımı ücretsiz bir sürümü vardır.
http://www.components4developers.com/ sitesine üye olup ücretsiz sürümlerden kendi Delphi sürümünüze uygun olanı indirip kurabilirsiniz.

Bu yöntemlerin kullanım noktasında DBGrid ile farkları verileri otomatik olarak okuma/kaydetme yapmayacakları için ilgili kayıt verilerini sizin kod yazarak içlerine doldurmanız gerekecektir. Yani dekont değiştirmek gerektiğinde mevcut dekont bilgilerini TStringGrid veya Memory Table içine sizin kod yazarak doldurmanız gerekir.

Ayrıca 1 numaralı yöntemde eğer sadece rakam girişi yapılması gereken kolon var ise TStringGrid içinde bunu yönetmek kolay olmayabilir. Adı üzerinde karakter bilgi girişi için kullanılır.

isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 10:05

Re: Alacak dekontu

Mesaj gönderen isahin474650 » 28 Eki 2017 11:44

Geçici tablo hakkında biraz açarsınız
Bu konuda biraz bilgiye ihtiyacım var

ertank
Üye
Mesajlar: 1032
Kayıt: 11 Eyl 2015 11:45

Re: Alacak dekontu

Mesaj gönderen ertank » 28 Eki 2017 12:02

Geçici tablo isimini yanlış kullanmış olabilirim. Kastettiğim dekont kayıtları girilen tablonun bir kopyası. Sadece adı farklı. DBGrid kayıtları otomatik olarak adı farklı bu tabloya kaydedilecek kullanıcı bilgi girişi sırasında. Butona basıldığı zaman esas tabloya manuel (kod yazarak) kopyalanacak.

Yine dekont değişikliği gerektiği zaman ilgili kayıtları manuel olarak adı farklı tabloya kopyalamanız gerekecek.

isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 10:05

Re: Alacak dekontu

Mesaj gönderen isahin474650 » 28 Eki 2017 05:02

Virtualtable bileşeni Delphi 7 nasıl eklerim

ertank
Üye
Mesajlar: 1032
Kayıt: 11 Eyl 2015 11:45

Re: Alacak dekontu

Mesaj gönderen ertank » 28 Eki 2017 08:12

İlk mesajımda verdiğim link üzerinden ücretsiz üye olup 6.5 gibi eski bir sürümü indirerek kurabilirsiniz.

Cevapla