0
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
0
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
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol