Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
zengin
Üye
Mesajlar: 233 Kayıt: 06 Ağu 2003 10:13
Mesaj
gönderen zengin » 01 Ara 2022 12:02
Merhaba,
Örnek bir Satış Fişinde 2 kalem ürün var bunlar;
1) Muhtelif yedek parca ürünleri Fiyatı Tutar 1000 Tl adet X 1 = 1000,00 TL isk 10 kar 10 kdvoranı 18 toplamtutar = 1168,20 TL
2} ben şimdi Aynı ;işlemin Toplam Tarafına Girdigim zaman tutar alanına 1000 TL yazmasını istiyorum
Örnek Kod Aşagıda
Kod: Tümünü seç
IBCTable2ISK_TUTAR.AsCurrency := IBCTable2TOPLAM.AsCurrency * IBCTable2ISK.value / 100;
ARA_Top := IBCTable2TOPLAM.Value - IBCTable2ISK_TUTAR.AsCurrency;
KARTUTAR:= ARA_Top * IBCTable2KAR.value / 100; // KAR TUTAR
ARA_Top:= KARTUTAR+ARA_Top;
IBCTable2KDV_TUTAR.AsCurrency :=ARA_Top * (IBCTable2KDV.value/100);
IBCTable2TOPLAM.Value := ARA_Top + IBCTable2KDV_TUTAR.AsCurrency;
// IBCTable2Tutar.Value := ARA_Top + IBCTable2KDV_TUTAR.AsCurrency;
bu konuda en doğru şekilde nasıl hesaplatırabilirim.
Zengin
ertank
Kıdemli Üye
Mesajlar: 1711 Kayıt: 12 Eyl 2015 12:45
Mesaj
gönderen ertank » 01 Ara 2022 02:07
Merhaba,
Sorunuzu anladığıma emin değilim. Bahsettiğiniz işlemler Excel kullanarak aşağıdaki şekilde hesaplanabiliyor. Anlaşılır olması için formülleri ilgili raka altına ekledim. Hizalamalar tam denk gelmiyor.
Kod: Tümünü seç
A B C D E F G
isk% ara sonuç kâr% ara sonuç kdv% g.toplam
1000 10 900 10 990 18 1168.2
=B2-C2/100*B2 =D2+E2/100*D2 =F2+G2/100*F2
TERS İŞLEM
A B C D E F G
g.toplam kdv% ara sonuç kâr% ara sonuç isk%
1168.2 18 990 10 900 10 1000
=B7/(1+C7/100) =D7/(1+E7/100) =F7/(1-G7/100)
Özetle bu formülasyondan hangisini istiyorsanız kodlamanız yeterli olacaktır.
zengin
Üye
Mesajlar: 233 Kayıt: 06 Ağu 2003 10:13
Mesaj
gönderen zengin » 01 Ara 2022 02:21
merhaba,
Aslında Sorun yok ters işleme ihtiyacım var
Şu Aşagıdaki Senin örnegin işimize yarar onu table1 de benim örnek kodda bir düzenlersen sevinirim
TERS İŞLEM
A B C D E F G
g.toplam kdv% ara sonuç kâr% ara sonuç isk%
1168.2 18 990 10 900 10 1000
=B7/(1+C7/100) =D7/(1+E7/100) =F7/(1-G7/100)
Zengin
loaded
Üye
Mesajlar: 126 Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:
Mesaj
gönderen loaded » 01 Ara 2022 02:31
Kodlar Lazarusta yazılıp denenmiştir.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
fiyat_tutar,adet,iskonto,kar,kdv,satis_fiyati:double;
begin
fiyat_tutar:=353.20; adet:=1; iskonto:=10; kar:=10; kdv:=18;
satis_fiyati:= ((fiyat_tutar*adet)*((100-iskonto)/100)) *((100+kar)/100)*((100+kdv)/100);
showmessage('Tutardan Satış Fiyatı Hesaplama ' + satis_fiyati.ToString());
fiyat_tutar:= ((((((satis_fiyati/(100+kdv))*100)/(100+kar))*100)/(100-iskonto))*100)/adet;
showmessage('Satış Fiyatından Tutar Hesaplama ' + fiyat_tutar.ToString());
end;
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
zengin
Üye
Mesajlar: 233 Kayıt: 06 Ağu 2003 10:13
Mesaj
gönderen zengin » 01 Ara 2022 03:27
merhaba
loaded arkadaşımın Kodlarını Düzenledim Kodumuz calışıyor ertank ve loaded kardeşime Cok tekekür ederim
fakat kdv alanı boş olursa sonuc dogru cıkmıyor ? bu konuda ne yapabiliriz
Kod: Tümünü seç
Table2TUTAR.Value:=((((((Table2TOPLAM.Value / (100+Table2KDV.Value)) * 100)/(100 + Table2KAR.Value)) * 100)/(100 -
Table2ISK.Value)) * 100) / Table2ADET.Value;
Zengin
loaded
Üye
Mesajlar: 126 Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:
Mesaj
gönderen loaded » 01 Ara 2022 04:00
Veritabanınızda boş olma ihtimali olan alanlarınız varsa bu alanları formülde doğrudan kullanmak yerine öncesinde içerik kontrol yapmalısınız.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
zengin
Üye
Mesajlar: 233 Kayıt: 06 Ağu 2003 10:13
Mesaj
gönderen zengin » 01 Ara 2022 04:59
burası dogru calışıyor kdv alanı dogru sonuc cıkıyor
Kod: Tümünü seç
cxCurrencyEdit8.Value:= (( cxCurrencyEdit1.Value * cxCurrencyEdit2.Value )*((100-cxCurrencyEdit3.Value)/100)) *((100+cxCurrencyEdit4.Value)/100)*((100+cxCurrencyEdit5.Value)/100);
fakat Bu ters işlem kesinlikle kontrol ettim
Kod: Tümünü seç
cxCurrencyEdit9.Value:= ((((((cxCurrencyEdit8.Value/(100+cxCurrencyEdit5.Value))*100)/(100+cxCurrencyEdit4.Value))*100)/(100-
cxCurrencyEdit3.Value))*100)/cxCurrencyEdit2.Value;
kdv alanı sorunlu örnegin 1000 tl tutar Kdv Alanı Boş Veya %18 Olmasın sonuc bu şekilde cıkıyor >1010,10101010101
musayitseniz birde siz deneyin
Zengin
ertank
Kıdemli Üye
Mesajlar: 1711 Kayıt: 12 Eyl 2015 12:45
Mesaj
gönderen ertank » 01 Ara 2022 05:42
Tek tek yerel değişkenleri kullanarak hesaplama yapmayı deneyebilirsiniz. Excel örneği üç adımda tamamlıyordu.
Her bir sonucu bir değişken içinde saklayıp sonraki işlemi gerçekleştirebilirsiniz. Daha sade bir kod olup okuması daha kolay olacaktır.
Kod hesap kısmına F5 tuşu ile break point ekleyip DEBUG modunda F9 ile çalıştırarak yerel değişkenlerin değerlerini inceleyebilirsiniz.
KDV olması ya da olmaması sonucu etkilemeyecektir.
Tek seferde işlem yaptırmanız ile yerel değişkenler kullanmanız arasında lafı bile edilmeyecek hız farkı olur belki o bile olmaz.
loaded
Üye
Mesajlar: 126 Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:
Mesaj
gönderen loaded » 01 Ara 2022 06:42
Kontrol ettim, bende sorunsuz çalışıyor.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
zengin
Üye
Mesajlar: 233 Kayıt: 06 Ağu 2003 10:13
Mesaj
gönderen zengin » 02 Ara 2022 10:04
merhaba
ertank arkadaşımızın Kodlarını Aşagıdaki kodlara Düzenledim Kodumuz calışıyor ertank ve loaded kardeşime Cok tekekür ederim kolay gelsin
Kod: Tümünü seç
Table2KDV_TUTAR.Value:= Table2TOPLAM.Value /(1+Table2KDV.Value/100);
Table2KAR_TUTAR.Value:= Table2KDV_TUTAR.Value /(1+Table2KAR.Value/100);
Table2ISK_TUTAR.Value := Table2KAR_TUTAR.Value /(1-Table2ISK.Value/100);
Table2TUTAR.Value := Table2KAR_TUTAR.Value /(1-Table2ISK.Value/100);
Table2TUTAR.Value := Table2TUTAR.Value / Table2ADET.Value;
Zengin