lxkklxkk 发表于 2015-6-29 14:17:00

winform导出EXCEL报错

我是用的rdl用参数查询报表结果   导出的时候报错


还有我想 自己 设置路径和名字   


初学者   谢谢

lxkklxkk 发表于 2015-6-29 14:34:00

补充一下   就是想把查询的结果进行导出excel

frank.zhang 发表于 2015-6-29 15:20:00

您好,
根据报错的信息,您需要在导出之前,添加报表的参数。
您可以尝试一下:
_reportDef.Report.ReportParameters.DefaultValue.Values.Add(XXXX);

如果您的问题,没有解决,请上传能够重现这个问题的例子程序,我们可以帮您调试。

lxkklxkk 发表于 2015-6-29 15:31:00

您好文件太大了   不好上传

可以给个winform 用参数倒出的例子吗 ??


初学者但马上就要用   也不知道怎么改

frank.zhang 发表于 2015-6-29 16:36:00

您好,
由于制作例子程序需要时间,我明天中午之前给您例子程序。

lxkklxkk 发表于 2015-6-30 09:30:00

您好

万分感谢

frank.zhang 发表于 2015-6-30 10:53:00

您好,
程序详见附件。
      private void button1_Click(object sender, EventArgs e)
      {
            // Provide the page report you want to render.
            GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
            GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
            pageReport.Report.DataSources.DataSourceReference = "";
            pageReport.Report.DataSources.ConnectionProperties.DataProvider = "OLEDB";
            pageReport.Report.DataSources.ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", db_name);
            pageReport.Report.ReportParameters.DefaultValue.Values.Add(productId);
            // Create an output directory
            System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel");
            outputDirectory.Create();

            // Provide settings for your rendering output.
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
            excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
            GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

            //Set the rendering extension and render the report.
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
            GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
            pageDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());

      }


lxkklxkk 发表于 2015-6-30 12:56:00

您好感谢您
private String productId = "1";这个 是定值可不可以根据报表里面的参数去赋值

lxkklxkk 发表于 2015-6-30 13:02:00

补充一下   我的报表是用的设计师数据源   

可不可先把报表里面设置的参数传出来在把参数传进去这样就可以防止报错了

lxkklxkk 发表于 2015-6-30 13:11:00

您好   report.Report.ReportParameters.DefaultValue.Values.Add("2007-08-02"); 这个索引是代表第1个参数吗??
页: [1] 2
查看完整版本: winform导出EXCEL报错