我有一个报告,它需要处理从SQL获得的数据,然后才能显示它。为此,我有一个自定义代码和一个字典,我在其中推送所有处理过的数据。我的问题是,如果我将字典保存在报告变量中,当我将报告导出到Word时,该变量似乎已被清除。报表变量的生命周期是什么?在报表生命周期中保存对象的最方便方法是什么。
谢谢!
发布于 2013-05-15 21:45:01
我已经使用自定义代码大约6周了,所以我可以回答SSRS2008 R2中变量生命周期问题的一些部分。
我有一个报告,使用字典来存储总数,允许我提供一些专业的财务小计。我有一些你可以检查的东西(因为我还不能对事情发表评论)。
您是否已将变量声明为“shared”,这是一个自定义代码特定的关键字,不会转换为VB.net。它可以确保变量存活到下一页,我在Excel中测试了这一点,word似乎可以很好地传输变量的数据。
然而,在SSRS "report on demand“引擎(在web上,但不是在BIDS上)下有一个权衡,它持有变量,并且在缓存本身被清除之前不会进行垃圾回收。我编写了一些更多的自定义代码,以指示参数何时发生更改并清除变量。
代码;
Public Shared Dim Totals As New System.Collections.Generic.Dictionary(Of String, Decimal)
Public Function WipeKeys() as Decimal 'Clear Data from Dictionary (this will clear the cached object as well)
Totals.Clear()
Return 0D
End Function我还会建议在任何可能的情况下覆盖键,以确保减少添加循环。
致以敬意,
https://stackoverflow.com/questions/16564241
复制相似问题