找回密码
 立即注册

QQ登录

只需一步,快速开始

15942349477

金牌服务用户

6

主题

7

帖子

114

积分

金牌服务用户

积分
114

微信认证勋章

15942349477
金牌服务用户   /  发表于:2019-12-23 15:21  /   查看:3256  /  回复:1
1金币
本帖最后由 15942349477 于 2019-12-23 15:32 编辑

  使用的是如下代码:第一张是查询界面  第二张是导出的excle文件 内容~ 明明查询界面有数据 为何导出以后只有字段名  数据没了
                      // Provide the page report you want to render.
                        GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(System.IO.Directory.GetCurrentDirectory() + "\\Rdlx\\" + Menuid));
                        GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
                        // Create an output directory
                        System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"E:\Excle");
                        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));
                        reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

1 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2019-12-23 16:35:59
沙发
你好,你的报表是参数报表是吧!这是由于你导出的时候没有吧对应的报表数据给在报表展示导致的。
你需要先顶一个 报表的全局变量 Report,然后再导出,具体可以参考下这代码:public GrapeCity.ActiveReports.PageReport Report;
  1.    public GrapeCity.ActiveReports.PageReport Report;
  2.         public Main()
  3.         {         
  4.             InitializeComponent();
  5.             Report = new GrapeCity.ActiveReports.PageReport(new FileInfo(@"多条件级联模糊过滤.rdlx"));
  6.             //Report.Report.ReportParameters[0].DefaultValue.Values.Add("15");
  7.             //Report.Document.LocateDataSource += new LocateDataSourceEventHandler(LocateData);
  8.             viewer1.LoadDocument(Report.Document);        
  9.             this.viewer1.Sidebar.SelectedIndex = 3;
  10.             this.viewer1.Sidebar.Visible = true;         
  11.         }

  12.         public void LocateData(object sender, LocateDataSourceEventArgs args)
  13.         {
  14.             #region
  15.             if (args.DataSet.Query.DataSourceName == "DataSource1")
  16.             {
  17.                 if (args.DataSet.Name == "DataSet1")
  18.                 {
  19.                     var name = args.Parameters[0].Value.ToString();
  20.                     List<FormData> data = new List<FormData>();
  21.                     for (int i = 1; i <= 3; i++)
  22.                     {
  23.                         for (int j = 1; j <= 5; j++)
  24.                         {
  25.                             for (int k = 1; k <= 2; k++)
  26.                             {
  27.                                 data.Add(new FormData()
  28.                                 {
  29.                                     Main = i + "CM主控制器",
  30.                                     Sub = "T-80" + i + j + "子控制器",
  31.                                     Variable = "T-80" + i + j + k + ".PV",
  32.                                     Type = "CV投用情况",
  33.                                     Active = 0 + (i + j + k) % 2,
  34.                                     Value = (95 - i / 10.0 + j / 10.0 + k / 100.0) / 100.0
  35.                                 });
  36.                             }
  37.                         }
  38.                     }
  39.                     args.Data = data;
  40.                 }
  41.             }
  42.             #endregion
  43.             #region
  44.             if (args.DataSet.Query.DataSourceName == "DataSource2")
  45.             {
  46.                 if (args.DataSet.Name == "DataSet2")
  47.                 {
  48.                     List<TimeInfo> info = new List<TimeInfo>();
  49.                     info.Add(new TimeInfo() { Type = "开始时间", Value = Convert.ToDateTime("22/08/2017 09:00:00") });
  50.                     info.Add(new TimeInfo() { Type = "结束时间", Value = Convert.ToDateTime("22/08/2017 10:00:00") });
  51.                     info.Add(new TimeInfo() { Type = "CV投用指标", Value = 0.95 });
  52.                     args.Data = info;
  53.                 }
  54.             }
  55.             #endregion
  56.             #region
  57.             if (args.DataSet.Query.DataSourceName == "DataSource3")
  58.             {
  59.                 if (args.DataSet.Name == "DataSet3")
  60.                 {
  61.                     List<Operate> operate = new List<Operate>();
  62.                     operate.Add(new Operate() { Number = 1, Type = "SVCTL61", Count = 838 });
  63.                     operate.Add(new Operate() { Number = 2, Type = "SVCTL64", Count = 226 });
  64.                     operate.Add(new Operate() { Number = 3, Type = "SVCTL23", Count = 222 });
  65.                     operate.Add(new Operate() { Number = 4, Type = "SVCTL55", Count = 37 });
  66.                     operate.Add(new Operate() { Number = 5, Type = "SVCTL63", Count = 35 });
  67.                     operate.Add(new Operate() { Number = 6, Type = "SVCTL01", Count = 30 });
  68.                     operate.Add(new Operate() { Number = 7, Type = "SVCTL14", Count = 29 });
  69.                     operate.Add(new Operate() { Number = 8, Type = "SVCTL25", Count = 27 });
  70.                     operate.Add(new Operate() { Number = 9, Type = "SVCTL02", Count = 26 });
  71.                     operate.Add(new Operate() { Number = 10, Type = "SVCTL54", Count = 20 });
  72.                     operate.Add(new Operate() { Number = 11, Type = "其他", Count = 969 });
  73.                     args.Data = operate;
  74.                 }
  75.             }
  76.             #endregion

  77.         }
  78.         

  79.         private void button1_Click(object sender, EventArgs e)
  80.         {
  81.             System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyPDF");
  82.             outputDirectory.Create();

  83.             // Provide settings for your rendering output.
  84.             GrapeCity.ActiveReports.Export.Pdf.Page.Settings pdfSetting = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();

  85.             // Reduce the report size and report generation time.
  86.             pdfSetting.OptimizeStatic = true;

  87.             // Set the rendering extension and render the report.
  88.             GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension pdfRenderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
  89.             GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

  90.             // Overwrite output file if it already exists
  91.             outputProvider.OverwriteOutputFile = true;

  92.             Report.Document.Render(pdfRenderingExtension, outputProvider, pdfSetting);

  93.         }
复制代码



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部