找回密码
 立即注册

QQ登录

只需一步,快速开始

fineex2006

注册会员

16

主题

49

帖子

139

积分

注册会员

积分
139

活字格认证

fineex2006
注册会员   /  发表于:2015-7-15 16:44  /   查看:6999  /  回复:11
上次请教了页面报表使用动态数据源的方法,现在已经解决了,非常感谢。
现在在使用区域报表的时候,发现区域报表使用数据源的方式完全不同。
请问是否有相关的demo以供学习,谢谢。

11 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-7-15 17:15:00
沙发
您好,
区域报表动态数据源,我们有一篇博客专门介绍,您可以参考下:
http://blog.gcpowertools.com.cn/ ... Source_RunTime.aspx

希望能够帮助到您。
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-7-16 10:31:00
板凳
你好,按照博客上的方法在操作中出现下面的问题

本帖子中包含更多资源

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

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-16 11:55:00
地板
您好,
非常抱歉,博客里面的区域报表是winForms的程序示例。
虽然在web下面的思路是一致的,但是代码上会有一点小的区别。
我会帮您制作一个区域报表动态数据源的例子程序给您。
由于制作例子程序需要一点时间,但是我会尽快完成,下午2点之前给您。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-16 13:38:00
5#
您好,
区域报表的创建和RDL报表略有区别。代码可以参考:
  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             GrapeCity.ActiveReports.SectionReport sr = new GrapeCity.ActiveReports.SectionReport();
  4.             System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath("") + "\\SectionReport1.rpx");
  5.             sr.LoadLayout(xtr);
  6.             xtr.Close();

  7.             sr.DataSource = GetDataSource();
  8.             sr.Run();
  9.             WebViewer1.Report = sr;
  10.         }

  11.         private DataTable GetDataSource()
  12.         {
  13.             DataTable dt = new DataTable();
  14.             dt.Columns.Add("产品编号");
  15.             dt.Columns.Add("产品名称");
  16.             dt.Columns.Add("单价");
  17.             dt.Columns.Add("库存量");
  18.             dt.Rows.Add("A10002", "苹果", 20, 50);
  19.             dt.Rows.Add("A15681", "香蕉", 20, 50);
  20.             dt.Rows.Add("A15681", "菠萝", 20, 50);
  21.             return dt;
  22.         }
复制代码






希望能够帮助到您。

本帖子中包含更多资源

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

x
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-7-16 15:09:00
6#
楼上的方法用于基于xml的区域报表没有问题
但用于基于代码的区域报表不可以,即以cs为后缀的报表
另外,请问往报表传参数的方法
类似与页面报表report1.Report.ReportParameters[0].DefaultValue.Values.Add("1"); 的用法
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-16 17:03:00
7#
您好,
基于cs代码的,比xml格式的,少了一个xml文档的加载过程。
使用以下代码实现:
  1.             SectionReport1 sr = new SectionReport1();
  2.             sr.DataSource = GetDataSource();
  3.             sr.Run();
  4.             WebViewer1.Report = sr;
复制代码


添加参数的方式可以参考:
  1. Parameter myParam1 = new Parameter(); myParam1.Key = "myParam1"; myParam1.Type = Parameter.DataType.String; myParam1.PromptUser = true; myParam1.Prompt = "Enter Data:"; myParam1.DefaultValue = "Default Value"; this.Parameters.Add(myParam1);
复制代码


另外,选用报表类型,您可以参考以下视频:
http://gcdn.gcpowertools.com.cn/showtopic-17065.html

希望能够帮助到您。
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-7-16 17:59:00
8#
谢谢你的一直耐心回复
在传递参数的时候,使用以下代码:
            SectionReport1 sr = new SectionReport1();
            Parameter myParam1 = new Parameter();
            myParam1.Key = "Title";
            myParam1.Type = Parameter.DataType.String;
            myParam1.PromptUser = true;
            myParam1.Prompt = "Title";
            myParam1.DefaultValue = "数据报表";
            sr.Parameters.Add(myParam1);
            sr.DataSource = GetDataSource();
            sr.Run();
            WebViewer1.Report = sr;
但是参数不能和报表匹配上,报表显示的时候没有获取到参数值,望解惑。



本帖子中包含更多资源

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

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-17 09:10:00
9#
您好,
这个问题我们已经收到,我这边会帮您制作一个例子程序给您,由于制作例子程序需要一点时间,请您耐心等候。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-20 11:32:00
10#
您好,
非常抱歉,让您久等了。
为了问题的简单,我使用一个winforms程序来示例传递参数。
  1.             SectionReport1 sectionReport = new SectionReport1();
  2.             sectionReport.Parameters[0].Value = "123";
  3.             viewer1.LoadDocument(sectionReport);
复制代码



本帖子中包含更多资源

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

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