找回密码
 立即注册

QQ登录

只需一步,快速开始

hyqangel

初级会员

47

主题

152

帖子

373

积分

初级会员

积分
373

活字格认证微信认证勋章

hyqangel
初级会员   /  发表于:2014-3-21 15:43  /   查看:4858  /  回复:1
你好,

      假设我做有某市学校信息系统,系统的采用silverlight开发,使用对象是各校的老师、教导主任、校长、局长之类.
      要求实现报表的动态显示、打印和PDF的导出。

      为了实现多人合作开发,我安排一人专门进行报表模板设计,一人负责后台数据动态配置。
      现在报表设计人员设计了如何下几种报表模板:
      1.学校明细表A
      2.教师明细表B
      3.学生明细表C

      前端silverlight开发出各种查询统计的界面,上面有放置一个打印预览按钮,
      系统登陆者根据各自的权限依据自己的查询条件检索出所要的数据,点击打印预览按钮通过
      GrapeCity.ActiveReports.Viewer.Silverlight.v8进行显示

      实现方式一:
                      服务端创建web服务,增加各类报表实现方法,其参数内容由客户端传过来,服务端返回字节流          //  
                      前段下面代码实现展示,
                      System.IO.MemoryStream ms = new System.IO.MemoryStream(e.Result);
                      GrapeCity.Viewer.Common.StreamDocumentLoader loader = new                                                                      GrapeCity.Viewer.Common.StreamDocumentLoader(ms, GrapeCity.Viewer.Common.DocumentFormat.Rdf);
                      viewer1.LoadDocument(loader);
                      但此种方式下报表无法实现导出pdf功能
      实现方式二:客户端传参过来,服务端生成文件并返回成功于否
                       其后客户端调用 viewer1.LoadFromService("..\\PageReport1.rdlx");进行显示  //据说可以实现pdf导出
                      但这种方式下PageReport1.rdlx就必须调用前先生成磁盘文件,
                      如果多人同时操作就必然产生一堆文件,而且生成磁盘文件效率也较低,文件名相同等问题,
                      还要考虑文件后期删除等问题
                     
                      不知道有没有更好的办法?

1 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-3-21 17:38:00
沙发
回复 1楼hyqangel的帖子

无法导出的在这个帖子沟通:http://gcdn.gcpowertools.com.cn/showtopic-12148.html

这个帖子,主要沟通:动态数据源的需求。

1 您用的页面还是区域报表?
2 如果是页面报表,这里有篇博客,可参考: Silverlight中动态绑定PageReport数据源(DataSet数据提供器)3 如果是区域报表,可在报表new (后台C#代码)中DataSource动态赋值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部