我是 Crystal 报告的新手。我按照这个链接设计了 Crystal 报告 Crystal Report with SQL Stored Procedure Parameter and Visual Studio
实际上,我需要将不同的 ID(SP 的输入值)传递给与 Crystal 报表连接的 SP。
这是我将 ID 传递给 Crystal 报告的代码:
protected void Button1_Click(object sender, EventArgs e)
{
string QuotationID = ViewState["QUOTATION_ID"].ToString();
ReportDocument reportDocument = new ReportDocument();
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@id";
paramDiscreteValue.Value = QuotationID;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
string reportPath = Server.MapPath("~/CrystalReport.rpt");
reportDocument.Load(reportPath);
CrystalReportViewer1.ReportSource = reportDocument;
}
但是当我点击按钮时,它会询问 ID ......
最佳答案
要在 Crystal 上设置参数,我总是这样做:
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(reportPath);
reportDocument.SetParameterValue("@id", QuotationID);
如果您想将报告转换为 pdf:
var exportOptions = reportDocument.ExportOptions;
exportOptions.ExportDestinationType = ExportDestinationType.NoDestination;
exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
var req = new ExportRequestContext {ExportInfo = exportOptions};
var stream = reportDocument.FormatEngine.ExportToStream(req);
这会返回一个可以从 aspx 页面打开的文件流。
关于c# - 在 asp.net 中通过 C# 将参数传递给 CRYSTAL REPORT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19838307/