Filtering and Sorting Record With DataTable

Crystal Reports - Crystal Report , Posted at : Jun/13/2007  
2571 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)
Email (required-will not published)
 
Comment

3751
Input code above below (Case Sensitive) :
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 3175 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2592 times  
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 2180 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 2127 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1806 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News