5

VS 2008 を使用しています。

2 つのストアド プロシージャがあり、1 つはメイン レポートのデータを取得するために使用され、もう 1 つはサブ レポートのデータを取得するために使用され、両方の SP が同じパラメータ QuoteID を使用します。

ReportDocument を使用してメイン レポートにパラメーターを送信しました。しかし、サブレポートにパラメーターを送信する方法がわかりません。

サブレポート名も引数として取る reportdocument の 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);

何もうまくいきませんでした.私はすでにこれで2日を無駄にしています. [SD_SalesOrderReport;1]メイン SP と[SD_GetBatchReportDetails;1]サブレポート SP。

誰かがこれに対する解決策を提供できれば素晴らしいと思います.設計に変更が加えられる場合は、画像を共有してください.ありがとう.

4

2 に答える 2

13

最後に多くのトレイルの後で、私はそれを解決しました。これは他の人に役立つかもしれません。私はメインとサブレポートに同じパラメータ名を使用し、そのパラメータを設定するために以下のコードを使用しました

objReportDocument.SetParameterValue("@QuoteID", ValQuoteID,objReportDocument.Subreports[0].Name.ToString());
于 2013-02-23T06:42:57.143 に答える
4

私の問題は次のコードで解決されたので、これは私にとって本当に役に立ちます。

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

rd.SetParameterValue("GrandTotal", grandTotalPaymentType, rd.Subreports[1].Name.ToString());
于 2013-06-04T10:07:10.787 に答える