Ssrs 2008 通过SSRS参数输入的文本,包括字段名
我有一个SSRS“声明”类型的报告,它有文本框和表格的总体布局。对于主文本框,我想让用户提供值作为参数,以便可以自定义文本,即Ssrs 2008 通过SSRS参数输入的文本,包括字段名,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,我有一个SSRS“声明”类型的报告,它有文本框和表格的总体布局。对于主文本框,我想让用户提供值作为参数,以便可以自定义文本,即 Parameters!MainText.Value = "Dear Mr.Doe, Here is your statement." 然后我可以将文本框值设置为参数值: =Parameters!MainText.Value 但是,我需要能够允许传入参数值包含一个dataset字段,如下所示: Parameters!MainText.Value = "Dear Mr.
Parameters!MainText.Value = "Dear Mr.Doe, Here is your statement."
然后我可以将文本框值设置为参数值:
=Parameters!MainText.Value
但是,我需要能够允许传入参数值包含一个dataset字段,如下所示:
Parameters!MainText.Value = "Dear Mr.Doe, Here is your [Fields!RunDate.Value] statement"
因此,我的报告输出将如下所示:
“亲爱的多伊先生,这是您11月份的声明。”
我知道您可以在文本框中通过提供静态文本和字段请求来定义它,但是我需要SSRS来识别参数字符串中有一个需要转义和绑定的字段请求
有人对此有什么想法吗?我正在使用SSRS2008R2,有几种截然不同的方法。要知道哪一项最适合您,需要更多信息:
String.Replace()
,以替换
在动态值中。您需要为用户建立一些代码,为其替换字符串。嵌入的代码将使您能够访问报表中的许多对象。例如:
Public Function TestGlobals(ByVal s As String) As String
Return Report.Globals.ExecutionTime.ToString
End Function
将返回执行时间。显示了访问报告参数的其他方法
1.5如果此函数变得非常大,请考虑使用自定义程序集。这样您就可以在Visual Studio中获得更好的创作体验你试过连接吗
参数!MainText.Value=“亲爱的Doe先生,这是您的”&[Fields!RunDate.Value]&“语句”还有另一种方法:显示已填入数据集值的参数字符串。 为此:例如,创建一个名为RunDate的参数,并将默认值设置为“从查询中获取值”,然后选择第一个数据集和值字段(RunDate)。现在,该参数将保存RunDate字段,您可以在其他地方使用它。将此参数设置为隐藏或内部,并设置正确的数据类型。e、 g.日期/时间,以便以后可以格式化其值 现在创建第二个参数,该参数将保存所需的默认文本:
Parameters!MainText.Value = "Dear Mr.Doe, Here is your [Parameters!RunDate.Value] statement"
不确定这种语法是否有效,但你明白了。您也可以在此处进行格式设置,例如仅设置日期时间的月份:
="Dear Mr.Doe, Here is your " & Format(Parameters!RunDate.Value, "MMMM") & " statement"
这种方法只使用内置方法,避免了对解析器的需要,因此用户不必学习解析器的语法
当然有一个缺点:用户可以完全控制参数内容,并且可以提供与报告内容不匹配的值,但字符串替换方法也是如此
为了完整起见,还有一个简化的选项:附加多个参数:创建两个名为MainTextBeforeRunDate和MainTextAfterRunDate的参数
文本框值表达式变为:
=Parameters!MainTextBeforeRunDate.Value & Fields!RunDate.Value & Parameters!MainTextAfterRunDate.Value.
这应该解释清楚。最简单的解决方案往往是最好的,但在这种情况下,我有我的怀疑。至少这可以确保您的运行日期最终出现在最终报告文本中。嗨,杰米,谢谢您的快速回复。我认为
String.Replace()
将是我唯一可行的选择。虽然我不太确定这是否有效。。。因为即使我进行了替换,也可以说查找%RunDate%并替换为字段!RunDate.Value
它仍然只是其中的文本,SSRS在渲染时也会这样处理它。我的备份选项是在数据集到达ssrs之前完成所有这些操作。如果需要字段值,则需要将这些值传递给函数,但对于许多其他事情,我认为可以从嵌入的代码访问全局报告属性。我将在接下来的几个小时内进行测试。嗨,路易斯,这将作为文本框的值,但不是作为参数值。因为SSRS似乎将整个内容作为字符串,即“亲爱的Doe先生,这是您的&[Fields!RunDate,Value]&语句”,即使您指定了自己的引号。我尝试了几种不同的方法来逃避引用,但似乎不起作用。