找回密码
 立即注册

QQ登录

只需一步,快速开始

2293174034

初级会员

33

主题

81

帖子

218

积分

初级会员

积分
218

活字格认证微信认证勋章

2293174034
初级会员   /  发表于:2015-6-17 17:41  /   查看:5267  /  回复:6
在vs1012 asp.net mvc 项目中是使用基于代码的区域报表还是使用基于xml的区域报表?

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

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

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

6 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-6-17 17:50:00
沙发
您好,
问题已经收到,我这边正在帮您处理,会在一个工作日内给您回复。请稍后。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-18 15:47:00
板凳
您好,
区域报表的模型是一致的,一种是用代码来标识,一种是用xml来标识,在本质上是没有区别的。
区域报表加载object,我们有一篇博客进行了专门的介绍,您可以参考下,
http://blog.gcpowertools.com.cn/ ... 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 "age":
                    _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
5#
您好,
XMl格式的需要使用以下代码后,就和cs的形式一致了
  1. GrapeCity.ActiveReports.SectionReport sr = new GrapeCity.ActiveReports.SectionReport();
  2. System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath(&quot;&quot;) + &quot;\\SectionReport1.rpx&quot;);
  3. sr.LoadLayout(xtr);
  4. xtr.Close();
复制代码

评分

参与人数 1满意度 +5 收起 理由
2293174034 + 5 hao

查看全部评分

回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-6-19 09:27:00
6#
//基于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
7#
您好,
您的代码没有任何问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部