报表钻取后,然后出下述错误。
[img]file:///C:/新建位图图像.bmp[/img]
using System;
using System.Data;
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 Sinopec.EAI.ReportGetRpt;
public partial class ReportGZSHEAI_ERP_ERP_HTQKB : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// this.lblReportName.Text = Request.QueryString["reportName"].ToString();
string reportKind = "";
if (!IsPostBack)
{
this.startTime.SelectedDate = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString("0#") + "-01";
if (DateTime.Parse(startTime.SelectedDate) == DateTime.Today)
{
this.endTime.SelectedDate = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString("0#") + "-01";
}
else
{
this.endTime.SelectedDate = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
}
//初始化外部物料组
string strWbwlz = "SELECT DISTINCT ARKTX,matnr FROM BTS_ERP_ZHTQK";
DBDataSource db = new DBDataSource();
DataTable dt = new DataTable();
dt = db.GetDateTable(strWbwlz);
this.ddlWbwlz.DataSource = dt;
this.ddlWbwlz.DataTextField = "ARKTX";
this.ddlWbwlz.DataValueField = "ARKTX";
this.ddlWbwlz.DataBind();
ListItem item = new ListItem();
item.Text = "全部";
item.Value = "";
this.ddlWbwlz.Items.Insert(0, item);
// reportKind = Request.QueryString["reportKind"].ToString();
reportKind = "ERP_HTQKB";
ConfigReportServer(reportKind);
QueryCmd();
}
}
/// <summary>
/// 用来完成报表钻取后返回第一个报表的函数
/// </summary>
private void GetBack()
{
if (reportViewDes.ServerReport.IsDrillthroughReport)
{
reportViewDes.PerformBack();
GetBack();
}
}
/// <summary>
/// 配置报表服务
/// </summary>
private void ConfigReportServer(string reportKind)
{
// Set the processing mode for the ReportViewer to Remote 取门户域名地址或报表管理器的服务器地址
reportViewDes.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
Microsoft.Reporting.WebForms.ServerReport serverReport = reportViewDes.ServerReport;
string reportingServer = "";
string uriString = "";
reportingServer = System.Configuration.ConfigurationManager.AppSettings["ReportServer"];
string reportFolder = "";
string isMoss = "";
isMoss = System.Configuration.ConfigurationManager.AppSettings["IsMoss"];//
reportFolder = System.Configuration.ConfigurationManager.AppSettings["ReportFolder"];//文档库地址或报表管理器的文件夹名称
uriString = "http://" + reportingServer + "/reportserver";//拼服务器地址
//设置报表服务
serverReport.ReportServerUrl = new Uri(uriString);
if (isMoss == "0")
{
serverReport.ReportPath = reportFolder + reportKind;
}
else
{
serverReport.ReportPath = reportFolder + reportKind + ".rdl";
}
}
/// <summary>
/// 设置报表参数并且开始查询
/// </summary>
private void QueryCmd()
{
string strStartTime = "";
string strEndTime = "";
string strArktx = "";
try
{
strStartTime = this.startTime.SelectedDate; ;
strEndTime = this.endTime.SelectedDate;
strArktx = this.ddlWbwlz.SelectedValue;
//设置参数
Microsoft.Reporting.WebForms.ReportParameter startTime = new Microsoft.Reporting.WebForms.ReportParameter();
startTime.Name = "guebg";
startTime.Values.Add(strStartTime);
// Set the report parameters for the report
reportViewDes.ServerReport.SetParameters(
new Microsoft.Reporting.WebForms.ReportParameter[] { startTime });
// Create the sales order number report parameter
Microsoft.Reporting.WebForms.ReportParameter endTime = new Microsoft.Reporting.WebForms.ReportParameter();
endTime.Name = "bstdk";
endTime.Values.Add(strEndTime);
// Set the report parameters for the report
reportViewDes.ServerReport.SetParameters(
new Microsoft.Reporting.WebForms.ReportParameter[] { endTime });
// Create the sales order number report parameter
Microsoft.Reporting.WebForms.ReportParameter Arktx = new Microsoft.Reporting.WebForms.ReportParameter();
Arktx.Name = "arktx";
Arktx.Values.Add(strArktx);
// Set the report parameters for the report
reportViewDes.ServerReport.SetParameters(
new Microsoft.Reporting.WebForms.ReportParameter[] { Arktx });
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
//绑定报表前,先判断是否发生钻取
GetBack();
QueryCmd();
}
}