注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gb.qin

A Man's心靈的港灣

 
 
 

日志

 
 

在ASP.net MVC中使用水晶报表和创建通用的报表查看器(集) 一  

2013-01-11 09:48:46|  分类: ASP.NET MVC3 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
下载项目

本文介绍如何在ASP.net MVC水晶报表。
在这里,我将介绍两种不同的方式显示在MVC的水晶报表。
1。显示水晶报表使用ASP.NET Web窗体中的MVC。
    A. 在同一个窗口
    B. 在不同的窗口
2。显示控制器/动作(水晶报表生成PDF飞)。
    在同一个窗口
    B. 在不同的窗口

后来,我将介绍如何创建一般/常见的报表查看器Web表单和报表查看器控制器通用/通用类,这将可用于任何Crystal报表(有/无数据)。

3。创建通用/通用报表查看器
     A. 创建通用的报表查看器通过asp.net页面(*。ASPX)水晶报表的表
            在同一个窗口
            3.A.2。在不同的窗口
     B. 创建通用报表水晶报表的PDF格式,飞控制器类。
            3.B.1。在同一个窗口
            3.B.2。在不同的窗口
1。在MVC中使用ASP.NET Web窗体显示水晶报表

在这种情况下,我们必须在我们的MVC项目中添加一个ASP.NET Web表单显示水晶报表。考虑此页名称是aspnetsimple.aspx的。本页面将调用控制器。如果我们想在不同的窗口中显示报告,那么我们就必须把它从视图中使用Java脚本代码的window.open(“URL”,..)。

让我们创建..

1。在我们的MVC项目中添加一个ASP.NET Web表单和它命名为aspnetsimple.aspx。(在我的项目AspNetForms目录下)

2。添加一个CrystalReportViewer控制。

3。在我们的项目中添加一个水晶报表(*。RPT)和它命名为simple.rpt。(在我的项目在RPT的目录下)

4。联播simple.rpt水晶报表查看器控件(load事件aspnetsimple.aspx页上写下面的代码)

1
2
3
4
5
6
protected void Page_Load(object sender, EventArgs e)
{
   ReportDocument rd = new ReportDocument ();
   rd.Load(Server.MapPath("~/Rpts/")+"simple.rpt");
   CrystalReportViewer1.ReportSource = rd;
}

5。现在,让我们创建一个空的的控制器名为UsingWebFormControlles,并产生索引视图,用鼠标右键单击索引行动。
1。显示在同一个窗口中查看从简单的报表
现在,创建一个动作名为“在UsingWebFormController显示简单的调用aspnetsimple.aspx页”。

..

7。现在称这种动作从视图中显示简单的报告。
1.B显示在新窗口查看从简单的报表,
那么我们就必须使用Java script。在这里,视图包含下面的代码

..

这看起来像以下

,现在你想怎么给你传递数据或报告的数据如何显示呢??别担心,我将介绍通用报表部分。
2。水晶报表显示控制器/动作(由上生成PDF飞)
在这里,我们将调用一个行动的看法,会产生动态的报告,不使用任何*。aspx文件中。
让我们开始
>>创建一个新的命名FromMvcController的控制器,生成索引视图。
“创建行动命名为ShowSimple。这将显示在同一窗口报告

只需要调用下面的行动从视图页面。然后,它会生成pdf的飞行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
function SimpleInNewWin() {
window.open("../AspNetForms/aspnetsimple.aspx");
}
 
</script>
<h2>Report Using ASP.net Web Forms</h2>
 
<h3>Simple Report</h3>
@using (Html.BeginForm("ShowSimple", "UsingWebForm"))
{
<input type="submit" value="Show simple" />
<input type="button" value="Show simple in New Window" onclick="SimpleInNewWin()"/>
<br />
}

2.B开题报告,在新的窗口。
在新窗口打开报告时,我们必须使用window.open和需要调用上面的动作从Java脚本块。考虑下面的代码的详细信息。

1
2
3
4
5
6
7
8
9
10
11
12
//Need to add following namespaces for using ExportFormatType and ReportClass
//using CrystalDecisions.CrystalReports.Engine;
//using CrystalDecisions.Shared;
public void ShowSimple()
        {
            using (ReportClass rptH = new ReportClass())
            {
                rptH.FileName = Server.MapPath("~/") + "//Rpts//simple.rpt";
                rptH.Load();
                rptH.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "crReport");
            }
        }

3。创建通用/通用报表查看器的形式和控制器
A. 创建通用报表查看器通过ASP.NET(ASPX)页水晶报表的表 
创建通用遥控器类为PDF格式,飞水晶报表。
3。通用/通用报表查看器

在总报告中包含报表源和参数(数据和日期等)。在这里,我将创建一个通用/通用报表查看器将用于显示不同的报告。在这里,我必须要通过报告的名称,参数(如果有的话)和报??表的数据源,通过会话,那么就会产生会话数据报告。这样,我们不需要为每个报表创建独立的报表查看器页面。在我的示例中,我使用了四个参数,用于生成报告。

参数:
1。报告名称
2。从日期
3。日期
4。报告来源
在这里会话用于传递数据从行动到通用报表查看器。
3。创建通用报表查看器的形式显示水晶报表通过ASP.NET(ASPX)页
1。让我们在我们的项目中添加一个web页AspNetForms文件夹下,并把它命名为aspnetgeneric.aspx。


2。然后添加一个水晶报表查看器控件就可以了。
3。然后添加下面的代码在页面加载事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<h2>Report from MVC</h2>
<script type="text/javascript">
function SimpleInNewWin() {
window.open("../FromMvc/ShowSimple");// calling action
}
 
</script>
<h2>Report Using ASP.net Web Forms</h2>
 
<h3>Simple Report</h3>
@using (Html.BeginForm("ShowSimple", "FromMvc"))
{
<input type="submit" value="Show simple" />
<input type="button" value="Show simple in New Window" onclick="SimpleInNewWin()"/>
<br />
}

现在,我们的通用报表查看器已准备就绪。使用此页面之前,我们有四个会话值(Session["ReportName"], Session["rptFromDate"], Session["rptToDate"] Session["rptSource"]) ,否则会显示错误。设置会话值之后,我们就可以调用这个页面显示报告。

  评论这张
 
阅读(3331)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017