找回密码
 立即注册

QQ登录

只需一步,快速开始

admin 讲师达人认证 悬赏达人认证 活字格认证 SpreadJS 开发认证
管理员   /  发表于:2018-7-25 14:48  /   查看:7267  /  回复:5

在进行报表设计的时候有时需要通过后台代码端给参数赋值,有时也需要通过后台获取报表参数的值,然后进行动态数据的筛选。
下面我们首先来说说如何后台给参数赋值:
1、       首先新建一张RDL报表,然后添加参数:
添加两个参数:      参数1:CategoryID
                             参数2:CategoryName

2、       后台代码端给报表参数赋值:
GrapeCity.ActiveReports.PageReportrpt = new GrapeCity.ActiveReports.PageReport(newSystem.IO.FileInfo(@"**.rdlx"));
rpt.Report.ReportParameters[0].DefaultValue.Values.Add("1");
ReportParameters[0]代表第一个参数 CategoryID
ReportParameters[1]代表第二个参数 CategoryName
这样就直接把后台参数传递给报表了。
如何在后台获取参数的值。
1、首先给报表添加参数
添加两个参数:      参数1:CategoryID
                        参数2:CategoryName

            
2、       后台获取传递的参数进行参数的筛选。
这个主要是进行动态数据源绑定,并且用到了报表钻取功能的时候,经常需要后台主表传递的筛选参数,进行数据的筛选。
该操作的注意点:
A、      首先主表进行导航的时候,主表传递给子表的参数需要和子表的参数命名一致。


B、       子表的参数设置,命名需要跟主表传递的值得命名一致,这样才能进行信息一致的匹配。
3、       后台参数的获取
报表的参数后台的获取需要在 LocateDataSourceEventArgs 这个函数下才可以获取报表参数的当前值。这一点必须谨记
后台获取参数的关键代码:args.Report.Parameters[0].CurrentValue.ToString();
Parameters[0]代表参数一
Parameters[1]代表参数二
4、具体代码:
private void locatedate(object sender,GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSourceName == "DataSource1")
            {
                if (args.DataSetName == "DataSet1")
                {
           string a = args.Report.Parameters[0].CurrentValue.ToString();
                  args.Data = returndata();
                }               
            }
        }

本帖子中包含更多资源

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

x

5 个回复

正序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2023-8-4 17:32:19
6#
AR16_Learning 发表于 2023-8-4 16:30
string a = args.Report.Parameters[0].CurrentValue.ToString();
args没有相应的属性,该如何获取报表的 ...

您好,微信已和您远程进行查看,参考下图进行解决。

本帖子中包含更多资源

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

x
回复 使用道具 举报
AR16_Learning
初级会员   /  发表于:2023-8-4 16:30:45
5#
string a = args.Report.Parameters[0].CurrentValue.ToString();
args没有相应的属性,该如何获取报表的参数值啊?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2019-1-16 09:15:36
地板
试试用这句代码:
  1.    GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(@"Reports/RdlReport1.rdlx")));
复制代码


回复 使用道具 举报
lywb
初级会员   /  发表于:2019-1-15 20:42:58
板凳

提示没有报表

本帖子中包含更多资源

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

x
回复 使用道具 举报
lywb
初级会员   /  发表于:2019-1-15 20:42:40
沙发
  1. GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"Report\CJSGS\饮用水日常检验报告.rdlx"));
  2.                     rpt.Report.ReportParameters[0].DefaultValue.Values.Add(strKey);
  3.                     WebViewer1.Report = rpt;
复制代码

这样写不行呀,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部