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