SSRS参数返回无效的数据类型

时间:2016-04-19 15:29:13

标签: sql-server visual-studio-2010 reporting-services ssrs-2012

我为这个问题获得了Tumbleweed徽章.... :)

我已经从原始问题稍微移开了一下,但仍然看着使用内部/隐藏参数,这次转到另一个运行存储过程的报告(发送电子邮件)。

主报告(报告A)有一个名为StudentCourses的参数(最初称为ReportParameter1),我已尝试将其作为隐藏或内部,并且当前勾选了允许空白值和允许多个值。
(其默认值是查询结果中的字段,显示学生注册的课程)。

我的文本框的操作不再转到URL(打开PHP表单),但现在使用Go to report来调用报告B.在操作选项下,我添加了两个参数; StudNetworkID和StudCourses。课程数量从2到5不等。

新报告(报告B)有两个参数,也称为StudNetworkID和StudCourses;两者都是隐藏的,而StudCourses已勾选允许空白值。 [所有参数都是文字,顺便说一句。]

  

如果报告A StudCourses设置为= Parameters!StudentCourses.Value(0),那么第一个课程将显示在报告B上。到目前为止一直很好。

     

如果报告B StudCourses设置为允许多个值,则报告B显示#Error,并且给出的警告描述为" [rsInvalidExpressionDataType]在textrun中使用的值表达式'Textbox3.Paragraphs [0] .TextRuns [0 ]'返回了无效的数据类型。"

     

如果报告B StudCourses设置为NOT允许多个值,并且报告A StudCourses值设置为[@StudentCourses],则报告B显示文本" [@ StudentCourses]"。

     

如果将报告B StudCourses设置为再次允许多个值,则会得到与以前相同的无效数据类型错误。

关闭允许报告B上的多个值以避免#Error问题...

  

设置报告A StudCourses to = Parameters!StudentCourses.Value(0)&参数!StudentCourses.Value(1)然后报告B在一行上显示课程1和课程2。好了到目前为止。

     

但是,将报告A StudCourses设置为= Parameters!StudentCourses.Value(0)&参数!StudentCourses.Value(1)&参数!StudentCourses.Value(2)给出了一个运行时错误,指出索引超出了数组的范围(因为目前只有两个课程)。在点击文本框时,报告B只是说"' StudCourses'参数缺少值"。

行...

  

我关闭了在报告A StudentCourses参数上允许多个值(保存查询结果的参数)和Go to report参数StudCourses我添加了其他值,因此最终得到值(0)到值(4)结果很有意思。对于使用的每个参数值,它给了我一个关于报告B的第一个课程的信。因此,当我包括最多值(4)时,它给了我前五个字母当然一个!

是的,好吧,这是因为它不再读取多个值,因此指定一个数字只会返回该位置的字母。

... SO

如何允许最多传递5门课程

以下是原始问题

我在Visual Studio中设计了一个小报告,显示学生注册的课程。课程数量从2到5不等,具体取决于学生。

此外,在报告上还有一个文本框,单击该文本框将动作一个URL来打开PHP表单。

我已经研究过如何将用户ID传递给这个PHP表单但是,如果可能的话,我还想通过课程标题。

如果我使用内部报告参数*我可以将这些参数添加到网址中,如下所示:

="http://myurl/webform.php?param=" & Mid(User!UserID,InStrRev(User!UserID,"\")+1) 
& Parameters!ReportParameter1.Value(0)
& Parameters!ReportParameter1.Value(1)
& Parameters!ReportParameter1.Value(2)
& Parameters!ReportParameter1.Value(3)
& Parameters!ReportParameter1.Value(4)

但不幸的是我得到了运行时错误"文本框的超链接表达式' Textbox7'包含错误:索引超出了数组的范围。"

如果我只是将前两个报告参数设置为正常。

我尝试使用参数计数,例如iif(参数!ReportParameter1.Count> 2,参数!ReportParameter1.Value(2),""),但我仍然得到同样的错误。

请有人告诉我如何解决此运行时错误,或建议另一种方法来执行此操作吗?

由于

PS *报告参数设置为文本,允许空白值,允许多个值,内部,可用值=无,默认值=从查询中获取值;值字段=课程标题。

0 个答案:

没有答案