c# - subinformes - pasar parametros a subreportes crystal report
Cómo enviar parámetros a Subreport en Crystal Reports (2)
Finalmente después de muchos rastros, lo he solucionado. Puede ser que esto sea útil para otros. He usado el mismo nombre de parámetro para Main y SubReport, usado debajo del código para establecer su parámetro
objReportDocument.SetParameterValue("@QuoteID", ValQuoteID,objReportDocument.Subreports[0].Name.ToString());
Usando VS 2008.
Tengo dos procedimientos almacenados, uno utilizado para obtener datos para el informe principal y otro para el informe secundario, y ambos SP usan el mismo parámetro QuoteID.
He enviado el parámetro al informe principal usando ReportDocument. Pero no sé cómo enviar parámetros a SubReport.
Intenté muchas maneras diferentes usando el método setparameter del reportdocument que también toma el nombre del subreport como argumento. Pero no lo hizo.
A continuación está el código que he usado
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);
}
Enviar parámetro a Subinforme
//objReportDocument.Subreports[Application.StartupPath + @"/BatchSubReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID);
//objReportDocument.Subreports["BatchReport.rpt"].SetParameterValue("@QuoteID", ValQuoteID);
////objReportDocument.SetParameterValue("@QuoteID", ValQuoteID,"BatchReport.rpt);
nada funcionó. Ya he perdido dos días en esto. [SD_SalesOrderReport;1]
SP principal y [SD_GetBatchReportDetails;1]
subinforme SP.
Sería genial si alguien puede proporcionar una solución para esto. Si se realizan algunos cambios en el diseño, comparta imágenes. Gracias.
Bueno, esto es realmente útil para mí, ya que mi problema se ha resuelto con el siguiente código.
rd.SetParameterValue("TotalVisits", totalVisits, rd.Subreports[0].Name.ToString());
rd.SetParameterValue("GrandTotal", grandTotalPaymentType, rd.Subreports[1].Name.ToString());