本地报告处理期间发生错误 [英] An error occurred during local report processing
本文介绍了本地报告处理期间发生错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在窗口服务中将报告呈现为PDF。虽然调用函数是正确的getReportFrmServer
我的代码是
DailyReportFile = getReportFrmServer(reportName,param);
public byte [] getReportFrmServer( string report, string [] param)
{
if (报告== DailyAttendanceReport)
{
列表< ReportParameter> myParams = new 列表< ReportParameter>();
myParams.Add( new ReportParameter( dailyDate,param [ 0 ]));
ReportParameter p = new ReportParameter( 承包商名称跨度>);
if (param [ 1 ] == )
{
p.Values.Add( null );
myParams.Add(p);
}
else
{
p.Values.Add(param [ 1 跨度>]);
myParams.Add(p);
}
ReportParameter q = new ReportParameter( 网站名称跨度>);
if (param [ 2 ] == )
{
q.Values.Add( null );
myParams.Add(q);
}
else
{
q.Values.Add(param [ 2 跨度>]);
myParams.Add(q);
}
此 .reportViewer1.ProcessingMode = ProcessingMode.Local;
this .reportViewer1.LocalReport.DataSources.Clear();
ReportDataSource DS = new ReportDataSource( DailyAttendanceReport ,fillrel(param [ 0 ],param [ 1 ],param [ 2 跨度>]));
reportViewer1.LocalReport.DataSources.Add(DS);
此 .reportViewer1.LocalReport.ReportPath = @ C:\ReportSource\DailyAttendanceReport.rdl跨度>;
this .reportViewer1.LocalReport.SetParameters(myParams);
byte [] returnValue = null ;
string format = PDF跨度>;
string deviceinfo = ;
string mimeType = ;
string encoding = ;
string extension = pdf跨度>;
string [] streams = null ;
警告[] warnings = null ;
returnValue = reportViewer1.LocalReport.Render(格式,deviceinfo, out mimeType, out 编码, out 扩展名, out streams, out 警告); // 异常就在这里
reportViewer1.LocalReport.Refresh();
}
public DataTable fillrel( string date, string name, string site)
{
string query = 从IA3000SDB.dbo.Util中选择*(@ dailyDate,@ contractorname,@ sitename)跨度>;
DataSet dataset = new DataSet();
尝试
{
con.Open();
cmd = new SqlCommand(query,con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue( @ dailyDate,date);
cmd.Parameters.AddWithValue( @ contractorname,name);
cmd.Parameters.AddWithValue( @ sitename,site);
ad = new SqlDataAdapter(cmd);
ad.Fill(dataset);
if (dataset.Tables [ 0 ]。Rows.Count > 0 )
{
return dataset.Tables [ 0 ];
}
其他
{
返回 空跨度>;
}
}
catch (例外情况)
{
return null ;
}
}
InnerException是{本地错误报告处理。}
异常是{本地报告处理期间发生错误。}
解决方案
发生 错误 local report 处理跨度>。
定义 < span class =code-leadattribute> report 'Main Report' 无效。
报告 定义 < span class =code-leadattribute> 不 有效。 详细信息: 报告 定义 无效 target 命名空间 'http: // schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'无法升级。 跨度>
I want to render a report as PDF in window service.While calling is correct of function getReportFrmServer
My code is
DailyReportFile = getReportFrmServer(reportName, param);
public byte[] getReportFrmServer(string report, string[] param)
{
if (report == "DailyAttendanceReport")
{
List<ReportParameter> myParams = new List<ReportParameter>();
myParams.Add(new ReportParameter("dailyDate", param[0]));
ReportParameter p = new ReportParameter("contractorname");
if (param[1] == "")
{
p.Values.Add(null);
myParams.Add(p);
}
else
{
p.Values.Add(param[1]);
myParams.Add(p);
}
ReportParameter q = new ReportParameter("sitename");
if (param[2] == "")
{
q.Values.Add(null);
myParams.Add(q);
}
else
{
q.Values.Add(param[2]);
myParams.Add(q);
}
this.reportViewer1.ProcessingMode = ProcessingMode.Local;
this.reportViewer1.LocalReport.DataSources.Clear();
ReportDataSource DS = new ReportDataSource("DailyAttendanceReport", fillrel(param[0], param[1], param[2]));
reportViewer1.LocalReport.DataSources.Add(DS);
this.reportViewer1.LocalReport.ReportPath = @"c:\ReportSource\DailyAttendanceReport.rdl";
this.reportViewer1.LocalReport.SetParameters(myParams);
byte[] returnValue = null;
string format = "PDF";
string deviceinfo = "";
string mimeType = "";
string encoding = "";
string extension = "pdf";
string[] streams = null;
Warning[] warnings = null;
returnValue = reportViewer1.LocalReport.Render(format, deviceinfo, out mimeType, out encoding, out extension, out streams, out warnings);// Exception is here
reportViewer1.LocalReport.Refresh();
}
public DataTable fillrel(string date,string name,string site)
{
string query = "select * from IA3000SDB.dbo.Util(@dailyDate,@contractorname,@sitename)";
DataSet dataset = new DataSet();
try
{
con.Open();
cmd = new SqlCommand(query, con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@dailyDate", date);
cmd.Parameters.AddWithValue("@contractorname", name);
cmd.Parameters.AddWithValue("@sitename", site);
ad = new SqlDataAdapter(cmd);
ad.Fill(dataset);
if (dataset.Tables[0].Rows.Count > 0)
{
return dataset.Tables[0];
}
else
{
return null;
}
}
catch (Exception ex)
{
return null;
}
}
InnerException is {"An error occurred during local report processing."}
Exception is {"An error occurred during local report processing."}
解决方案
An error occurred during local report processing. The definition of the report 'Main Report' is invalid. The report definition is not valid. Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded.
这篇关于本地报告处理期间发生错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文