我已在报表中添加了一个参数,并选中了“允许多个值”选项.
这是一个状态列(IE,Proposed,In Progress,Completed,Cancelled),我希望用户能够选择要报告的不同OrderStatus(以及多少个).
我通常如何设置参数是:
report.SetParameterValue("@dtBegin",dtBegin.DateTime);
我试图为多个值做的是这样的:
//pseudo loop foreach(int intOrderStatus in intSelectedOrderStatuses) { report.Parameter_OrderStatus.CurrentValues.AddValue(intOrderStatus); }
我已检查它是否将值添加到OrderStatus参数,但是当报表运行时,会弹出CrystalReports对话框并要求我输入OrderStatus参数的值.所以似乎值不是“提交”参数.我做了很多搜索,无法弄清楚它为什么不起作用.
谢谢,
解决方法
只需使用int数组设置参数值即可.
report.SetParameterValue("@OrderStatus",new int[]{1,2,3});
在select专家中,您将使用in运算符.
{table.order_status_id} in {?@OrderStatus}