- ปกติที่เคยเขียนนะ ส่วนมากจะ query เอาข้อมูลผ่าน db อย่างเดียว
- พอดีแก้โค้ดเพื่อนส่งงาน เพื่อนเค้าไม่เคยบอกเราเลยนะเนี๋ย
- เห็นเข้าเขียนชื่อรายงานบนหัว crystal report จากในตัวโปรแกรมเลยไม่ต้อง query เอา
- เราก็พึ่งรู้วิธีจากโค้ดเค้าเนี๋ยอ่ะ ^^'
Go
- ที่ crystal report คลิกขวาที่ Parameter Fields => New...
- ใส่ชื่อให้ Param ที่ช่อง Name: เราซะนะ
- จากนั้นก็ลาก param1 (เราใส่ Name: เป็น param1) ของเราไปวางใน report ซะ
- ส่วนการใส่ค่าโค้ดใน c# ก็ประมาณนี้
adapter.Fill(ds);
ds.WriteXmlSchema(Server.MapPath(@"ReportXSD.xsd"));
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath(@"Report.rpt"));
rpt.Database.Tables[0].SetDataSource(ds.Tables[0]);
........วางโค้ดหลัง SetDataSource กับ Load ตรงนี้แหละ ลองเรียบร้อย .........
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
- การใส่ค่าแบบแรกเราอ้างจาก index ของตัวแปร
- ในที่นี้เราจะเพิ่มค่าใ้ห้ param1 ซึ่งมันต่อจาก ReportName ดังภาพบนสุดฉนั้น index มันต้องเป็น 1 เพราะถ้าเราใช้ index 0 มันจะเป็นของ ReportName
rpt.ParameterFields[1].CurrentValues.AddValue("Hello world");
//rpt.SetParameterValue(1, "Hello world");
# แบบที่สองเราสามารถอ้างได้จากชื่อมันเลย
rpt.ParameterFields["param1"].CurrentValues.AddValue("Hello world");
//rpt.SetParameterValue("param1", "Hello world");
// ไม่ต้องใส่เครื่องหมาย @ หน้า param นะจะบอกให้
References
- ช่วงนี้สนใจแต่ reporting services หว่า ^^'
- http://www.codeproject.com/KB/database/ParametersToCrystalReport.aspx
- http://www.codeproject.com/KB/aspnet/CrystalReporting.aspx#Howdowepassparameterstocrystalreports
No comments:
Post a Comment