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);
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