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