如何将多个值传递给报表查看器数据源

时间:2013-03-11 14:25:46

标签: visual-studio-2012 client reporting rdlc

我正在尝试在visual studio 2012中开发客户端报告。我的报告可以正常使用不同的选择标准变量。我在过滤器中选择多个列表值时收到错误。将值传递为

<SelectParameters>
        <asp:FormParameter DefaultValue="0" FormField="ctl00$MainContent$BasicFilterControls$ddlStartHour" Name="StartHour" />
        <asp:FormParameter DefaultValue="0" FormField="ctl00$MainContent$BasicFilterControls$ddlStartMinute" Name="StartMinute" />
        <asp:FormParameter DefaultValue="2012-11-01" FormField="ctl00$MainContent$BasicFilterControls$txtStartDate" Name="DateFrom" />
        <asp:FormParameter DefaultValue="23" FormField="ctl00$MainContent$BasicFilterControls$ddlEndHour" Name="EndHour" />
        <asp:FormParameter DefaultValue="59" FormField="ctl00$MainContent$BasicFilterControls$ddlEndMinute" Name="EndMinute" />
        <asp:FormParameter DefaultValue="2012-11-01" FormField="ctl00$MainContent$BasicFilterControls$txtEndDate" Name="DateTo" />

        <asp:SessionParameter DefaultValue="5027" Name="AgentList" SessionField="AgentList" />
    </SelectParameters>

在需要查询时,AgentId为SkillTargetID IN(@AgentList)。当我将单值作为5000传递其工作正常并显示记录时。但是当我传递多个值为5000,5001,5002等时,则出现错误。任何将多个值传递给报表查看器的建议。 我曾尝试过

5000,5001,5002

'5000', '5001', '5002'

(5000,5001,5002)

('5000'),('5001'),('5002')

Error

我在visual studio 2012,Sql server 2008 r2和.net framework 4.5上尝试这个。

1 个答案:

答案 0 :(得分:0)

我无法找到任何合适的解决方案,但我通过更改DataSource SelectCommand查询解决了我的问题。在报告刷新button_click上,我只需将MyDataSource.SelectCommand查询更改为

string AgentIds = "5000,5001,5002";
        MyDataSource.SelectComamnd = "Select * from Agent where AgentId IN ('" + AgentIds + "')";
        ReportViewer1.LocalReport.Refresh();

它有效。如果有人找到一个面糊解决方案来向DataSource变量添加多个值,那么请更新我。