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 = ;
report.Height = ;
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[];
string sheetView=dt.Rows[]["sheetdataset"].ToString();
string detailView = dt.Rows[]["detaildataset"].ToString();
string checkView = dt.Rows[]["aduitdataset"].ToString();
if (!String.IsNullOrEmpty(sheetView))
{
string sqlSheet = "select * from " + sheetView + " where id=" + opersheetid;//单据信息
DataTable dt1 = DbHelperOra.Query(sqlSheet).Tables[];
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[];
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[];
dt3.TableName = checkView;
dataSet.Tables.Add(dt3.Copy());
}
return dataSet;
}

MVC架构 使用FastReport的更多相关文章

  1. 【JAVA】基于MVC架构Java技术荟萃案例演练

    基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...

  2. Android 四大组件 与 MVC 架构模式

    作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...

  3. MVC架构模式分析与设计(一)---简单的mvc架构

    首先 我要感谢慕课网的老师提供视频资料 http://www.imooc.com/learn/69 下面我来进行笔记 我们制作一个简单的mvc架构 制作第一个控制器 testController.cl ...

  4. IntelliMVCCode智能MVC架构的代码助手使用方法

    智能代码生成工具,快速帮助开发者提升开发速度,通过工具自动生成MVC架构的大量源代码,节省更多的开发时间. 工具使用的框架:.net4.0,通过工具连接到数据库自动提取数据表或视图中的结构,生成对应的 ...

  5. 从MVC框架看MVC架构的设计

    尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点.本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些 ...

  6. 【PHP小项目使用MVC架构】

    小项目名称是雇员管理系统. mvc是一种项目的开发模式,中文名称为模式视图控制器,是强制程序员将数据的输入.处理.输出分开的一种开发模式. 在这个小项目中,控制器使用service作为后缀名. 项目u ...

  7. 一个初学者对于MVC架构的理解

    我很早之前就开始接触.NET开发,一直都在2.0的框架下,所以对于MVC这种架构,听说过,但没有具体使用过,近期和外部朋友接触时,有了解到他们公司在使用MVC这种架构,所以自己就找来相关资料了解一下M ...

  8. java MVC架构-spring mvc,struct2(理解)

    MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...

  9. 【深入Cocos2d-x】使用MVC架构搭建游戏Four

    喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...

随机推荐

  1. Ubuntu Kylin 14.04下配置JDK1.8

    1.源码包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h ...

  2. 谈谈LoveLive SIF以及即将诞生的LL练习器

    由于课程需要和自身需求以及广大的LLer的需求,这个学期我将做一个造福全世界LLer的安卓app,它的名字是——还没想好(喂),总之是个LL SIF的练习器.什么?你问我LL SIF是什么?看来你不是 ...

  3. 日志时间格式有s,ms,us,如何排序最大10行

    这个比较繁琐,谁有更好方法?告诉我  [root@module tmp]# cat oldboy.txt       12s120001ms12000000us13s[root@module tmp] ...

  4. 虚拟机下CentOS 6.5配置IP地址的三种方法

    实验软件环境:虚拟机Vmware Workstation10.0 .CentOS 6.5 32位 1.自动获取IP地址 虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分 ...

  5. Java里能用session吗?

    1.Session是服务器端存储的,Js里不能使用. 2.一般Session的实现需要依赖客户端的Cookie来储存一个SessionId,客户端每次请求服务器都会带上这个Cookie,这样服务器端就 ...

  6. Coursera台大机器学习课程笔记5 -- Theory of Generalization

    本章思路: 根据之前的总结,如果M很大,那么无论假设泛化能力差的概率多小,都无法忽略,所以问题转化为证明M不大,然后上章将其转化为证明成长函数:mh(N)为多项式级别.直接证明似乎很困难,本章继续利用 ...

  7. spring 属性注入

    Spring的核心技术室依赖注入,下面是依赖注入之属性注入的实现过程,牛刀小试,请看效果. 1.首先添加Spring.Web引用.本例中是使用分层思想来演示的,下面是项目的结构和UserModel类的 ...

  8. 关于SQL Server将一列的多行内容拼接成一行的问题讨论

    http://blog.csdn.net/rolamao/article/details/7745972 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我 ...

  9. Spring透过ApplicationListener来触发contextrefreshedevent事件

    Spring通过ApplicationListener接口来触发contextrefreshedevent事件在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据.加载 ...

  10. Oracle Partition By 的使用

    1.概述 Parttion by 关键字是Oracle中分析性函数的一部分,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,儿聚合函数一般只有一条反映统计值的结果. 2.使用方式 场景:查询 ...