方便給第一次設計CR於網頁中的人參考使用。
CR版本:CR XI
1. 開啟.Net 2003 建立XST (DATASET)
提供給CR 作為資料來源使用。裡面元素就是到時候要放到報表中的參數。
2. 開啟.Net 2003 建立 RPT
點選專案右鍵,加入新項目,選擇CrystalReport。
(建立完成後,可使用CR XI軟體來編輯會比較輕鬆)
建立新報表時可透過精靈協助建立,Step By Step 依序往下建立,
如果需要群組的需求時,記得選擇群組加入。
[標準報表精靈]-->[目前的連結]-->[選擇1.新建立的DataSet]-->[選擇要加入的欄位資料]-->
[選擇群組欄位]-->[完成]
*加入Crystal Report rpt
*資料來源設定
3. 撰寫顯示報表程式碼
先在aspx中拉一個CrystalReportViewer1元件,作為報表顯示的元件。接下來程式碼範例如下:
//組成要傳給CR的DataSet
DataSet objDs = new DataSet();
DataTable objDTbe=new DataTable("ENTprintTable");
string[] strColumnName={"BILL_ID","SEND_DEP","SEND_EMPID","SEND_EMPNAME","REC_DEP","REC_EMPID","REC_EMPNAME","REC_ZIP","REC_BASE","GOOD_MEMO","MEMO","CREATE_DATE"};
for(int i=0;i<strColumnName.Length;i++)
objDTbe.Columns.Add(strColumnName[i]);
//新增資料
DataRow objDRow=objDTbe.NewRow();
objDRow[0] = "A1000000001";
objDRow[1] = "總部-人力資源TEAM";
objDRow[2] = "1011-吳小劫";
objDRow[3] = "";
objDRow[4] = "營業所";
objDRow[5] = "3712-怡靜";
objDRow[6] = "";
objDRow[7] = "11011";
objDRow[8] = "彰化BASE";
objDRow[9] = "營業所薪資條";
objDRow[10] = "收到後請回饋SD";
objDRow[11] = DateTime.Now.ToString("yyyy/MM/dd");
//新資料加入DataTable
objDTbe.Rows.Add(objDRow);
objDs.Tables.Clear();
objDs.Tables.Add(objDTbe);
try
{
objRpt1.SetDataSource(objDs); //將DataSet 指定給CR來源端
//Session["reportDocument"] = objRpt1;
objRpt1.Refresh();
CrystalReportViewer1.ReportSource = objRpt1; //CR報表顯示元件
}
catch(Exception ex)
{
objDs.Dispose();
throw ex;
}
objDs.Dispose();
4. 記得DataTable名稱要與1.所設計的DataSet要一樣。
5. DataTable欄位名稱也要一樣。
6. 有設計群組的話,Sample畫面如下:
沒有留言:
張貼留言