我有一个逗号分隔的字符串,其中包含数字,并创建了一个vb函数,将其转换为整数数组,但这不起作用。它期望的数据类型是什么,我该如何做与我正在做的事情类似的事情?
Function StringArrayToIntArray(ByVal s As String) As Integer()
Dim ints = Array.ConvertAll(s.Split(","c), Addressof Convert.ToInt32)
return ints
End Function
答案 0 :(得分:1)
如果您仍在寻找答案:SSRS图表不会接受开箱即用的阵列。它们用于数据集,因此,如果可能的话,我建议创建一个提供所需数据的数据集,而不是尝试使其适用于数组。
那就是说,如果你真的需要(例如你必须绘制一个多值报告参数),你可以使用我一直在使用的技巧:
对于第1步,创建您喜欢的新数据集。例如,如果您有SQL数据源,则可以使用
SELECT row_number() OVER (ORDER BY ID) - 1 AS ID
FROM [SomeTable]
或者,如果您有嵌入式XML数据集,则可以使用
<Query>
<XmlData>
<?xml version="1.0"?>
<IDs>
<ID>0</ID>
<ID>1</ID>
<ID>2</ID>
</IDs>
</XmlData>
</Query>
对于步骤2和3,您可以使用拆分功能或自定义代码。
第4步是有趣的地方。首先,确保使用虚拟ID数据集作为图表类别(Example screenshot)。接下来,在图表中添加一个系列。打开系列属性,对于&#34;值字段&#34;,使用以下表达式
=<NumArrayY>(Fields!ID.Value)
其中&lt; NumArrayY&gt;是您的数值数组(例如自定义代码的输出)。然后,对于&#34;类别字段&#34;,对x值使用类似的表达式
=<NumArrayX>(Fields!ID.Value)
这可以做你想要的,但对于在同一份报告上工作的人来说,这并不是特别漂亮或显而易见。请注意,如果ID数据集包含太多的数组行,则会出现运行时错误:
[rsRuntimeErrorInExpression] The X expression for the chart ‘Chart1’ contains an error: Index was outside the bounds of the array.
但这份报告仍然有效。