Friday, August 28, 2009

Example reporting code C#

---------------------------- Via Adapter ---------------------------------


SqlParameter[] SearchValue = new SqlParameter[1];
SearchValue[0] = new SqlParameter("@storeparam","value for param procedure");
SqlDataAdapter da = new SqlDataAdapter("StoreprocedureName", thisConnection);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(SearchValue[0]);

/*
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;

cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "procedureName";

cmd.Parameters.AddWithValue("@param", "value");
cmd.Parameters.AddWithValue("@param", "value");
*/

// da is sqldataadapter
DataSet thisDataSet = new DataSet();

// fill and enter param to this da
da.Fill(thisDataSet);
---------------------------- Crystal report ---------------------------------


DataTable dt = new DataTable();
dt = thisDataSet.Tables[0];
dt.TableName = "TABLE1";

// write schema file so not important can only once create
// dt.WriteXmlSchema("D:\schema.xsd");

// load report
ReportDocument rpt = new ReportDocument();
rpt.Load("D:\report.rpt");

// bind rpt with viewer
rpt.Database.Tables[0].SetDataSource(dt);
this.crystalReportViewer1.ReportSource = this.rpt;

---------------------- Report server (local mode) ------------------------

// assume created dataset1.xsd file in that content table1 case sensitive

ReportViewer1.Visible = true;
ReportDataSource datasource = new ReportDataSource("dataset1_table1", thisDataSet.Tables[0]);
ReportViewer1.LocalReport.ReportPath = @"App_code\Report.rdlc";
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(datasource);
ReportViewer1.LocalReport.Refresh();



Tip
  • การ export หรือ print Crystal Report จะมีปัญหา หว่าคือ เมื่อเรากดแล้วไม่เห็นจะเกิดอาไรขึ้นเลย วิธีแก้ก็แค่ นำโค้ดออกรายงาน Crystal Report ไปวางที่ Page Load ใน Page.IsPostBack ด้วยเพื่อแก้ปัญหาให้ทำการ export และ print ได้
  • สรุปง่ายๆ คือ เมื่อเราทำการคลิก export หรือ print Crystal Report ระบบจะไปทำการสร้าง rpt ใน temp ใหม่สำหรับการ export หรือ print ของครั้งนั้นๆ
  • แต่ Local report ไม่เป็นนะ ไม่มีปัญหาเรื่อง temp ว่างั้น

Reference

No comments:

Post a Comment

Popular Posts