如何给报表中的参数赋值?

wj918 2005-07-10 04:07:24
我写了这么一段程序,通过动态给报表中的参数赋值来改变表头。
代码如下:
for(;i<7;i++)
{
//参数设置部分
ParamField.ParameterFieldName = "myParaField" + i.ToString();
DiscreteVal.Value = btcdys[i-1];
//赋值
ParamField.CurrentValues.Add(DiscreteVal);
//将该字段加如到字段集合中
ParamFields.Add(ParamField);
//不允许该字段弹出提示
ParamField.AllowCustomValues = false;
//将公式绑定到具体字段
cr.DataDefinition.FormulaFields["myfield"+ i.ToString()].Text = "{库存."+ btcdys[i-1]+"}";
}
欲将数组btcdys中的值赋给各参数,但运行时程序只是将数组中最后一个元组的值赋给了参数,其它参数的值都是空的
请问各们高手如何解决?
...全文
494 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeeSunSet 2005-07-22
  • 打赏
  • 举报
回复
Dim v1 As ParameterValues()
Dim pd1 As ParameterDiscreteValue()
'传入参数名数组和对应值的数组就OK了.
Function ForParamters(ByVal ParametersValue As String(), ByVal paramtersName As String(), ByVal Cr As CrystalDecisions.CrystalReports.Engine.ReportClass)
Dim i As Integer
ReDim pd1(paramtersName.Length - 1)
ReDim v1(paramtersName.Length - 1)
' ReDim pd1(paramters.Length - 1)
For i = 0 To UBound(ParametersValue)
pd1(i) = New ParameterDiscreteValue()
v1(i) = New ParameterValues()
Try
pd1(i).Value = ParametersValue(i) & ""
Catch
pd1(i).Value = ""
End Try
v1(i).Add(pd1(i))
Cr.DataDefinition.ParameterFields.Item(paramtersName(i)).ApplyCurrentValues(v1(i))
Next
'报表有多少个参数就必须全部传值,否则会出错,切记!!!
End Function
www8s88com 2005-07-15
  • 打赏
  • 举报
回复
MARK
zr1982930 2005-07-14
  • 打赏
  • 举报
回复
你是不是参数传的有点问题啊
///////////////////////////////////////////////////////////传参数
报表 rp= new 报表();//报表实例化
CrystalDecisions.Shared.ParameterDiscreteValue p1=new ParameterDiscreteValue();
p1.Value= 你要赋给参数的值(想赋什么就赋什么);
ParameterValues P1=new ParameterValues();
P1.Add(p1);
rp.DataDefinition.ParameterFields["报表中定义的参数名"].ApplyCurrentValues(P1);
/////////////////////////////////////////////////////////////
wj918 2005-07-11
  • 打赏
  • 举报
回复
怎么没有什么回答我的问题呢?

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧