我为这个问题获得了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 *报告参数设置为文本,允许空白值,允许多个值,内部,可用值=无,默认值=从查询中获取值;值字段=课程标题。