当前位置:  开发笔记 > 开发工具 > 正文

显示嵌入在DLL文件中的.RDLC报告

如何解决《显示嵌入在DLL文件中的.RDLC报告》经验,为你挑选了3个好方法。

我有一个由Windows服务和表单应用程序使用的报告.所以,我想把报告嵌入一个可供两者使用的DLL文件中.

问题是,如果我尝试在我的Windows窗体应用程序中设置ReportViewer控件的ReportEmbeddedResource属性,它将在Windows窗体应用程序中搜索资源,而不是dll文件.

例如:来自Windows窗体应用程序的代码:

rv.LocalReport.ReportEmbeddedResource = "MyReportInMyDLLFile.rdlc"

如何让上面的命令查找我的DLL文件中的嵌入式资源?



1> gschuager..:

这样的事情应该这样做:

Assembly assembly = Assembly.LoadFrom("Reports.dll");
Stream stream = assembly.GetManifestResourceStream("Reports.MyReport.rdlc");
reportViewer.LocalReport.LoadReportDefinition(stream);


我爱你.

2> Dan Higham..:

只需使用程序集的完整命名空间,然后使用文件夹名称,然后使用文件名:

rv.LocalReport.ReportEmbeddedResource = 
    "My.Assembly.Namespace.Folder1.Folder2.MyReport.rdlc";

然后使用属性窗格确保将报告文件设置为嵌入式资源.


我不太确定,但我想这只有在报告与此代码所在的同一程序集中才有效.

3> DrCamel..:

可能最好的做法是从其他程序集获取RDLC资源的流,然后将其传递给Report Viewer控件的"LoadReportDefinition"方法.

可以在此处找到如何从不同程序集中的嵌入式资源获取流的详细信息:使用ResourceManager类检索资源

此外,您需要使用它的完整命名空间路径来引用嵌入式资源.

例如,如果您的应用程序具有TheApp的默认命名空间,并且在名为" Reports " 的文件夹中保留名为" MyReport.rdlc "的报告,则报告引用调用将为: -

rv.LocalReport.ReportEmbeddedResource = "TheApp.Reports.MyReport.rdlc";

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有