sharepoint 2010 使用水晶报表的完全方案。
来源:互联网 发布:商家怎么投诉淘宝小二 编辑:程序博客网 时间:2024/06/08 03:48
出于对水晶热爱和熟悉
在sharepoint的项目中我依然选择了使用水晶报表,设想之中肯定会有很多困难。出于对VS和sharepoint都很熟的自信,我也提前做预案,废话不说开始。
在水晶报表嵌入sharepoint 如下是第一问题需要安装 SAP水晶报表的组件。
第二个问题,报表文件名为空,则直接修改代码
解决方法
CrystalReportSource1.Report.FileName = getFile; //CrystalReportSource1.ReportDocument.Load("/_layouts/F_WPart_CR/" + RName); CrystalReportSource1.ReportDocument.Load(getFile);
在webpart中开发部署成功了,问题随之而来。
首先要在sharepoint目录下增加 aspnet_client\system_web\2_0_50727\crystalreportviewers13
aspnet_client\system_web\4_0_30319\crystalreportviewers13
以下问题一,空白,
解决方案:
步骤一在Sharepoint项目的Layout对应目录下创建一个CrystalImageHandler.aspx
CrystalImageHandler.aspx内容如下
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %><%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %><%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %><%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %><%@ Register Assembly="CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %><%@ Register Assembly="CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %><%@ Import Namespace="Microsoft.SharePoint" %><%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CrystalImageHandler.aspx.cs" Inherits="StarCompanySpSolutions.Layouts.Solutions.CrystalImageHandler" DynamicMasterPageFile="~masterurl/default.master" %><asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server"></asp:Content><asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"></asp:Content><asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">Application Page</asp:Content><asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >My Application Page</asp:Content>
CrystalImageHandler.aspx.cs内容如下
public partial class CrystalImageHandler : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // get the Crystal Reports temporary file name String strtempImagePath = Request.QueryString["dynamicimage"]; if (strtempImagePath != null) { // send the temporary image file SPWeb thissite = SPControl.GetContextWeb(Context); String strsitename = thissite.Site.HostName; int iport = thissite.Site.Port; String strport = Convert.ToString(iport); Response.TransmitFile(@"C:\WINDOWS\Temp\cr_tmp_image__" + strsitename + strport + "\\" + strtempImagePath); } }}
步骤二:修改Webconfig文件。修改你自己的Sharepoint网站的Webconfig文件
在其<system.web>的<httpHandlers>节中加入如下内容:
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
<add verb="*" path="GenerateImage.ashx" type="GenerateDynamicImage" />
</httpHandlers>
在<system.webServer>的<handlers />节中加入如下内容:
<add name="CrystalImageHandler.aspx" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
</handlers>
我做了以上操作没有成功,项目周期时间不多了,不允许我再做研究。出大招预案一启用,
在sharepoint webpart项目中的layouts 创建ApplicationPage1.aspx
aspx代码
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"> 请选项报表<asp:DropDownList ID="CRDDL" runat="server"> <asp:ListItem Value="crAgeStructure.rpt">年龄结构报表</asp:ListItem> <asp:ListItem Value="crEduStructure.rpt">学历结构报表</asp:ListItem> <asp:ListItem Value="crPersonStructure.rpt">人员结构</asp:ListItem> <asp:ListItem Value="crStaffIncrease.rpt">新增职工报表</asp:ListItem> <asp:ListItem Value="crStaffReduce.rpt">职工流失率</asp:ListItem> <asp:ListItem>开发中</asp:ListItem> </asp:DropDownList> <CR:CrystalReportSource ID="CrystalReportSource1" runat="server"> </CR:CrystalReportSource> <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" /></asp:Content>
CS代码
string getFile = Server.MapPath("/_layouts/F_WPart_CR/" + RName); CrystalReportSource1.Report.FileName = getFile; //CrystalReportSource1.ReportDocument.Load("/_layouts/F_WPart_CR/" + RName); CrystalReportSource1.ReportDocument.Load(getFile); CrystalReportViewer1.ReportSource = CrystalReportSource1; CrystalReportViewer1.DataBind();
去iis sharepoint 80 下找到虚拟目录运行
怎么样看上去简单吧,用了我3个日日夜夜。还有很多方案没有测试,要结项了。
记住重要一点哦,水晶报表文件发到layouts文件下!
热爱sharepoint 和BI 吗? 可以一块聊聊
qq交流群:212099235
问题二,图表不显示
- sharepoint 2010 使用水晶报表的完全方案。
- 水晶报表的使用:
- 水晶报表的使用
- 水晶报表的使用
- 水晶报表的使用技巧
- 水晶报表使用的例子
- 水晶报表的简单使用
- 水晶报表的简单使用
- .net水晶报表的使用
- 水晶报表的使用技巧
- 有关水晶报表的使用
- 水晶报表的使用【视频】
- vs2005水晶报表的使用
- vs2008 水晶报表的使用
- 水晶报表(子报表的使用)
- [水晶报表]水晶报表的使用经验和资料总结
- 水晶报表图片动态加载的另一种简单方案
- ASP.NET中水晶报表的使用
- TypeError: this constructor takes no arguments
- LeetCode - Best Time to Buy and Sell Stock II
- Linux下的socket建立
- 我好想出去玩啊 只是……
- android开发文件转载
- sharepoint 2010 使用水晶报表的完全方案。
- java线程的join,wait,notify深入理解
- android.transition
- 蓝桥杯初赛试题4
- three.js学习点滴(2)— 模型导入
- Android各国语言编码
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- (一)XMPP 即时通信 MYSQL安装 IOS
- 刚才我写了一个 怎么没查看到呐