Dalam pembuatan sebuah Aplikasi pelaporan menjadi tujuan utama. hal ini juga yang membuat saya berpikir bagaimana cara membuat laporan memakai C#. apalagi ini web base...kalau menggunakan Desktop ada crystal report yang bisa kita gunakan dengan mudah. bagaimana dengan Web Base apakah kita bisa menggunakannya?
Setelah saya pelajari, ternyata Crystal report juga support di gunakan di ASP.Net. hanya saja permasalahannya saya menggunakan C# dengan framework Mvc2. di mana halaman ASP dan codenya di pisah menjadi Model, View dan Controller. seteleha melakukan percobaan akhirnya saya bisa menyatukan antara .Net Mvc2 dengan Crystal Report. berikut step-stepnya.
- Pertama buat halaman ASP biasa. saya namanakan Report.aspx
- Tambahkan Crystal Report Tag di dalam ASP tersebut. berikut codenya.
<CR:CrystalReportViewer ID="crViewer" runat="server" AutoDataBind="true" EnableDatabaseLogonPrompt="false" EnableParameterPrompt="false" />
- lalu di file Report.aspx.cs berikan code seperti berikut
protected void Page_Load(object sender, EventArgs e){
Dictionary<string, object> dict = (Dictionary<string, object>)HttpContext.Current.Session["__ControllerTempData"];
ArrayList list = (ArrayList)dict["reportData"]; string fileName = (string)dict["reportName"]; ReportClass rptH = new ReportClass(); rptH.FileName = fileName; rptH.Load(); rptH.SetDataSource(list); crViewer.ReportSource = rptH; } Step pertama sudah selesai. kita lanjut membuat Custom Action Result agar kita mudah memanggil report kita.
Buat class saya beri nama ReportAction.cs. buat class tersebut extend ke ActionResult. untuk lebih jelasnya berikut code ReportAction class Note : yang ada tanda << . ganti dengan code yang sesuai dalam program
public class ReportAction : ActionResult {
public ReportAction(string reportName, ArrayList list) { this.reportName = reportName; this.list = list; }
public override void ExecuteResult(ControllerContext context) {
context.Controller.TempData["reportData"]=<<< List Data yang ingin di tampilkan context.Controller.TempData["reportName"]=<<< di isi letak file Crysltal Report string reportUrl = <<< di isi letak file Report.aspx yang tadi kita buat string destinationUrl = UrlHelper.GenerateContentUrl(reportUrl, context.HttpContext); context.HttpContext.Response.Redirect(destinationUrl, endResponse: false); } }
Jika sudah selesai. jika kita ingin menampilkan report. kita tinggal manggil seperti ini
Note : yang ada di dalam << >> ganti dengan code yang sesuai dalam program
return new ReportAction(<<Letak file Crystal Report>>, <<ArrayList data>>);
0 komentar:
Posting Komentar