我有一个带有参数的报告,该参数通常通过运行将另一个参数作为输入的查询来获取其默认值。当报告以交互方式运行时,这很好用。
但是,我需要从所有过滤器都由代码提供的代码中调用此报告。我为其他参数编写的代码工作正常:
string report = "Analysis/Report.aspx?ReportPath=/MyReport";
string fullReportPath = string.Format("{0}&LocationId={1}&BatchNumber={2}&SearchReference={3}", report, locationId, batchNumber, reference);
RunReport(fullReportPath);
有一个下拉列表,其中可用值和默认值都是通过以locationId
为参数的查询从数据库中检索的。这是默认情况下选择所有值。
我需要在报告和/或代码中更改什么才能像现在一样工作,并且我可以为该下拉列表提供选定的值作为参数?
我发现这篇博文在设置其他参数的值时使用内部或隐藏控制参数的概念,但给出的示例只是将其他参数设置为默认值或将其留空。我需要参数来运行当前查询。
看起来 SQL Reports 实际上会自动执行我想要的操作——但前提是带有相关查询的参数紧跟在第一个查询之后。
我们出于其他原因修改了报告,并将有问题的下拉列表移到了参数列表的更高位置,因此它排在第二位(在填写位置下拉列表的查询之后)。完成后,下拉列表会自动填充。
我在问题中链接到的博客文章提到参数顺序很重要,并且同一作者有一篇关于此的单独文章。