【问题标题】:How to send parameters to Subreport in Crystal Reports如何在水晶报表中向子报表发送参数
【发布时间】:2013-02-08 20:38:33
【问题描述】:

使用 VS 2008。

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

我已经使用 ReportDocument 向主报告发送参数。但我不知道如何向 SubReport 发送参数。

我使用报告文档的 setparameter 方法尝试了许多不同的方法,该方法也将子报告名称作为参数。但它没有。

下面是我用过的代码

    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。

如果有人可以为此提供解决方案,那就太好了。如果设计中有一些更改,请分享图片。谢谢。

【问题讨论】:

  • 经过大量的尝试,我终于解决了。可能这对其他人有帮助。我为 Main 和 SubReport 使用了相同的参数 Name,在下面的代码中使用了它的参数 objReportDocument.SetParameterValue ("@QuoteID", ValQuoteID,objReportDocument.Subreports[0].Name.ToString());

标签: c# crystal-reports crystal-reports-2008


【解决方案1】:

经过大量的尝试,我终于解决了。可能这对其他人有帮助。我为 Main 和 SubReport 使用了相同的参数 Name,使用下面的代码来设置它的参数

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

【讨论】:

  • 嗯,这应该是谷歌搜索“水晶报表设置参数值无效索引”时列出的第一件事
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多