Csharp/C#教程:如何将参数发送到Crystal Reports中的子报表分享


如何将参数发送到Crystal Reports中的子报表

使用VS 2008。

我有两个存储过程,一个用于获取主报表的数据,另一个用于Sub报表,两个SP都使用相同的参数QuoteID。

我使用ReportDocument将参数发送到主报表。 但我不知道如何将参数发送到SubReport。

我尝试了很多使用reportdocument的setparameter方法的diff方法,该方法也将子报告名称作为参数。但它没有。

以下是我使用过的代码

string Type = gvQuotationDetails.Rows[QuoteIndex].Cells["Type"].EditedFormattedValue.ToString(); FilePath = ConfigurationManager.AppSettings["EMP_IMG_PATH"].ToString() + "\" + ValQuoteID.ToString() + ".pdf"; DeleteExistingFile(FilePath); try { AccountsPayableMaster objAPM = new AccountsPayableMaster(); QuotationReport obj = new QuotationReport(); objReportDocument.Load(Application.StartupPath + @"rptQuotationReport.rpt"); obj.crysQuotationReport.LogOnInfo = objAPM.ConnectionDetails("SD_SalesOrderReport;1"); obj.crysQuotationReport.LogOnInfo = objAPM.ConnectionDetails("SD_GetBatchReportDetails;1"); obj.crysQuotationReport.ReportSource = objReportDocument; objReportDocument.SetParameterValue("@QuoteID", ValQuoteID); objReportDocument.SetParameterValue("Type", Type); //objReportDocument.Subreports[Application.StartupPath + @"BatchSubReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID); //objReportDocument.Subreports["BatchReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID); string[] Print = objAPM.GetPrintDetails(); SetPrintParameters(objReportDocument, Print); obj.Show(); objReportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, FilePath); } catch (Exception ex) { MessageBox.Show(ex.Message); } 

将参数发送到子报表

 //objReportDocument.Subreports[Application.StartupPath + @"BatchSubReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID); //objReportDocument.Subreports["BatchReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID); ////objReportDocument.SetParameterValue("@QuoteID", ValQuoteID,"BatchReport.rpt); 

什么都没有用。我已经浪费了两天时间。 [SD_SalesOrderReport;1]主SP和[SD_GetBatchReportDetails;1]子报告SP。

如果有人可以为此提供解决方案,那就太棒了。如果在设计上有一些变化,请分享图片。谢谢。

最后在很多路径之后,我已经解决了它。可能这会对其他人有所帮助。我使用了相同的参数Name for Main和SubReport,在代码下面用来设置它的参数

 objReportDocument.SetParameterValue("@QuoteID", ValQuoteID,objReportDocument.Subreports[0].Name.ToString()); 

嗯,这对我很有帮助,因为我的问题已经通过以下代码解决了。

上述就是C#学习教程:如何将参数发送到Crystal Reports中的子报表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 rd.SetParameterValue("TotalVisits", totalVisits, rd.Subreports[0].Name.ToString()); rd.SetParameterValue("GrandTotal", grandTotalPaymentType, rd.Subreports[1].Name.ToString()); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016362.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐