1.Web.config文件
添加配置
<httpHandlers>
<add path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
</httpHandlers>
2.在包含views的文件夾中webconfig中加入以下信息:引用命名空間
<add namespace="FastReport"/>
<add namespace="FastReport.Web"/>
3.在_Layout.cshtml文件中<head>加入
@WebReportGlobals.Scripts()
@WebReportGlobals.Styles()
4.在view視圖中加入
@ViewBag.WebReport.GetHtml()
5.后台

//數據庫中讀取報表,並加載數據和報表 public void ReadBlob(int idData, DataSet dataSet) { OracleConnection conn = new OracleConnection(); string connString = "Data Source= (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.86.45)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCL)));User ID=DWMP;Password=DWMP;Persist Security Info=True"; using (conn = new OracleConnection(connString)) { try { conn.Open(); OracleCommand cmd = conn.CreateCommand(); // 利用事務處理(必須) OracleTransaction transaction = cmd.Connection.BeginTransaction(); cmd.Transaction = transaction; // 獲得 OracleLob 指針 string sql = "select REPORTDATA from BASE_FORMPRINT where id= " + idData; cmd.CommandText = sql; OracleDataReader dr = cmd.ExecuteReader(); dr.Read(); //讀取內存流 MemoryStream ms = new MemoryStream((byte[])dr["REPORTDATA"]); WebReport report = new WebReport();//創建報表對象 report.Width = 740; report.Height = 600; report.Report.Load(ms);//加載內存流 report.Report.RegisterData(dataSet);//傳遞數據 ViewBag.WebReport = report;//賦值報表給頁面 ms.Dispose(); report.Dispose(); cmd.Parameters.Clear(); // 提交事務 transaction.Commit(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } } } //動作:打印預覽 // GET: /Print/PrintDetail public ActionResult PrintDetail(int reportid, int opersheetid) { ViewBag.Message = "PrintDetail"; DataSet dataSet = getDataSet(reportid,opersheetid);//獲得數據集 ReadBlob(reportid, dataSet);//加載報表 return View(); } //獲得單據數據集 private DataSet getDataSet(int reportid,int opersheetid) { DataSet dataSet = new DataSet(); string getViewName = "select * from base_formprint where id=" + reportid; DataTable dt=DbHelperOra.Query(getViewName).Tables[0]; string sheetView=dt.Rows[0]["sheetdataset"].ToString(); string detailView = dt.Rows[0]["detaildataset"].ToString(); string checkView = dt.Rows[0]["aduitdataset"].ToString(); if (!String.IsNullOrEmpty(sheetView)) { string sqlSheet = "select * from " + sheetView + " where id=" + opersheetid;//單據信息 DataTable dt1 = DbHelperOra.Query(sqlSheet).Tables[0]; dt1.TableName = sheetView; dataSet.Tables.Add(dt1.Copy()); } if (!String.IsNullOrEmpty(detailView)) { string sqlDetail = "select * from " + detailView + " where sheetid=" + opersheetid;//明細信息 DataTable dt2 = DbHelperOra.Query(sqlDetail).Tables[0]; dt2.TableName = detailView; dataSet.Tables.Add(dt2.Copy()); } if (!String.IsNullOrEmpty(checkView)) { string sqlCheck = "select * from " + checkView + " where id=" + opersheetid;//審核 DataTable dt3 = DbHelperOra.Query(sqlCheck).Tables[0]; dt3.TableName = checkView; dataSet.Tables.Add(dt3.Copy()); } return dataSet; }