日期:2014-05-20  浏览次数:21187 次

水晶报表如何为一个参数传递多个值?
我在水晶报表里创建了一个空白报表,新建了一个参数字段p1,字符串类型;然后把该字段拖到报表中。
然后在vc中新建一个mfc exe工程,加载水晶报表控件。
接着用代码为该字段赋多个值:abc和abcd
//初始化水晶报表的代码省去
m_Report->ParameterFields->GetItemByName("p1")->AddCurrentValue(_variant_t( "abc" ));
m_Report->ParameterFields->GetItemByName("p1")->AddCurrentValue(_variant_t( "abcd" ));
//加载报表路径及显示报表的代码也省去
运行后报表的参数字段只显示abcd,即最后一行代码起作用。
请问如何能为一个参数字段赋多个值?

------解决方案--------------------
多值的情况处理


首先你要把参数设置为离散值,这个应该设置好了。代码如下

下面是c#的

C# code
ParameterDiscreteValue PV; 
ParameterValues PVS = new ParameterValues(); 

//第1个值加到pvs
PV = new ParameterDiscreteValue(); 
PV.Value = "a1"; 
PVS.Add(PV); 
//第2个值加到pvs
PV = new ParameterDiscreteValue(); 
PV.Value = "a2"; 
PVS.Add(PV); 


//把参数字段传到报表
ParameterFieldDefinition PFD = Rpt.DataDefinition.ParameterFields["参数字段名称"]; 
PFD.ApplyCurrentValues(PVS);