SSRS如何将数据集字段的某个值馈送到自定义代码中的变量



我有一个包含条件格式的报告。颜色值通过报告上自定义代码中的变量输入,如下Dim vRed as String ="#FF0000" Dim vGreen as String ="#008000",编码继续。。

现在的问题是,我们有很多报告,如果我们想改变颜色,我们必须改变每个报告。因此,我们创建了一个包含两列的配置表。一个用于ColourName,另一个用于ColorCode。

现在我想喂";红色";自定义代码中的颜色代码到vRed。有人能帮我怎么做吗。

如果你只需要设置一个变量,你可以用变量和值创建一个函数来设置它。

Public Function SetVariableValue(varName as Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.Variable, varValue as String)
varName.Value = varValue 
End Function

然后你需要把它叫做

=CODE.SetVariableValue(Variables!CCColors.Value, FIRST(Fields!Color.Value, "Dataset1"))

请参阅报告功能中的SSRS参考报告变量

让我们假设您有这样的代码。

Public Function myFunction (someParameter AS Integer, someOtherParameter as String) AS String
Dim vRed as String = "#FF0000"
Dim vGreen as String = "#008000"
Dim vBlue as String = "#0000FF"
' some code here 
End Function

你用之类的东西调用你的代码

=Code.myFunction(Fields!SomeInt.Value, Fields!SomeText.Value)

您需要创建一个名为dsColours的数据集,其中包含您的颜色值,因为这是一个非常小的表,我会调整它,使其更容易在报告中引用。

SELECT DISTINCT
(SELECT ColourCode FROM myConfigTable WHERE ColourName = 'Red') AS Red,
(SELECT ColourCode FROM myConfigTable WHERE ColourName = 'Green') AS Green,
(SELECT ColourCode FROM myConfigTable WHERE ColourName = 'Blue') AS Blue
FROM myConfigTable

现在把你的函数改成这样。

Public Function myFunction (someParameter AS Integer, someOtherParameter as String, vRed as String, vGreen as String, vBlue as String) AS String
' some code here 
End Function

并像这个一样调用你的新函数

=Code.myFunction(Fields!SomeInt.Value, Fields!SomeText.Value,
FIRST(Fields!vRed.Value, "dsColours"),
FIRST(Fields!vGreen.Value, "dsColours"),
FIRST(Fields!vBlue.Value, "dsColours")
)

最新更新