muhuiru 发表于 2017-2-17 16:25:05

导出Excel第二个数据集内容不显示

这个预览报表传的数据集
这个是预览的结果

这个是到处excel传的数据集,调试时进入到了DataSet2

这个是Excel导出看到的结果,’处理意见及结果‘字体还变小了,第二个数据集内容不显示,这是不是不能传多个数据集


Lenka.Guo 发表于 2017-2-17 16:37:28

您用的是页面报表还是RDL 报表?

如果是页面报表就不能绑定多个数据集, 绑定多个数据集请使用RDL 报表。

muhuiru 发表于 2017-2-20 09:14:10

这是同一个报表 预览可以到处Excel就不行

Richard.Ma 发表于 2017-2-20 12:14:01

能否把报表模板等相关的文件发过来,我在这边看看是什么问题

muhuiru 发表于 2017-2-23 09:10:11

这是我的报表模板,客户在系统中预览并导出Excel

Lenka.Guo 发表于 2017-2-23 10:04:54

您导出Excel 的代码是什么?
我这边直接绑定数据源是可以导出成功的。

muhuiru 发表于 2017-2-23 13:20:08

//导出事件
      private void OK_Click(object sender, RoutedEventArgs e)
      {   
GrapeCity.ActiveReports.PageReport rpt;
            GrapeCity.ActiveReports.Document.PageDocument p = null;

            string _report_name = "陕西省国省干线及(农村)公路路政巡查记录.rdlx";
            rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(_report_name));
         
            p = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
            p.LocateDataSource += Rptd_LocateDataSource; //报表传入数据集
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(fileName);//导出文件到指定的路径下
            outputDirectory.Create();
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
            excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xlsx;
            excelSetting.OpenXmlStandard = GrapeCity.ActiveReports.Export.Excel.Page.OpenXmlStandard.Transitional;
            excelSetting.Pagination = true;
            excelSetting.MultiSheet = true;
            GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

            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(reportName));
            p.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
            CMessageBox.Show("导出成功!");
}

//报表传入数据集
      private void Rptd_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {
            if (args.DataSourceName == "DataSource1")
            {
                try
                {
                  if (reportName == "陕西省国省干线及(农村)公路路政巡查记录")
                  {
                        switch (args.DataSetName)
                        {
                            case "DataSet1":
                              #region 巡查内容
                              DataTable dtnewContent = new DataTable();
                              dtnewContent.Columns.Add("prowledQk_Content");

                              dsShiJian = new RIM.BLL.数据表_巡查情况及结果().GetModelList("FK_prowled_Id='" + _xcDataModel.prowled_Id + "'", " prowledQk_DateTime");
                              int i = 2;
                              foreach (RIM.Model.数据表_巡查情况及结果 row in dsShiJian)
                              {
                                    DataRow rownew = dtnewContent.NewRow();
                                    rownew["prowledQk_Content"] = i + "、" + row.prowledQk_Content.ToString();
                                    dtnewContent.Rows.Add(rownew);
                                    i++;
                              }
                              args.Data = dtnewContent;
                              #endregion
                              break;
                            case "DataSet2":
                              #region 巡查结果
                              RIM.BLL.数据表_巡查事件类型侵占路产BLL lucBLL = new RIM.BLL.数据表_巡查事件类型侵占路产BLL();
                              DataTable dtnew = new DataTable();
                              dtnew.Columns.Add("prowledQk_Jg");
                              if (dsShiJian == null)
                              {
                                    dsShiJian = new RIM.BLL.数据表_巡查情况及结果().GetModelList("FK_prowled_Id='" + _xcDataModel.prowled_Id + "'", " prowledQk_DateTime");
                              }

                              int i1 = 2;
                              foreach (RIM.Model.数据表_巡查情况及结果 row in dsShiJian)
                              {
                                    if (!string.IsNullOrEmpty(row.prowledQk_Jg))
                                    {
                                        DataRow rownew = dtnew.NewRow();
                                        rownew["prowledQk_Jg"] = "对" + i1 + "、" + row.prowledQk_Jg;
                                        dtnew.Rows.Add(rownew);

                                    }
                                    i1++;
                              }

                              DataRow rownew1 = dtnew.NewRow();
                              rownew1["prowledQk_Jg"] = _xcDataModel.prowled_Mak;
                              dtnew.Rows.Add(rownew1);

                              args.Data = dtnew;
                              #endregion
                              break;
                            case "DataSet3"://现场图片
                              #region 现场图片
                              DataTable dtnewImage = new DataTable();
                              dtnewImage.Columns.Add("imageId");
                              dtnewImage.Columns.Add("imageMaxPhotoName");
                              if (dsShiJian == null)
                              {
                                    dsShiJian = new RIM.BLL.数据表_巡查情况及结果().GetModelList("FK_prowled_Id='" + _xcDataModel.prowled_Id + "'", " prowledQk_DateTime");
                              }
                              int i3 = 2;
                              RIM.BLL.数据表_通用图片表BLL imagebll = new RIM.BLL.数据表_通用图片表BLL();
                              List<RIM.Model.数据表_通用图片表Model> imageModel;
                              foreach (RIM.Model.数据表_巡查情况及结果 row in dsShiJian)
                              {
                                    string strWhere = "imageMainTableName='数据表_巡查情况及结果' and FK_MainTableID='" + row.prowledQk_Id + "' and imageTypeName='现场照片' and FK_SiteID='" + RIM_WCF.系统缓存_字典表Model.SiteModel.unitID + "' ";
                                    imageModel = imagebll.GetModelList(strWhere, "数据表_巡查管理图片");
                                    if (imageModel.Count() > 0)
                                    {
                                        DataRow rownew = dtnewImage.NewRow();
                                        rownew["imageId"] = "对" + i3;
                                        rownew["imageMaxPhotoName"] = _RootBaseDirectory + imageModel.First().imageMaxPhotoName;
                                        dtnewImage.Rows.Add(rownew);
                                    }
                                    i3++;
                              }
                              args.Data = dtnewImage;
                              #endregion
                              break;
                        }
                  }
                }
                catch (Exception ex)
                {
                  Common.WriteLog.CreateLog(ex, "导出巡查日志获取数据集异常!");
                }

            }
      }

Lenka.Guo 发表于 2017-2-23 14:23:12

尝试在导出Excel 将这两个属性设置为 false

   excelSetting.Pagination = false;
            excelSetting.MultiSheet = false;

muhuiru 发表于 2017-2-24 16:03:17

excelSetting.Pagination = false;
            excelSetting.MultiSheet = false;
设置成False好了

muhuiru 发表于 2017-2-24 16:04:30

辛苦了:)
页: [1] 2
查看完整版本: 导出Excel第二个数据集内容不显示