Cha*_*ugh 5 c# asp.net-mvc visual-studio-2010 crystal-reports asp.net-mvc-3
好吧,所以我正在为我工作的公司构建一种报告中心,而且很容易就是建立一个基于Web的文件浏览器,现在我正在转向它的报告方面并开始它,我'集成Crystal Reports.我已经从他们的SAP网站上获取了这些文件,但是我遇到了一些问题,
首先,我发现的所有示例都是为了让您必须定义数据源/数据库,并在代码中包含它的登录信息.这是一个问题,因为我们有很多水晶报告,有很多不同的数据库参考,所以我不能只使用一个.事实上,有报道称我们同时使用该引用多个数据库.
其次,我发现的所有示例都表明您必须为每个报告创建一个特定页面.我的目标是能够将报告链接作为变量,并为我们拥有的所有报告创建一个页面.
我看了昨天能找到的一切,但找不到我需要的东西.我也想知道ReportClass.Load函数到底是做什么的.在我能找到的每个例子中都没有注意到我使用它时ReportClass中的任何明显差异.
在搜索时,我找到了一个答案,建议构建一个可以构建Reports的Web表单应用程序,然后使用I-Frame来抓取它,但这是我想要避免的.
所以在审查中:
1)我需要构建Crystal Reports而不必引用数据库
2)我只需要提供.rpt文件的路径,就可以灵活地处理变量Report
3)我希望它在MVC中的单个应用程序中,并避免IFrame
非常感谢你的帮助!!
编辑:我发现了一个适合我的解决方案.我没有使用RAZOR视图,而是使用了ASPX视图,该视图在工具箱中包含Crystal Reports Viewer Tool.为了使它变量我使用了ViewBag.
控制器代码:
[HttpGet]
public ActionResult Viewer(string Path)
{
var sessionID = Session.SessionID;
ViewBag.Path = newPath;
return View();
}
Run Code Online (Sandbox Code Playgroud)
ASPX查看代码:
<% Report.Report.FileName = ViewBag.Path; %>
<CR:CrystalReportViewer ID="Viewer" runat="server" AutoDataBind="True" GroupTreeImagesFolderUrl="" Height="100%" ReportSourceID="Report" ToolPanelWidth="200px" Width="100%" />
<CR:CrystalReportSource ID="Report" runat="server">
<Report></Report>
</CR:CrystalReportSource>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |