找回密码
 立即注册

QQ登录

只需一步,快速开始

Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-25 16:41:49
41#
本帖最后由 Lenka.Guo 于 2016-4-25 16:53 编辑
SunDream° 发表于 2016-4-25 16:34
你提供的这个DEMO链接地址是在运行view控件的时候自动绑定, 我想要一个是讲初始化的时候在设计器中绑定 ...

是的,博客主要内容是 如何使用代码创建带有数据集的区域报表。建议参考这部分内容。


然后,在ReportDesigner 中加载该区域报表,加载的思路与 页面报表相同。1. 在项目中创建空的区域报表(目的是通过报表路径,加载报表)。
2. 在后台代码中,添加数据集。(参考楼上给出的博客链接)
3. 使用 reportdesigner.LoadReport(new FileInfo(ReportPath));

页面报表和RDL报表,在后台代码中是不加区分的(这个已经在前面几楼讲过)。但是使用ToRdlString()可直接获取Rdl 报表的字符流。而区域报表和页面报表没有直接获取 字符流的方法,所以就采用上述:通过报表路径来加载报表的方法。希望你理解了,还有什么不清楚的嘛?

在设计器中加载区域报表的方法,这个需求,之前还未有用户问及,所以目前没有现成的Demo。
最快的方法是为您提供解决思路,还请谅解~



回复 使用道具 举报
SunDream°
社区贡献组   /  发表于:2016-4-25 17:01:53
42#
Lenka.Guo 发表于 2016-4-25 16:41
是的,博客主要内容是 如何使用代码创建带有数据集的区域报表。建议参考这部分内容。

我这边有这样的需求呢~ 在初始化的时候执行一条SQL数据  将这个SQL执行后的数据源绑定在区域报表的 设计器右边的字段栏位下面~  你看看你们是否可以制作一个简单DEMO  把重要的几个调用方法的使用显示出来就好了~      
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-25 17:16:54
43#
本帖最后由 Lenka.Guo 于 2016-4-25 17:28 编辑
SunDream° 发表于 2016-4-25 17:01
我这边有这样的需求呢~ 在初始化的时候执行一条SQL数据  将这个SQL执行后的数据源绑定在区域报表的 设计 ...

你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢??

制作Demo没有问题,因为会优先处理金牌用户的问题,Demo制作需要时间~我在这边会抓紧制作,也希望你如果对上面的思路清楚了,也可以先自己尝试哦。
回复 使用道具 举报
SunDream°
社区贡献组   /  发表于:2016-4-25 17:59:10
44#
Lenka.Guo 发表于 2016-4-25 17:16
你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢 ...

给区域报表在初始化的时候绑定的Demo能尽快发给我们吗?  其实什么客户不存在的好吗,  我们公司目前用的是你们的active report 3 的版本, 最近我刚刚接手这一部分的内容我们公司打算全面升级到10的版本,   怎么说在你们这边也是老客户的对不对!对10版本的评估进度已经很慢了, 你们的ar3与ar10的版本差别本来就很大,基本现在是需要重新整合的状态, 现在我跟你们提问题在论坛上提问  回复的本来就很慢, 我都没办法处理问题。
回复 使用道具 举报
SunDream°
社区贡献组   /  发表于:2016-4-25 18:05:06
45#
Lenka.Guo 发表于 2016-4-25 17:16
你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢 ...

并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需求  我们想在你们的 ar10设计器上对 设计器进一步包装达到适合我们公司系统的数据模式,  对页面, 区域, RDL,三种报表的数据源绑定方式更改这一块的需求是最多的, 你们给的解决方案又少, 在公司给予的评估期内要是还是没办法对这方面解决方案确定下来,我觉得我没必要在对你们的报表进行需求提问了!
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 12:34:13
46#
SunDream° 发表于 2016-4-25 18:05
并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需 ...

非常能理解您在评估过程中,希望了解到更多的与项目需求相符的产品功能的展示的心情。

一开始没能充分理解您的项目需求和进展,非常抱歉,导致和您沟通次数较多,没有有效的解决您的问题。特意为您提供售前选型顾问电话 (029)8833 1988 610,可以电话沟通需求,希望能够帮您快速评估产品,解决产品评估中遇到的问题。

您这边的需求都是高级自定义开发需求,用的人比较少,确实资料不多。第一个示例是有其他示例参考,用了半天时间回复你了。现在您需要的是区域报表和页面报表示例,正在制作中,因为没有可以直接参考的示例,所以制作起来会比较慢,估计每一个需要1天左右的时间,还请您谅解。

另外,我们论坛是1个工作日之内有答复。通常是优先处理金牌用户的问题,考虑到你这边比较急,我们已经提升你问题的优先级,你可以对比一下金牌服务区,咱们沟通的响应的时间和频率都是和金牌用户相当,做的不好的地方,还希望您能够谅解。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 17:14:35
47#
SunDream° 发表于 2016-4-25 18:05
并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需 ...

您好,

加载页面报表Demo,如附件:


核心思路,在LayoutBulider.cs 中添加方法:
  1. public static PageReport BuildPageReportLayout()
  2.         {
  3.             PageReport report = new PageReport();
  4.             report.Load(new StringReader(
  5.               @"<Report xmlns=""http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"">
  6.     <Body>
  7.         <Height>27.9cm</Height>
  8.         <ReportItems>
  9.             <FixedPage Name=""FixedPage1"">
  10.                 <Pages>
  11.                     <Page />
  12.                 </Pages>
  13.             </FixedPage>
  14.         </ReportItems>
  15.     </Body>
  16.     <BottomMargin>2.5cm</BottomMargin>
  17.     <LeftMargin>2.5cm</LeftMargin>
  18.     <PageHeight>27.9cm</PageHeight>
  19.     <PageWidth>21.6cm</PageWidth>
  20.     <RightMargin>2.5cm</RightMargin>
  21.     <TopMargin>2.5cm</TopMargin>
  22.     <Width>21.6cm</Width>
  23.       </Report>"));
  24.             return report;
  25.         }
复制代码



在ReportForm.cs中调用该方法:
  1. private void ReportsForm_Load(object sender, EventArgs e)
  2.         {
  3.             PageReport report = LayoutBuilder.BuildPageReportLayout();//Loading the layout to a PageReport object
  4.             report = LayoutBuilder.AddDataSetDataSource(report);//Adding DataSources to the PageReport object
  5.             MemoryStream reportStream = LayoutBuilder.LoadReportToStream(report);//Loading the PageReport object to a stream
  6.             reportStream.Position = 0;
  7.             reportDesigner.LoadReport(XmlReader.Create(reportStream),DesignerReportType.Page);

  8.             
  9.             //Loading the stream to the designer via a  XmlReader
  10.            // reportDesigner.LoadReport(XmlReader.Create(reportStream),  DesignerReportType.Page);
  11.            
  12.             //Loading the stream to the designer
  13.             report.Dispose();
  14.                         reportStream.Dispose();
  15.         }
复制代码






本帖子中包含更多资源

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

x
回复 使用道具 举报
SunDream°
社区贡献组   /  发表于:2016-4-26 19:03:53
48#
Lenka.Guo 发表于 2016-4-26 17:14
您好,

加载页面报表Demo,如附件:

还缺一个区域报表的呢? 后面会跟进发出来的吗?
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-27 10:33:20
49#
SunDream° 发表于 2016-4-26 19:03
还缺一个区域报表的呢? 后面会跟进发出来的吗?

区域报表的Demo正在制作中,制作好了之后会给您回复。

评分

参与人数 1满意度 +5 收起 理由
SunDream° + 5 赞一个!

查看全部评分

回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-27 13:15:43
50#
SunDream° 发表于 2016-4-26 19:03
还缺一个区域报表的呢? 后面会跟进发出来的吗?

Hi,
区域报表的Demo 也做好了,因为区域报表本身结构问题,现有的解决方案只能是 :1. 新建一张空的区域报表(基于rpx);2. 通过后台代码绑定数据源;3. 在reportDesigner 中使用LoadLayout();给出报表的相对路径;


核心代码:
  1. public static SectionReport AddDataSectionSetDataSource()
  2.         {
  3.             SectionReport report = new SectionReport();
  4.            

  5.             report.LoadLayout("..\\..\\SectionReport2.rpx");
  6.             Data.OleDBDataSource ds = new Data.OleDBDataSource();
  7.             ds.ConnectionString = Properties.Resources.ConnectionString;
  8.             ds.SQL = Constants.cmdText;
  9.             report.DataSource = ds;

  10.             System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter("..\\..\\SectionReport2.rpx", null);
  11.             report.SaveLayout(xtw);
  12.             return report;           
  13.             
  14.         
  15.         }
复制代码


在ReportForm_Load中添加代码:

  1.             SectionReport sr = LayoutBuilder.AddDataSectionSetDataSource();
  2.             reportDesigner.LoadReport(new FileInfo("..\\..\\SectionReport2.rpx"));
  3.             sr.Dispose();  
复制代码


代码下载:


您的Demo已经完成,如果您有新的问题,麻烦请开新帖,这样方便您查看和查找信息。



本帖子中包含更多资源

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

x

评分

参与人数 1满意度 +5 收起 理由
SunDream° + 5 很给力!

查看全部评分

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