惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 阿泰

水晶报表问题交流与答疑帖-2011/07-08-09 Oracle中可选参数的处理 水晶报表问题交流与答疑帖-2011/04-05-06 水晶报表问题交流与答疑帖-2010/07-08-09【关闭】 【公告】如果发现博客中图片或文件丢失,请在本贴中回复中贴上URL [转]2010年Gartner企业绩效管理四分区 重要通知:为了能提升答疑质量,本博客的答疑转移到CSDN论坛 2009年11月答疑贴 VS2010beta2中RDLC与水晶报表之简单评测 2009年10月份答疑贴 Oracle 00600 错误解决方法 2009年9月份答疑帖 2009年8月份答疑贴 【水晶报表内功心法】--完美Excel(下) 【水晶报表内功心法】--完美Excel(上) 【水晶报表内功心法】--公式、函数与运行时总计 【水晶报表内功心法】--第一阶段小结 【水晶报表内功心法】--数据过滤 【水晶报表内功心法】--信手拈来,掌控对象
【水晶报表内功心法】--信手拈来,掌控对象 之 多值参数传入 - 阿泰
阿泰 · 2009-10-09 · via 博客园 - 阿泰

在前文【水晶报表内功心法】--信手拈来,掌控对象 中,讲解了参数的输入方法。
myReport.SetParameterValue(参数名称,参数值,[子报表名称]);
比如我们这样传参数值:
myReport.SetParameterValue("x1","我是参数值");

但是如何传入多值参数,或者是区域值参数呢。
实质上我们再来看一下SetParameterValue方法,

Title

public virtual void SetParameterValue(string name, object val, string subreport)
    CrystalDecisions.CrystalReports.Engine.ReportDocument 的成员

摘要:
设置子报表中的参数字段的当前值。值可以是基元、ParameterValue、上述两种类型中某一种的数组或 ParameterValues 集合。

参数:
name: 参数字段的名称。
value: 表示一个有效的参数值。可以是基元、ParameterValue、上述两种类型中某一种的数组或 ParameterValues 集合。
subreport: 参数字段所属的子报表的名称。

value 是可以是一个ParameterValues的,所以解决方法也来了。

我们首先建立一个多值参数px,一个区域值参数py。
注意如果直接把px拖到模板上,会只显示第一个值。而py则直接不显示。
所以为了验证效果,做两个公式
fx: join({?px},',') //将值用,组合成一个字串
fy:Minimum ({?py})  //取最小的端点
这两个公式主要是为了验证显示效果的,与代码无关。

代码如下:

 1 //多值
 2         ParameterDiscreteValue pv;
 3         ParameterValues pvs = new ParameterValues();
 4         
 5         for (int i = 0; i < 5; i++)
 6         {
 7             pv = new ParameterDiscreteValue();
 8             pv.Value = i.ToString();
 9             pvs.Add(pv);
10 
11         }
12         
13         myReport.SetParameterValue("px", pvs);
14 
15         //区域值
16         pvs = new ParameterValues();
17         ParameterRangeValue pv1=new ParameterRangeValue();
18         pv1.StartValue=100;
19         pv1.EndValue = 200;
20         pvs.Add(pv1);
21         myReport.SetParameterValue("py", pvs);

这个是通过ReportDocument来传值的。
当然也可以传给CrystalReportViewer。