更新:好的,所以自定义代码在SSRS 2008报表服务中有效,但在我将报表呈现为PDF时则无效。代码正在尝试在主报告标题中创建动态报告标题。
它在报表服务中运行良好但是当我以PDF格式保存时,只显示最后一个子报表的值(上次在报表上执行自定义代码)...
如何让PDF渲染正确执行每个子报告的自定义代码?
此前的问题详情......
我在SSRS 2008报告中使用了代码模块,但在部署报告后它无法正常运行。
我现在正在尝试创建一个自定义代码程序集来执行相同的操作但是我收到错误:
> [rsErrorLoadingCodeModule] Error while loading code module:
>> SSRSDynamicRptTitle, Version=1.0.0.0, Culture=neutral,
>> PublicKeyToken=null.
>>
>> Details: Could not load file or assembly 'SSRSDynamicRptTitle,
>> Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its
>> dependencies. The system cannot find the file
>> specified. C:\DEV\KPI\APKPIReports\APKPIReports\MasterReport2.rdl
我已将dll复制到此处:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies
这里
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
在这里:
C:\Program Files\Microsoft SQL Server\MSRS10.SQL2008VANILLA\Reporting Services\ReportServer\bin
但仍然没有骰子。
以下是我试图转变为程序集的模块中的代码:
Public Class DynamicRptTitle
Public Shared myTitle As String
Public Shared Function SetRptTitle(ByRef t As String) As Boolean
myTitle = t
Return False 'not hidden
End Function
End Class
最初我只是在项目的代码部分使用了共享变量myTitle
和共享函数SetRptTitle
,它在SSRS 2008R2中完美运行,但在2008年没有。
有什么想法吗?
更新:
嗯,好的,所以我把dll复制到了错误的文件夹中。显然我需要它:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies
在这里:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies
我把它复制到VS的错误版本......
我还将程序集名称更改为与dll /名称空间相同的名称,因为GAC说这是一个好主意。聪明人,那个GAC。
无论如何,它几乎都在工作。它仍然可以在我的本地开发环境中运行,但在部署时却不行。在部署的报告中,我在整个报告中重复插入dll的最后一个值。部署程序集时是否有任何特殊注意事项?也许我需要重温GAC ......