在运行时为ssrs动态创建参数

时间:2009-11-16 20:52:32

标签: c# sql-server-2005 reporting-services

我正在使用Visual Studie 2005和SQL Server 2005.我试图运行我在服务器上创建的一些ssrs报告。我是否可以在代码中的运行时创建参数,即使我没有在报表中创建参数。这是我的示例代码:

        ReportNum = Test.Left(cboReportList.Text, 9);
        reportViewer1.ServerReport.ReportServerUrl = new Uri  ("http://simsamwqs04.rsc.humad.com/reportserver");
        reportViewer1.ServerReport.ReportPath = "/Claims/Report Project1/" + ReportNum;

        //ReportViewer1.ServerReport.ReportPath = "/Report Project State/Report1";
        ReportParameter[] Params = new ReportParameter[1];
        Params[0] = new ReportParameter("fundctr", txtCenter.Text);
        reportViewer1.ServerReport.SetParameters(Params);
        reportViewer1.ServerReport.Refresh();

2 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题,但如果我这样做,那么您似乎在询问是否可以在以前不存在的报告中添加参数。

如果你还没有在报告中创建参数,那么如果你能够在运行时创建它们,你对参数的期望是什么?你根本没有任何东西。报告中没有任何内容可以查找它们。

答案 1 :(得分:0)

您可以尝试创建所有必需的参数,并决定使用coalesce运算符在SQL中使用它们。像这样:

select field1,field2
from table_a
where /*sneaky part below*/
field1 = Coalesce(@ParamForField1, field1)
AND
field2 = Coalesce(@ParamForField2, field2)

如果参数值为null,则会有效地忽略这些参数。但它并不适用于所有情况。这是一个很长的循环你的问题,但可能适合你。