Fatura Takip Programı

sametcafer (1) 11 yıl önce sordu

Merhabalar Bir Fatura Takip Programı Yapmaktayım. Takıldığım Yerler Var Onları Size Sormak İçin Rahatsız Ediyorum Sizi

Şimdi Program Üç Ana Öğeden Oluşuyor.

.Fatura Ekle(Tip Ve Kuruma Göre(Dinamik) Fatura Seçiyorum Abone Numarası,AdSoyad,Kayıt Tarihi Giriyorum Ve Faturayı KIaydediyorum.)

.Fatura Listele(Buı Kısımda Fatura Ekleden Gelen Bilgiler Doğrultusunda Faturayı Listeliyorum.Yalnız Listeleme Yaparken Şöyle Bir Kriterimiz Var Benim De Takıldığım Nokta Burası.Her Ay Ödenecek İşte Elektrik,Su,Telefon Faturaları Vardır Ya Ha Onlar Ben Hangi Ay Ve Yılı Seçersem Seçeyim Gelecek.Yani Ocak 2014'te Ocak'ta 5 Ayrı Fatura Girdim.Bu Faturalar Şubat,Mart,Nisan.. Hepsinde Listelenecek. Bir De Diyelim Şubat Ayı İçin Yeni Bir Doğalgaz Faturası Ekledim Bu Da Ocak'ta Gözükmeyecek Şubat,Mart,Nisan..Da Gözükecek. Ve Öde Dediğim Zaman Açılacan Form'a Fatura Numarasını Ve Tutarı Birde Ne Zaman Ödediğimi Girecem. Öde Kısnmından Glen Bu 3 Alan Ve Fatura Listeldeki Alanlardaki Verileri Gidip Fatura Hareket Tablosuna Yazacak. ) Ne Yaparsam Yapayım Bu İşi Yapamadım.

.Bu Aşamadada Faturaları Fatura Hareket Tablosunda Görüntüleyecek. Bi Kıstas Var Ay Ve Yıla Göre Mesela Ocak 2014 Te Ödenmen leri Ve Ödenmeyeleri Gösterecek Şubat,Mart,Nisan.. Diye.

Kısaca : Listelenecek olan faturaların kendinden sonraki aylarda da listelenmesi ancak önceki aylarda gözükmemesi

alattin 11 yıl önce

çözüm sağladı mı?

Toplam 1 cevap


alattin (17125) 11 yıl önce cevapladı

Yanlış anlamadıysam aslında yapmak istediğiniz, seçili tarihten sonraki döneme düşen faturları listelemek istiyorsunuz. 

Yani raporlama ekranında tarih seçilecek,  örneğin, 01.01.2014,  siz  2014 aylarına denk gelen tüm faturları listelemek istiyorsunuz.

Aşağıdaki gibi bir veritabanı  tasarımı işinizi görecektir. Siz projenize göre geliştirebilirsiniz.

SQL Veritabanını oluşturan kodlar, 

USE [Fatura]
GO
/****** Object:  Table [dbo].[Tur]    Script Date: 11/17/2013 19:10:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tur](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Ad] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_FaturaTur] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Faturalar]    Script Date: 11/17/2013 19:10:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Faturalar](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[TurId] [int] NOT NULL,
	[AboneNo] [nvarchar](50) NOT NULL,
	[AdSoyad] [nvarchar](50) NOT NULL,
	[KayitTarihi] [date] NOT NULL,
	[SonOdemeTarihi] [date] NOT NULL,
 CONSTRAINT [PK_Faturalar] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Windows Forms C# uygulaması Raporlama ekranı görünümü

 

Rapor kod görünümü (C# Kodu)

using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string ConString = "Server=.\\SqlExpress;Database=fatura; Integrated security=SSPI";
        private void btnGoruntule_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(ConString);
            SqlDataAdapter adp = new SqlDataAdapter("select * from Faturalar where SonOdemeTarihi > @prmTarih", ConString);
            adp.SelectCommand.Parameters.AddWithValue("@prmTarih", dtpTarih.Value);
            DataSet ds = new DataSet();
            adp.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];


        }
    }
}

Aşağıdaki SQL sorgusu aslında tüm istediğinizi yerine getirecektir.

select * from Faturalar where SonOdemeTarihi > @prmTarih