Select Data Between Date

Created at : Jun/13/2007  
2601 Views   7 Comments

Kadang kala kita membutuhkan data untuk keperluan laporan dimana datanya di filter dalam interval tanggal tertentu. Ada beberapa cara untuk melakukan hal tersebut, diantaranya yaitu : Menggunakan filtering data langsung di SQL statementnya, atau filtering record via datasource yang digunakan secara offline (misalnya menggunakan DataTable).

Kalau kita gunakan SQL statement anda tinggal gunakan klausa "Where DateOrder Between...And...". Kalau kita gunakan DataTable sebagai sumber data bagaimana caranya? Yang perlu dilakukan hanyalah dengan menggunakan properti RowFilter yang di assign dengan value "OrderDate >= ... And OrderDate <= ..." dengan asumsi kolom yang digunakan untuk pencarian data yaitu kolom OrderDate.

Dalam contoh ini saya menggunakan tabel Orders yang terdapat di database Northwind. Di form yang digunakan ditambahakan dua buah DateTimePicker untuk memilih tanggal order yang akan ditampilkan. Kolom yang digunakan untuk pencarian data yaitu kolom OrderDate. Let's see the code below :

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

namespace CrystalReportsApp
{
public partial class frmOrdersReport : Form {
DataTable dtOrders = new DataTable();
rptOrders rpt = new rptOrders();

public frmOrdersReport()
{
InitializeComponent();
}

private void SetReportDataSource()
{
using (SqlConnection sqlConn = new SqlConnection(
@"Database=Northwind2005;Uid=sa;Pwd=sql2005;Server=.\SQL2005"))
{
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandType = CommandType.Text;
sqlCmd.Connection = sqlConn;
sqlCmd.CommandText = "Select * From Orders";

if (sqlConn.State == ConnectionState.Closed) sqlConn.Open();
dtOrders.Load(sqlCmd.ExecuteReader());

rpt.SetDataSource(dtOrders);
crystalReportViewer1.ReportSource = rpt;
}
}
}

private void frmOrdersReport_Load(object sender, EventArgs e)
{
SetReportDataSource();
}

private void btnSeeOrders_Click(object sender, EventArgs e)
{
string strDate1 = dateTimePicker1.Value.ToString();
string strDate2 = dateTimePicker2.Value.ToString();

dtOrders.DefaultView.RowFilter = "OrderDate >= '" + strDate1 +
"' And OrderDate <= '" + strDate2 + "'";

rpt.SetDataSource(dtOrders.DefaultView);
crystalReportViewer1.ReportSource = rpt;
}

}
}

 


[Comments]
Awal Jan/25/2008 07:42:07 :
Mas Yulian, untuk ASP.NET-nya gimana klo Show Report ada filter dari tahun X s/d X... thx
Rully Jan/25/2008 08:42:06 :
Btw nama saya Rully :)...mas Awal klo pake cara yang diatas pake DataTable kita ga bisa filter dengan kebutuhan yang mas minta...paling juga maen2 di query nya, tanggalnya di parsing ke tahun yang diminta pake perintah SQL nya, abis itu baru diload ke datatable.
chen Jul/24/2008 05:21:50 :
Allo mas Rully, salam kenal. mo nanya soal crystal report. 1. aku mo bikin kondisi di select expert, tp based on formula field. itu gimana caranya ya ? aku lg perlu itu. aku udah bikin 1 formula field "@enddate. lalu, di select expert, aku pasang kondisi : fieldate <= @enddate. di pilihannya, emang ga muncul. jadinya aku ketik manual. tp muncul msg : "a number, currency amount, boolean, date, time , date-time or string is expected here" 2. sql expression fields itu, cara pakainya bagaimana , ya ? kalo baca dari help, mestinya sql statement. tp ga bisa. for example, aku sum data : select sum(amount) from table where date < date1. aku type syntax begitu, tapi ga bisa. mestinya, seperti apa format sql statement yang bisa digunakan di field ini ? thanks a lot in advance.
arga prastya Feb/27/2010 03:06:24 :
Dear Mr.Rully, Saya arga, saya baru saja mulai belajar program. Saya ingin menanyakan, contoh diatas kan untuk menampilkan data yang kita butuhkan sesuai tanggal, tapi menggunakan Crystal Report. Yang ingin saya tanyakan bagaimana ya caranya jika data yang ingin kita tampilkan tersebut ingin tampilkan di DataGridView bukan di Crystal Report. Mohon bantuannya ya pak, bisa di jawab melalui website ini atau bisa tolong send contoh codingnya di argaceuz92@gmail.com thanks.. Regards Arga
Rully Mar/06/2010 07:15:39 :
chen > coba di check lagi tipe data parameter field nya apakah sudah sesuai? Dan juga di check lagi return value yang dikembalikan dari formula field tersebut, kemungkinan tidak sesuai dengan requirementnya.
Rully Mar/06/2010 07:16:55 :
arga > Untuk menampilkannya di GridView cukup atur properti DataSource dari GridView nya dan beri nilai dari variabel DataTable yang sudah berisi data.
Web Hosting Murah May/31/2010 08:11:07 :

Thx Mas Yulian atas sharingnya, semoga bermanfaat untuk semua.


[Write your comment]
Name (required)
URL (optional)
Example : http://www.yulianmf.com  
Comment

XETG
Input code above below (Case Sensitif) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 2231 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2192 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 1523 times  
DataGridView Grouping : Downloaded 1243 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1232 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise - IT Training 
Native Enterprise Facebook Group 
My Facebook 
My LinkedIn 
Syndication (RSS 2.0) 
Powered By 
Native Enterprise News