Filtering and Sorting Record With DataTable

Created at : Jun/13/2007  
1750 Views   2 Comments

Seperti yang telah kita ketahui sebelumnya bahwa Crystal Reports dapat menampilkan data yang diambil dari berbagai sumber data seperti DataSet, DataTable, DataReader, dan class yang implement IEnumerable. Pada artikel kali ini saya akan memperlihatkan contoh bagaimana caranya kita dapat melakukan filtering data dan sorting pada Crystal Report dengan menggunakan DataTable.

Sebenarnya simple sekali, karena DataTable sudah mempunyai properti yang return valuenya berupa DataView. Dari DataView tersebut kita gunakan properti RowFilter untuk filtering record dan Sorting untuk mengurutkan data berdasarkan kolom tertentu.

Contoh report yang dibuat ini mengambil data dari database AdventureWorks untuk view Sales.vIndividualCustomer untuk beberapa kolom yang dapat anda lihat di code. Kemudian di form tersebut disediakan combobox untuk filtering dan sorting record. Mari kita lihat saja code lengkapnya dan screen shot ketika aplikasi tersebut dijalankan.

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 frmReport : Form {

DataTable dtSales = new DataTable();
rptSortByCR rpt = new rptSortByCR();

public frmReport()
{
InitializeComponent();
}

private void SetReportDataSource()
{
using(SqlConnection sqlConn = new SqlConnection(
@"Database=AdventureWorks;Uid=sa;Pwd=sql2005;Server=.\SQL2005"))
{
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandType = CommandType.Text;
sqlCmd.Connection = sqlConn;
sqlCmd.CommandText = "Select CustomerID,FirstName," +
"Phone,City,CountryRegionName From Sales.vIndividualCustomer";

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

rpt.SetDataSource(dtSales);
crystalReportViewer1.ReportSource = rpt;

DataTable dtCountry = new DataTable("distinctCountry");
dtCountry = dtSales.DefaultView.ToTable(true,
dtSales.Columns["countryregionname"].ColumnName);
cboCountry.DataSource = dtCountry;
cboCountry.DisplayMember = "countryregionname";

foreach (DataColumn aColumn in dtSales.Columns)
{
cboSort.Items.Add(aColumn.ColumnName);
}
}
}
}
private void frmReport_Load(object sender, EventArgs e)
{
SetReportDataSource();
}

private void btnSearch_Click(object sender, EventArgs e)
{
dtSales.DefaultView.RowFilter = "CountryRegionName = '" +
cboCountry.Text + "'";
rpt.SetDataSource(dtSales.DefaultView);
crystalReportViewer1.ReportSource = rpt;
}

private void btnSort_Click(object sender, EventArgs e)
{
dtSales.DefaultView.Sort = cboSort.Text;
rpt.SetDataSource(dtSales.DefaultView);
crystalReportViewer1.ReportSource = rpt;
}

}
}
 

 


[Comments]
reza May/24/2009 03:20:46 :
mas, sebenernya cara buat report gimana sih... aku pake VS c#2005, database mysql... ampe skrg aku masih bingung buat itu
Marco Jul/06/2009 09:03:36 :
Iya, kalo aku pake database SQL Server 2005, dengan Visual Studio 2005. Tapi gimana cara bikin report pake Crystal Report dengan coding query manual ya?

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

wepf
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 2235 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