Tôi đã cố gắng làm việc này trong một thời gian và tất cả mã ví dụ mà tôi thấy không hoàn toàn làm những gì tôi đang làm.Truyền tham số cho các báo cáo tinh thể trong C#
Tôi có một chương trình trả về bản pdf của báo cáo mà tôi chuyển một bảng dữ liệu đến. Điều này làm việc tốt, ngoại trừ tôi muốn vượt qua nó một vài thông số khác (phạm vi ngày của bảng, số liệu thống kê vv) và tôi chỉ không thể làm cho nó hoạt động. Mã của tôi về cơ bản trông như thế này.
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myDataReport.Load(@"C:\Layouts\Report.rpt");
ParameterField myParam = new ParameterField();
ParameterDiscreteValue myDiscreteValue = new ParameterDiscreteValue();
myParam.ParameterFieldName = "MyParameter";
myDiscreteValue.Value = "Hello";
myParam.CurrentValues.Add(myDiscreteValue);
myDataReport.ParameterFields.Add(myParam);
myDataReport.SetDataSource(myDataTable);
Stream returnData = myDataReport.ExportToStream(PortableDocFormat);
myDataReport.Close();
return returnData;
Tôi đã thêm trường tham số trong tài liệu rpt trong tinh thể, tôi có phải thay đổi bất kỳ thứ gì trong tệp xsd trong C# hay tôi thiếu thứ gì đó hoàn toàn khác?
Rất cám ơn, Andy.
Đúng vậy! Tôi nghĩ rằng tôi đã thử dòng đó trước đây, nhưng tôi đã đặt nguồn dữ liệu ở vị trí không chính xác như bạn đã chỉ ra. Hoạt động tích cực ngay bây giờ, cảm ơn! –
@Andrew. Bạn có thể vui lòng cho tôi biết nơi bạn đã thực hiện cuộc gọi đến dataSource không? – Unlimited071
Đặt SetParameterValue SAU sau khi mã hóa asignation – Apocatastasis