0

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')

エラー

Visual Studio 2012、SQL Server 2008 R2、および.netFramework4.5でこれを試しています。

4

1 に答える 1

0

適切な解決策が見つかりませんでしたが、DataSourceSelectCommandクエリを変更することで問題を解決しました。レポートの更新button_clickで、MyDataSource.SelectCommandクエリを次のように変更します。

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

そしてそれは動作します。誰かがDataSource変数に複数の値を追加するためのより良い解決策を見つけたら、私を更新してください。

于 2013-03-12T11:23:34.010 に答える