无法将类型为“CrystalDecisions.Shared.ParameterFields”的对象强制转换为类型“CrystalDecisions.Share

rockywu 2016-10-17 02:58:28

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ErpExtReport.aspx.cs" Inherits="ErpPrintService.ErpExtReport" %>

<%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ERP报表扩展</title>

</head>
<body>
<form id="form1" runat="server">
<div>
<CR:CrystalReportViewer ID="crv" runat="server" AutoDataBind="True"
DisplayGroupTree="False" EnableDatabaseLogonPrompt="False"
ReuseParameterValuesOnRefresh="True" PrintMode="Pdf" />
<CR:CrystalReportSource ID="crs" runat="server" EnableCaching="False">
</CR:CrystalReportSource>
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Data.OracleClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;


namespace ErpPrintService
{
public partial class ErpExtReport : System.Web.UI.Page
{
string rptParth = "", resultKey = "", parameters="";
protected void Page_Load(object sender, EventArgs e)
{
loadRptInfo();
}

private void loadRptInfo()
{
resultKey = Request.QueryString["ResultKey"];
if (resultKey != null)
{
string strSQL = @"SELECT PARAMETERS,FILE_NAME FROM DJ_QUICK_REPORT_ANALYSE_JOIN WHERE QUERY_NO=:ResultKey";
OracleDataReader odr = OracleHelper.ExecuteReader(CommandType.Text, strSQL, new OracleParameter(":ResultKey", resultKey));
if (odr.Read())
{
parameters = odr["parameters"].ToString();
rptParth = odr["file_name"].ToString();
}
odr.Close();
loadPullRpt(rptParth, parameters);
}
}

private void loadPullRpt(string rptParth, string parameters)
{
// crs.ReportDocument.Load(Server.MapPath(rptParth));
crs.ReportDocument.Load(@"\\192.168.0.62\CrystalRpt\材料发料.rpt");//绝对路径
Utility.SystemSet.SetDBLogonForReport(crs.ReportDocument);
crv.ReportSource = crs;
this.crv.ParameterFieldInfo = GetParameterField(parameters);
crv.DataBind();
}
//参数
private ParameterFields GetParameterField(string parameters)
{
ParameterFields pfs = new ParameterFields();

string parameter = parameters;
string paraNameAndValue = "", paraName = "", paraValue = "";
while (parameter.IndexOf("^") > 0)
{
paraNameAndValue = parameter.Substring(0, parameter.IndexOf("^"));

paraName = paraNameAndValue.Substring(0, paraNameAndValue.IndexOf("="));
paraValue = paraNameAndValue.Substring(paraNameAndValue.IndexOf("=") + 1);
parameter = parameter.Substring(parameter.IndexOf("^") + 1);

pfs.Add(this.CreateParameterField(paraName, paraValue));
}

return pfs;
}

private ParameterField CreateParameterField(string FieldName, object FieldValue)
{
ParameterField field = new ParameterField();
ParameterDiscreteValue pvalue = new ParameterDiscreteValue();

pvalue.Value = FieldValue;
field.Name = FieldName;
field.CurrentValues.Add(pvalue);
//返回参数字段
return field;
}
}
}

报错如图
...全文
683 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧