Lenka.Guo 发表于 2016-4-21 18:09:28

本帖最后由 Lenka.Guo 于 2016-4-21 18:27 编辑

SunDream° 发表于 2016-4-21 18:07
啊啊啊~ 不是这样啊,不是我想要的这样。 这个是提前做好一个版本,然后直接在这个基础上面去做, 但是现在我 ...
”要传入的DataSet 也是在打开报表设计器的把这个DataSet添加变成报表设计器的数据源, 可以做到吗?“

sorry ,我有点不太明白你的意思了。。你的意思是:DataSet 也是后台传过来的,不需要用户手动添加, 自动显示到ReportExplorer,这个DataSet相当于一个变量,是根据后台传的值,而变化的?而不是固定不变的?


SunDream° 发表于 2016-4-21 18:51:59

Lenka.Guo 发表于 2016-4-21 18:09
”要传入的DataSet 也是在打开报表设计器的把这个DataSet添加变成报表设计器的数据源, 可以做到吗?“

...

恩恩,对呀~是这个意思~

Lenka.Guo 发表于 2016-4-22 09:46:26

SunDream° 发表于 2016-4-21 18:51
恩恩,对呀~是这个意思~
抱歉,那我之前理解有误......(PS 咱们是哪家公司,我做个记录~~~~)

连夜帮你做了个Demo,看看这是不是你想要的(我用的是ActiveReports 10 SP1 ,如果和你的版本号不对,请使用VS—>"工具"-》转换为ActiveReports10,转换为你机器上的版本) ;


实现思路:
1. 自定义报表,报表是可以使用后台代码,自定义,参考附件 LayoutBuilder.cs;
2.实现AddDataSetDataSource 方法;
3. 加载报表设计器时,加载该报表。






还找一篇博客很符合你的需求,可以参考下:http://blog.gcpowertools.com.cn/ ... gner_Templates.aspx









SunDream° 发表于 2016-4-22 09:51:52

Lenka.Guo 发表于 2016-4-22 09:46
抱歉,那我之前理解有误......(PS 咱们是哪家公司,我做个记录~~~~)

连夜帮你做了个Demo,看看这是 ...

非常非常的感谢, 太激动了,我想要的就是这种~:handshake

Lenka.Guo 发表于 2016-4-22 10:14:08

SunDream° 发表于 2016-4-22 09:51
非常非常的感谢, 太激动了,我想要的就是这种~

我都回答你这么多问题了,你还没回答我,您是哪家公司~~

感谢就给我5分好评呗~

SunDream° 发表于 2016-4-22 11:50:54

还有一个问题为什么在你提供的Demo 中public static MemoryStream LoadReportToStream(PageReport report)
      {
            string rpt = report.ToRdlString();
            byte[] data = Encoding.UTF8.GetBytes(rpt);
            MemoryStream stream = new MemoryStream(data);
            return stream;
      }这一句导致PageReport页面报表的结果变成了RDL报表呢?

SunDream° 发表于 2016-4-22 12:18:18

还有一个问题, 如何获取到当前设计器中正在设计的报表, 获取到后点击自定义的按钮弹出一个包含 GrapeCity.ActiveReports.Viewer.Win.Viewer(); 控件的winfrom对话框,在这个对话框中展示对应设计器的设计内容,达到类似于系统自带的预览效果,只是我的这种方法是在弹出一个对话框来显示预览的效果:$

Lenka.Guo 发表于 2016-4-22 13:54:01

SunDream° 发表于 2016-4-22 11:50
还有一个问题为什么在你提供的Demo 中public static MemoryStream LoadReportToStream(PageReport report ...

1.这一行 string rpt = report.ToRdlString() 进行报表转换;页面报表和RDL报表同属于PageReportModel,因此特别定义RDL报表需要转换。

2. 您可以按照以下思路实现:

1. 新建WindowForm1 窗体(包含 ReportViewer);
2. 点击自定义按钮后,将当前设计的报表模板,在后台调用OnSave方法保存 Report1.rdlx。
3.将Report1.rdlx文件和路径 传给WindowForm1_Load方法();
4. 在WindowForm1_Load 中生成Report1.rdlx 实例,调用ReportViewer.loadDocument();


SunDream° 发表于 2016-4-22 13:59:51

Lenka.Guo 发表于 2016-4-22 13:54
1.这一行 string rpt = report.ToRdlString() 进行报表转换;页面报表和RDL报表同属于PageReportModel ...

1,可以不转换,直接使用页面报表不转换成RDL报表可以吗?

2,也就是说还是要存成本地文件吗? 我想不存成本地文件而是直接传个什么参数或者一些内置转换方法赋值给弹出包含ReportViewer控件的winfrom窗体, 在用ReportViewer内的什么方法可以接收到传过去的设计器中的内容进行预览操作~    我指的是这样的形式,最主要的就是不想保存成本地文件在传过去地址直接加载!

SunDream° 发表于 2016-4-22 15:13:58

一直在线等呢~怎么没人来了呢~:'(
页: 1 2 [3] 4 5
查看完整版本: 关于初始化页面报表的问题,急!