2293174034 发表于 2015-6-17 17:42:00

基于代码还是基于xml的区域报表如何加载list<object>数据?

在vs1012 asp.net mvc 项目中是使用基于代码的区域报表还是使用基于xml的区域报表?

在ActiveReport报表设计器中只能定义基于xml的报表模板,

在vs 2012 ide中可以定义基于代码的区域报表模板和基于xml的报表模板,

对于这两种区域报表模板如何加载List<Object>数据源?
最好给出事例

frank.zhang 发表于 2015-6-17 17:50:00

您好,
问题已经收到,我这边正在帮您处理,会在一个工作日内给您回复。请稍后。

frank.zhang 发表于 2015-6-18 15:47:00

您好,
区域报表的模型是一致的,一种是用代码来标识,一种是用xml来标识,在本质上是没有区别的。
区域报表加载object,我们有一篇博客进行了专门的介绍,您可以参考下,
http://blog.gcpowertools.com.cn/post/2013/07/16/ActiveReports-ListDataSource.aspx
希望能帮助到您。

2293174034 发表于 2015-6-18 16:29:00

根据ActiveReports 9安装目录:ComponentOne Samples\ActiveReports 9\Professional\ActiveReportsWithMVC
下的事例
public ActionResult GetReport(ReportDescriptor reportdesc)
      {
            object report = null;
            switch (reportdesc.Type)
            {
                case "Section":
                  report = new OrderReport {DataSource= Repository.GetOrders(reportdesc.Id) };
                  break;
                case "Page":
                  _reportdata = Repository.GetDetails(reportdesc.Id);
                  report = new PageReport(new FileInfo(Server.MapPath("~/Reports/OrderDetailsReport.rdlx")));
                  ((PageReport)(report)).Document.LocateDataSource += Document_LocateDataSource;
                  break;
            }
            ViewBag.Report = report;
            return PartialView("WebViewer");
      }

可以处理基于代码的区域报表和页面报表list<object>数据载入,

但无法处理基于xml的区域报表
我的方法如下:
SectionReport aa = new SectionReport();
aa.DataSource = _ndkhjgService.testList2();
aa.Document.Load(Server.MapPath("~/Reports/" + reportName + ".rpx"));   //提示该语句错误:文件格式不正确                     
report = aa;

frank.zhang 发表于 2015-6-18 16:50:00

您好,
XMl格式的需要使用以下代码后,就和cs的形式一致了
GrapeCity.ActiveReports.SectionReport sr = new GrapeCity.ActiveReports.SectionReport();
System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath(&quot;&quot;) + &quot;\\SectionReport1.rpx&quot;);
sr.LoadLayout(xtr);
xtr.Close();

2293174034 发表于 2015-6-19 09:27:00

//基于XML的区域报表处理方法
                            SectionReport sr = new SectionReport();                           
                            System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath(&quot;~/Reports/&quot; + reportName + &quot;.rpx&quot;));
                            sr.LoadLayout(xtr);
                            sr.DataSource = khList;
                            xtr.Close();
                            report = sr;

frank.zhang 发表于 2015-6-19 11:45:00

您好,
您的代码没有任何问题。
页: [1]
查看完整版本: 基于代码还是基于xml的区域报表如何加载list<object>数据?