1. Ana Sayfa
  2. C Sharp

C# Gelir Gider Takip Uygulaması [VIDEO]

C# Gelir Gider Takip Uygulaması [VIDEO]
C# Gelir Gider Takip Uygulaması
+ - 2

Selamlar, artık projelere doyamıyoruz. C# Gelir Gider Takip Uygulaması ile proje yazılarına devam ediyoruz. Yeni konular bulana kadar aklımdaki ufak tefek projeleri sizler için pat pat atmaya devam edeceğim. Üstelik artık youtube’a videolarda çekmeye başladım. Mesela bu projeyi hazırlarken videosunu çektim ve youtube’a yükledim. 1 saatlik bir video oldu. Rezalet internetim yüzünden 12 saatten fazla sürdü yüklenmesi. :)

C# Gelir Gider Takip Uygulaması

Bu projemiz arkadaşlar basit bir gelir gider uygulamasıdır. Ben iskelet diyebileceğimiz kadarını yapıyorum. Güzelleştirmesi size ait. Projeyi bilgisayarınıza indirip istediğiniz gibi düzenleyebilir ve kullanabilirsiniz. Bu yayınladığım tüm projeler ve kodlar için geçerlidir. Eğer ileride udemy gibi platformlarda kurs hazırlamak istersem o zaman daha profesyonel işler çıkartabilirim.

Bu projemizde Gider Tipi ve Gelir/Gider kaydetme, güncelleme ve silme işlemi yaptım. Ayrıca DataGridView’da kayıtları listeledik gelir gider tipine göre (Gelir Mi Gider Mi) filtreleme yaptık. Olabildiğince basit bir uygulama oldu. Geliştirmesi de size ait. :)

Bu projeyi hazırlarken video da aldım ve sessiz bir video değil. Ayrıca kodları ve veritabanını da Github’a yükledim. Bu cümlelerden bıkmış olabilirsiniz ama abone olup, beğenirseniz mutlu olurum. :)

 

Ana Form.cs Tasarımı ve Kodları

Form tasarımı ekran görüntüsü aşağıdaki gibidir.

C# Gelir Gider Takip Uygulaması

Bu formun kodları aşağıdaki gibidir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Gelir_Gider_Takip
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            dgv_Update();
            combo_doldur();
        }
        void combo_doldur()
        {
            cmb_gider_tipi.DataSource = glb.sql.Table("select gdr_Gider_Kod,gdr_Gider_Ad  from GIDER_TIPLERI");
            cmb_gider_tipi.DisplayMember = "gdr_Gider_Ad";
            cmb_gider_tipi.ValueMember = "gdr_Gider_Kod";
        }
        string tip()
        {
            string tip = "";
            if (rad_gelir.Checked == true)
            {
                tip = "Gelir";
            }
            if (rad_gider.Checked == true)
            {
                tip = "Gider";
            }
            return tip;
        }
        private void btn_kaydet_Click(object sender, EventArgs e)
        {
            if (tip() != "")
            {
                if (Convert.ToInt32(cal_recno.Text) == 0)
                {
                    glb.sql.Command(""
                        + "    INSERT INTO[dbo].[GELIR_GIDER_KAYITLARI]     "
                        + "           ([ggr_tarih]                          "
                        + "           ,[ggr_tipi]                           "
                        + "           ,[ggr_gider_tipi]                     "
                        + "           ,[ggr_cari]                           "
                        + "           ,[ggr_tutar]                          "
                        + "           ,[ggr_aciklama]                       "
                        + "           ,[ggr_kayit_tarih])                   "
                        + "     VALUES                                      "
                        + "           ('" + Convert.ToDateTime(dat_tarih.Value).ToString("yyyyMMdd HH:mm") + "'   " //< ggr_tarih, datetime,>              "
                        + "           ,'" + tip() + "'   " //< ggr_tipi, nvarchar(50),>           "
                        + "           ,'" + cmb_gider_tipi.SelectedValue.ToString() + "'   " //< ggr_gider_tipi, nvarchar(50),>     "
                        + "           ,'" + txt_cari.Text + "'   " //< ggr_cari, nvarchar(500),>          "
                        + "           , " + Convert.ToDouble(cal_tutar.Text).ToString().Replace(",", ".") + "   " //< ggr_tutar, float,>                 "
                        + "           ,'" + txt_Aciklama.Text + "'   " //< ggr_aciklama, nvarchar(max),>      "
                        + "           , getdate()  " //< ggr_kayit_tarih, datetime,> "
                        + " )       "
                        );
                    dgv_Update();
                }
                else
                {
                    glb.sql.Command(""
                        + "    update [dbo].[GELIR_GIDER_KAYITLARI]   set  "
                        + "            [ggr_tarih]        = '" + Convert.ToDateTime(dat_tarih.Value).ToString("yyyyMMdd HH:mm") + "'   " //< ggr_tarih, datetime,>              "                  "
                        + "           ,[ggr_tipi]         = '" + tip() + "'   " //< ggr_tipi, nvarchar(50),>           "                  "
                        + "           ,[ggr_gider_tipi]   = '" + cmb_gider_tipi.SelectedValue.ToString() + "'   " //< ggr_gider_tipi, nvarchar(50),>     "                  "
                        + "           ,[ggr_cari]         = '" + txt_cari.Text + "'   " //< ggr_cari, nvarchar(500),>          "                  "
                        + "           ,[ggr_tutar]        = '" + Convert.ToDouble(cal_tutar.Text).ToString().Replace(",", ".") + "'   " //< ggr_tutar, float,>                 "                  "
                        + "           ,[ggr_aciklama]     = '" + txt_Aciklama.Text + "'   " //< ggr_aciklama, nvarchar(max),>      "                  "
                        + "     where     ggr_RECno = " + Convert.ToInt32(cal_recno.Text) + "                                  "
                        );
                    dgv_Update();
                }
            }
            else
            {
                MessageBox.Show("İşlem Tipi seçmeden işlem yapamazsınız!", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
        private void btn_kapat_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
                cal_recno.Text = row.Cells["KAYITNO"].Value.ToString();
                cal_tutar.Text = row.Cells["Tutar"].Value.ToString();
                txt_Aciklama.Text = row.Cells["Açıklama"].Value.ToString();
                txt_cari.Text = row.Cells["Cari"].Value.ToString();
                string gelir_gider = row.Cells["Tipi"].Value.ToString();
                switch (gelir_gider)
                {
                    case "Gelir":
                        rad_gelir.Checked = true;
                        break;
                    case "Gider":
                        rad_gider.Checked = true;
                        break;
                    default:
                        rad_gider.Checked = false;
                        rad_gelir.Checked = false;
                        break;
                }
                dat_tarih.Text = row.Cells["Tarih"].Value.ToString();
                cmb_gider_tipi.SelectedValue = row.Cells["Gider Tip Kod"].Value.ToString();
            }
        }
        private void btn_sil_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bu " + tip() + " kaydını silmek istediğinzden emin misiniz?", "Onay Verin!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                glb.sql.Command("delete from  [dbo].[GELIR_GIDER_KAYITLARI]    where     ggr_RECno = " + Convert.ToInt32(cal_recno.Text) + "     ");
                dgv_Update();
            }
        }
        void dgv_Update()
        {
            dataGridView1.DataSource = glb.sql.Table("select * from dbo.fn_GelirGiderListesi(0) " + where);
        }
        string where = " ";
        private void rad_f_hepsi_CheckedChanged(object sender, EventArgs e)
        {
            if (rad_f_gelir.Checked == true)
            {
                where = " where Tipi = 'Gelir'  ";
            }
            if (rad_f_gider.Checked == true)
            {
                where = " where Tipi = 'Gider'  ";
            }
            if (rad_f_hepsi.Checked == true)
            {
                where = "   ";
            }
            dgv_Update();
        }
        private void btn_tip_ekle_Click(object sender, EventArgs e)
        {
            new GiderTipi_Ekle() { }.ShowDialog();
            combo_doldur();
        }
    }
}

Bu kodları incelediğinizde bilinen bazı işlemlerin farklı kullanım şekillerini  fark edeceksiniz. Örneğin en sondaki form açma şekli gibi. Ayrıca burada dikkat etmenizi istediğim yerlerden birisi de şudur. İki defa kullanacağımız kodların hepsi metotların içerisindedir. Örneğin combobox doldurma kodları ve datagiridview doldurma kodları gibi…

 

GiderTipi_Ekle.cs Tasarımı ve Kodları

C# Gelir Gider Takip Uygulaması 2

Bu ekrandaki silme işlemi yapmadım. Bunu siz diğer projelerden bakarak yapabilirsiniz. Kodlarımız da aşağıdaki gibidir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Gelir_Gider_Takip
{
    public partial class GiderTipi_Ekle : Form
    {
        public GiderTipi_Ekle()
        {
            InitializeComponent();
        }
        private void GiderTipi_Ekle_Load(object sender, EventArgs e)
        {

        }
        private void btn_kapat_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void btn_kaydet_Click(object sender, EventArgs e)
        {
            int kontrol = Convert.ToInt16(glb.sql.Command("select count(*) from GIDER_TIPLERI where gdr_Gider_Kod = '" + txt_gider_kod + "'"));
            if (kontrol == 0)
            {
                glb.sql.Command(""
                         + "       INSERT INTO[dbo].[GIDER_TIPLERI] "
                         + "              ([gdr_Gider_Kod] "
                         + "              ,[gdr_Gider_Ad]) "
                         + "        VALUES "
                         + "              ( '" + txt_gider_kod.Text + "' "//< gdr_Gider_Kod, nvarchar(50),> "
                         + "              , '" + txt_gider_kod.Text + "' "//< gdr_Gider_Kod, nvarchar(50),> "
                         + ") ");
                if (glb.sql.exception == null)
                {
                    MessageBox.Show("Kayıt Başarılı");
                }
            }
            else
            {
                glb.sql.Command(""
                    + "    update [dbo].[GIDER_TIPLERI] set "
                    + "              "
                    + "               [gdr_Gider_Ad]  = '" + txt_gider_kod.Text + "' "//< gdr_Gider_Kod, nvarchar(50),> "
                    + "        where  gdr_Gider_Kod = '" + txt_gider_kod.Text + "'"
                    + " ");
                if (glb.sql.exception == null)
                {
                    MessageBox.Show("Güncelleme Başarılı");
                }
            }
        }
    }
}

Projenin tamamı bu kadardı arkadaşlar. Diğer projelerimizde görüşmek üzere…


C# Gelir Gider Takip Uygulaması yazımda bu kadar arkadaşlar.  Diğer yazılarımda görüşmek üzere. Umarım faydalı olmuştur. Aşağıdaki linklerden eğitim seti sayfasına ve github projesine ulaşabilirsiniz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.  Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu projenin Github sayfasına buradan ulaşabilirsiniz.

Sağlıcakla ve kodla kalın….

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. 3 sene önce

    emeğinize teşekkür Mustafa Bey programı vidolarnızdan takip edip oluşturmaya çalışacağım takıldığım yer olursa sizinle paylaşırım şimödiden teşekkürler …

    saygılarımla
    iyi çaşlışmalar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.