我想为SSRS 2014重新创建旧的SSRS报告。旧报告是在SSRS 2005中在Dundas Chart for Reporting Services的支持下完成的。由于Dundas被微软收购,因此SSRS 2014不再提供Addon。
报告的关键对象是散点图。在旧报告中,可以将自定义代码添加到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自定义代码。
是否有机会在不必将散点图和样条曲线范围的数据合并到一个数据集中的情况下进行此操作?
即使我能够将数据合并到一个数据集中,我认为由于所选类别和系列组的实际数据,我无法得到我想要的结果。
我已经考虑了查找功能,但这也是不可能的,因为数据没有相同的列。
答案 0 :(得分:0)
您可以使用自定义程序集(几乎是编译为DLL的C#类,加载到SSRS服务器,然后在RDL中引用)对数据库(数据集之外)运行查询。
我过去做过这个。 C#类有效地将表示查询的字符串作为输入,然后在数据库中执行该查询(硬编码或作为另一个参数提供)。您可以整天讨论安全性和权限我确定...您需要在那里做出自己的决定。
您可以像在VBA自定义代码中一样调用表达式中的自定义代码。
我不知道的是,您是否可以返回超过1个值并在SSRS中对这些值进行操作。我只有调用自定义程序集的用例获得1个标量值。