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