问题描述
在 asp net core mvc 中使用调试模式时,我得到 Index is out of the array 错误,但在非调试模式(Shift+F5)下运行时没问题。
这里是错误描述的详细信息:
处理请求时发生未处理的异常。 IndexOutOfRangeException: 索引超出数组范围。 AspNetCore.ReportingServices.RdlExpressions.ExpressionHostObjectModel.RemoteArrayWrapper.get_Item(int 索引)
ReportProcessingException:报告中发生意外错误 加工。指数数组的边界之外。 AspNetCore.ReportingServices.ReportProcessing.Execution.RenderReport.Execute(IRenderingExtension 新渲染器)
LocalProcessingException:本地报告时出错 处理。;报表处理中发生意外错误。指数 超出了数组的范围。 AspNetCore.Reporting.InternalLocalReport.InternalRender(字符串格式, bool allowInternalRenderers,字符串 deviceInfo,PageCountMode pageCountMode,CreateAndRegisterStream createStreamCallback,out 警告[]警告)
这里是我导出的 pdf 代码:
int extension = 1;
var path = $"{this._webHostEnvironment.WebRootPath}\\Report\\RptDO2.rdlc";
Dictionary<string,string> parameters = new Dictionary<string,string>();
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding.GetEncoding("windows-1252");
parameters.Add("txtto",inv.Quotation.CustomerContact.Customer.CompanyName);
parameters.Add("txtaddress_detail",inv.Quotation.CustomerContact.Customer.Address1 + "\r\n"
+ inv.Quotation.CustomerContact.Customer.Address2 + "- "
+ inv.Quotation.CustomerContact.Customer.City + "- "
+ inv.Quotation.CustomerContact.Customer.State + " ("
+ inv.Quotation.CustomerContact.Customer.Zip + ")\r\n"
+ "Phone : " + inv.Quotation.CustomerContact.Customer.PhoneNumber
+ ",Email : " + inv.Quotation.CustomerContact.Customer.Email);
parameters.Add("txtdo_no",inv.Id.Replace("INV","DO"));
parameters.Add("txtdate",inv.Quotation.CreatedAt.ToShortDateString());
parameters.Add("txtrefnum",inv.QuotationId);
parameters.Add("txtfrom",us.FirstName + " " + us.LastName);
parameters.Add("txtUP",TextUp);
parameters.Add("kop_nama",c.CpName);
parameters.Add("kop_alamat",c.CpStreetAddress);
parameters.Add("kop_alamat2",c.CpCity + " " + c.CpState + " (" + c.CpZip + ")");
parameters.Add("kop_contact",c.CpPhone);
parameters.Add("kop_email",c.CpEmail);
parameters.Add("kop_logo",Convert.ToBase64String(c.CpFoto));
parameters.Add("txtjabatan",us.Designation);
parameters.Add("txtPrintedBy",lgnuser.FirstName + " " + lgnuser.LastName);
List<vwQuotationDetail> vwQuotationDetails = new List<vwQuotationDetail>();
foreach (TblquotationDetail quos in inv.Quotation.TblquotationDetail.OrderBy(o => o.Id))
{
vwQuotationDetail quotationDetail = new vwQuotationDetail
{
id = quos.Id,quotation_id = quos.QuotationId,order_number = quos.OrderNumber,product_name = quos.Product.ProductName,product_id = quos.ProductId,product_comments = string.IsNullOrEmpty(quos.ProductComments) ? "" : quos.ProductComments,quantity = quos.Quantity,unit_price = quos.UnitPrice,unit_name = quos.Product.Unit.UnitName,sub_total = quos.SubTotal,product_desc = quos.Product.ProductDesc,category_name = quos.Product.Category.CategoryName
};
vwQuotationDetails.Add(quotationDetail);
}
LocalReport localReport = new LocalReport(path);
localReport.AddDataSource("dsDO",vwQuotationDetails.ToArray());
//var result = localReport.Execute(RenderType.Pdf,extension,parameters,mimtype);
var result = localReport.Execute(RenderType.Pdf,parameters);
return File(result.MainStream,"application/pdf");
任何建议将不胜感激,提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)