【问题标题】:VBScript passing an array into SSRS VB codeVBScript 将数组传递到 SSRS VB 代码
【发布时间】:2011-03-01 18:21:22
【问题描述】:

在 SQL Server 2005 Reporting Services 中,我尝试评估一个表达式,该表达式输出一个数组,我尝试将其与我的报告一起传递给我的 VBScript 代码。 我的参数值是 事业部 MC 光盘 杜

join函数正确输出字符串BU-MC-CD-DU 然后我在表达式中使用 split 函数来拆分值并作为数组输出

 =Split(join(Parameters!ReportType.Value,"-"),"-",-1,1)

之后,我使用文本框中的以下表达式将数组传递给报表中的 VBScript 代码:

=Code.debugReportVisible(Split(join(Parameters!ReportType.Value,"-"),"-",-1,1))

我的VBScript函数如下

function debugReportVisible(pSelectedReports() ) as String
  dim debug as String
  debug = CStr(pSelectedReports(0))
end function

代码没有错误,但文本框中没有显示任何值。有人可以告诉我这是为什么吗?

非常感谢,

【问题讨论】:

  • 只是多此一举,但您使用的是option explicit,没有使用on error resume next,而且您在最后一个函数中包含MsgBox debug,不是吗?
  • 谢谢自动化,我不认为它是数据问题。问题似乎是将数组从表达式传递到报告代码中定义的 VB 脚本函数。假设我只是将连接表达式的字符串输出传递给 VB-Script 函数,然后将其拆分到那里的代码中,它就可以工作了。虽然仍然不确定为什么上面的代码不起作用!

标签: reporting-services vbscript reportingservices-2005


【解决方案1】:

所以我最终只是将连字符 (-) 分隔的字符串从为每个子报表的隐藏属性定义的连接表达式中传递给“isReportVisible 函数”(例如,BU 子报表可见性隐藏表达式如下)

=Code.isReportVisible(join(Parameters!ReportType.Value,"-"),"BU")  

function isReportVisible(pSelectedReports as String, pSubReport as String) as Boolean
      dim hidden as Boolean
      dim reportArray
      dim counter
      hidden = true
      counter = 0
      reportArray= Split(pSelectedReports,"-")
      for counter = 0 to UBound(reportArray)
      If reportArray(counter) = pSubReport Then
      hidden = false
      End If
    Next
      return hidden 
    end function

希望这对某人有所帮助....

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多