0

我想为 SSRS 2014 重新创建旧的 SSRS 报告。旧报告是在 SSRS 2005 中在 Dundas Chart for Reporting Services 的支持下制作的。由于 Dundas 被 Microsoft 收购,SSRS 2014 不再提供该插件。

报告的关键对象是散点图。在旧报告中,可以将自定义代码添加到 Dundas 图表。使用自定义代码,我们构建了一个具有不同样条范围的图表,其中数据来自数据库中某处的数据,背景是图表中的实际数据。使用的代码如下:

String connString01b = 
"SERVER=SERVER;database=DATABASE;Trusted_Connection=Yes";
String commandText01b = "SELECT xx_X, xx_Min, xx_Max 
FROM table WHERE (xx_X IS NOT NULL) ORDER BY 
xx_X;";

System.Data.SqlClient.SqlConnection conn01b = new 
System.Data.SqlClient.SqlConnection(connString01b); 
System.Data.SqlClient.SqlCommand command01b = new 
System.Data.SqlClient.SqlCommand(commandText01b, conn01b); 
conn01b.Open(); 
System.Data.SqlClient.SqlDataReader aReader01b = 
command01b.ExecuteReader(System.Data.CommandBehavior.CloseConnection); 

strLegend = "xxx";
Series Series01b = chartObj.Series.Add(strLegend); 
Series01b.Type = SeriesChartType.SplineRange; 
Series01b.ChartArea = chartObj.ChartAreas[0].Name;
Series01b.Color = Color.FromArgb(127, Color.Blue);

Series01b.Points.DataBind(aReader01b,"xx_X","xx_Min, 
xx_Max
","");

现在我想在 SSRS 2014 中构建这个图表,而不能使用 dundas 自定义代码。

是否有机会在不必将散点图和样条曲线范围的数据合并到一个数据集中的情况下做到这一点?
此外,即使我能够将数据组合到一个数据集中,我认为由于为实际数据选择的类别和系列组,我无法获得我想要的结果。

我已经考虑过 Lookup 函数,但这也是不可能的,因为数据没有相同的列。

4

1 回答 1

0

您可以使用自定义程序集(几乎是编译为 DLL、加载到 SSRS 服务器、然后在 RDL 中引用的 C# 类)对数据库(数据集外部)运行查询。

我过去曾这样做过。C# 类有效地将表示查询的字符串作为输入,然后在数据库中执行该查询(硬编码或作为另一个参数提供)。我敢肯定,您可以整天讨论安全性和权限……您需要在那里做出自己的决定。

您可以像调用 VBA 自定义代码一样在表达式中调用自定义代码。

我不知道您是否可以返回超过 1 个值并在 SSRS 中对这些值采取行动。我只有调用自定义程序集来获得 1 个标量值的用例。

于 2017-11-02T23:19:39.847 回答