Select Data Between Date

Crystal Report , Posted at : Jun/13/2007  
16059 Views   14 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 : sele
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.
andre saputra  Nov/04/2010 07:03:15 :

Mas maaf kalau saya tanya perihal code saya tentang hal yang sama :

button filter berisi :

[code]

If Option1.value = True Then
    reloadlistview1 "select * from sales"
Else
    reloadlistview1 "select * from sales where TANGGAL  between '" & Text1.Text & "'" & _
                    "and '" & Text2.Text & "' order by noinvoice"

End If

Rully  Nov/05/2010 08:58:10 :

andre > Ini masih pake vb 6.0 ya? :) ...anyway format data yang disimpan di database sql server atau access itu defaultnya menggunakan format month-day-year...nah coba gunakan format date month-day-year untuk filter record nya.

Mudah-mudahan membantu.

agus ryo  Sep/04/2012 12:50:04 :

mas rully.,klo mo nampilin form secara otomatis dengan menggunakan select case dengan cara mem filter dari sql 2005 bisa ga y?thanks before..:)

agus ryo  Sep/04/2012 12:52:46 :

mas rully.,maaf 1 lgi,klo misalkan bisa itu harus membuat kodingnya di vb.netnya ga..??thanks before..:)

Yonathan  Apr/22/2015 08:52:27 :

Mas, saya mau filter data sesuai datetimepicker dari datagrid gimana ya?

tolong kasih sourcecodenya dong. terimakasih

Rully  Apr/23/2015 08:33:16 :

Yonathan > Pada prinsipnya sama, tinggal memanfaatkan event cell click yang terdapat di datagrid. Kalau tidak salah ada contoh pemanfaatan event tersebut di website saya ini, namun saya lupa artikelnya yang mana :D 

ilham  Apr/06/2017 08:23:16 :

 numpang nanya mas Rully,,,

kalaw diterapkan pada gridview bagaimana langkah2nya ya ??

wassalam

Bramantyo Aryo W  Dec/30/2017 01:34:19 :

 Terima Kasih pencerahannya, nama saya bramantyo.

saya mencari query pengganti between yang tidak support untuk filter dengan mengganti >= 'value' and <= 'value' pada aplikasi VB.net saya. 

 

Terima Kasih untuk pencerahannya . thats code is work :') 


[Write your comment]
Name (required)
Email (required-will not published)
 
Comment

irtu
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Microsoft Certified Trainer | IT Trainer at Native Enterprise | IT Consultant | Software Developer | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.
[Read More...]
Top Download 
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 6279 times  
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 4718 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 3646 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 3343 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 2721 times  
Links 
Certifications 
Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News 
© Copyright 2006 - 2018   Rully Yulian MF   All rights reserved.