找回密码
 立即注册

QQ登录

只需一步,快速开始

xuwei_qiaofeng

银牌会员

8

主题

28

帖子

3246

积分

银牌会员

积分
3246

活字格认证

xuwei_qiaofeng
银牌会员   /  发表于:2013-1-16 16:02  /   查看:12028  /  回复:7
我的开发环境是vs2010,activereport7,vb.net

发现创建报表模板的时候可以选择两种,code_based和xml_based.
第一种是vb文件,第二种是.rpx文件。

我简单测试了下,窗体上放个viewer,然后load事件如下
            Dim rpt As New Reporttest  
            Me.Viewer1.Document = rpt.Document
code_based的可以运行,而xml_based的不能运行,没有类。
想问的是怎么用.rpx文件生成对应的.vb类,可以生成吗?
如果不能生成,(直接用code_based的就行了,也可以可视化编辑报表),这种.rpx文件有什么用?

7 个回复

倒序浏览
xuwei_qiaofeng
银牌会员   /  发表于:2013-1-16 16:05:00
沙发
因为刚开始接触这个,问的很浅显,可能有点词不达意
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 16:39:00
板凳
xuwei_qiaofeng 你好

ActiveReports V7中提供的两种模板类型code_based和xml_based生成的报表都可以在Viewer控件中运行,运行rpx的代码如下:
  1. GrapeCity.ActiveReports.SectionReport rpt = new GrapeCity.ActiveReports.SectionReport();
  2. // For the code to work, this report.rpx must be stored in the bin\debug folder of your project.
  3. System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Application.StartupPath + "\\Sample.rpx");
  4. rpt.LoadLayout(xtr);
  5. xtr.Close();
  6. viewer1.Document = rpt.Document;
  7. rpt.Run();

复制代码


code_based和xml_based的区别有一下几点:
1、code_based中添加的控件、或者报表设置都会保存到*.Designer.cs文件中,xml_based则将所有设置都保存为XML格式
2、code_based类型的报表修改之后需要重新Build工程,而xml_based不需进行Build操作
3、code_based可以使用.rpx作为模板,打开code_based报表的设计界面,在VS的菜单中有一个Report项,选择Load Layout加载.rpx
回复 使用道具 举报
xuwei_qiaofeng
银牌会员   /  发表于:2013-1-16 17:15:00
地板
非常感谢您的回复,不好意思,有点地方还是不明白。
1,我之前运行模板的代码是写在窗体的load事件里的,您回复的运行rpx的代码写在那个类里面。
我放窗体的load事件里面,即使
Imports GrapeCity.ActiveReports
Imports GrapeCity.ActiveReports.Document后还是报编译错。
2,OK
3,code_based可以使用.rpx作为模板,打开code_based报表的设计界面,在VS的菜单中有一个Report项,选择Load Layout加载.rpx 。我以前都是做java的,没有用过vs,vs中那个菜单(菜单名我找了下,找不到)。
回复 使用道具 举报
xuwei_qiaofeng
银牌会员   /  发表于:2013-1-16 17:19:00
5#
如果可能,给一个最简单xml_based报表的工程。vs2010和activer7,vb。net的
不胜感激
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 18:05:00
6#
回复 5楼xuwei_qiaofeng的帖子

你安装AR7之后,可以在以下目录中找到类似的Demo
C:\Users\用户名\Documents\ComponentOne Samples\ActiveReports Developer 7\Section Reports\VB.NET\Professional\ArWebSampleProVb7
回复 使用道具 举报
xuwei_qiaofeng
银牌会员   /  发表于:2013-3-8 15:01:00
7#
回复 3楼dof的帖子


System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Application.StartupPath + "\\Sample.rpx");
方法我试了:但是上面这句返回的xtr 是None我觉得不对,请问【Application.StartupPath + "\\Sample.rpx"】路径是怎么设定的。
谢谢、、、、
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-8 17:55:00
8#
xuwei_qiaofeng 你好

Application.StartupPath 对应的是exe所在的目录,你是否将Sample.rpx拷贝到了exe所在的目录呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部