我在过去几周一直在研究SSRS 2005/2008,并创建了一些服务器端报告.对于某些应用,一位同事建议我针对该特定情况研究RDLC.我现在试图了解RDL和RDLC之间的主要区别.
搜索此信息最多会产生碎片化信息.我了解到:
但我仍然不完全理解RDLC文件与其他相关系统(报告服务器,源数据库,客户端)之间的关系.
为了更好地掌握RDLC文件,我想知道它们的使用与RDL文件的区别以及在什么情况下选择RDLC而不是RDL.也欢迎链接到资源.
ASP.NET论坛上的一个主题讨论了同样的问题.从中,我对这个问题有了更好的理解.
RDLC的一个特性是它可以在ReportViewer控件中完全在客户端运行.
这是优势还是劣势取决于具体应用.
在我的应用程序中,无论如何都可以使用Reporting Services实例,并且可以轻松地从数据库中提取报告所需的数据.有什么理由让我考虑RDLC,还是我应该坚持使用RDL?
发布报告服务报告时.实际的.RDL文件在服务器上的位置在哪里?
我可以通过浏览报表管理器重新下载.RDL文件吗?但是这个文件位于报告服务服务器上的哪个位置?
谢谢
在SSRS中,我注意到rdl.data缓存文件存储在我的开发机器上.运行报告时,这些文件是否也存储在Reports Server上?如果是这样,有没有办法避免在服务器上创建这些文件?
我在TablixCell中找到了colspan和rowspan属性,但是在报表设计器中仍然无法垂直合并单元格,如果我手动设置Rowspan修改RDL xml文件,则reportViewer会显示错误信息:TablixCell中的CellSptents必须为1 .
有没有其他方法来实现tablix的垂直合并单元格?
我正在为使用Reporting Services的客户端编写遗留应用程序.我已导入项目SVN存储库,其中包括一个Reporting项目和文件夹,在Visual Studio Reporting解决方案/项目中进行设置.
此SVN文件夹(但不包括VS解决方案/项目)包含.rdl文件(实际报告定义)和.rdl.data文件.我相信.rdl.data文件用于缓存报告.
从开发的角度来看,这些.rdl.data文件应该是源代码控制的吗?我正在考虑从存储库中删除它们,因为它们往往会经常更改(几乎每次我都预览报告),并且它正在制作SVN报告文件/文件夹已经更改,这很令人恼火.
我不认为这些.rdl.data文件是开发所必需的.可以/应该从源代码管理中删除它们吗?
我有一个报告服务报告,我似乎无法弄清楚如何重新排序表控件中的列.这可以直接编辑rdl文件吗?
我试图调用在SSRS中创建的.rdl报告在aspx页面中调用; 但我收到以下错误:
报表查看器Web控件需要
System.Web.UI.ScriptManager
Web表单上的
我的守则如下,
protected void Page_Load(object sender, EventArgs e)
{
//string query = Session["ClosedBugsResult1"].ToString();
if(!IsPostBack)
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/reportserver");
ReportViewer1.ServerReport.ReportPath = @"D:\Users\XXX\Documents\Visual Studio 2008\Projects\BugtrackerSample1\BugTrackerSample\BugTrackerSample\Report1.rdl";
//ReportParameter[] param = new ReportParameter[1];
//param[0] = new ReportParameter("CustomerID", txtparam.Text);
//ReportViewer1.ServerReport.SetParameters(param);
System.Web.UI.ScriptManager scriptManager = new ScriptManager();
Page page = new Page();
System.Web.UI.HtmlControls.HtmlForm form = new HtmlForm();
form.Controls.Add(scriptManager);
form.Controls.Add(ReportViewer1);
page.Controls.Add(form);
page.DataBind(); //exception here
ReportViewer1.ServerReport.Refresh();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我在.NET Framework 4的Visual Studio 2017中有一个项目.对于报告,我使用的是RDLC设计器,但是我遇到了问题.设计人员使用RDL 2016创建报告,我需要您使用2010定义.
我可以配置吗?
我需要它,因为该程序必须与Windows XP兼容,并且没有支持RDL 2016 for Windows XP的ReportViewer Runtime.
我Microsoft.ReportViewer.WebForms
通过嵌入在MVC应用程序中的aspx页面使用版本11。该报告可直接从报告查看器中以PDF格式呈现。
问题
我有一个Tablix可以显示外部图像。如果图像的URL是从表达式中计算出来的,或者是从数据库中的列设置的,则图像不会显示。仅当我直接在报告中对URL进行硬编码时,才会显示该图像。显然,这不是解决方案,但是它表明报表能够访问URL并呈现图像。
我从呈现报告时得到以下警告:
图片“ LinkedImage”的ImageData无效。详细信息:无效的URI:无法确定URI的格式。
图像“ LinkedImage”的ImageData属性的值为“”,这不是有效的ImageData。
我尝试过的
我已经仔细检查了生成的URL,它是正确的。我什至使点击动作成为了指向图像的超链接,它可以正确地转到图像。
最初,我是在表达式中连接URL,但此操作不起作用后,我让SQL Query构建了整个URL。它仍然不显示。
我尝试设置一个标志:
reportViewer.LocalReport.EnableExternalImages = true;
Run Code Online (Sandbox Code Playgroud)使用.NET Reflector生成PDB文件,我能够逐步浏览报告查看器的代码。在值对象上有一个名为“ IsExpression”的标志,在报表呈现时将其设置为false。我不太了解报表查看器的内部工作原理,因此不知道这是不是一个红鲱鱼。
我已将输出格式更改为HTML,但仍不显示。图片标记(在Chrome开发者工具中可以看到)呈现为:
<img onload="this.fitproportional=true;this.pv=0;this.ph=0;" height="5px" width="1px" src=(unknown)>
Run Code Online (Sandbox Code Playgroud)我尝试将MIMEType值设置为每个图像的正确值。(感谢迈克·霍尼的建议)
我尝试了AutoSize,Fit,FitProportional和Clip的不同大小调整值。
我在这里使用安装程序修复并完全重新安装了ReportViewer运行时安装程序:https : //www.microsoft.com/zh-CN/g/download/details.aspx? id =35747
我已经从本地Visual Studio实例和另一个服务器上的网站(已安装ReportViewer版本)中的已部署版本运行了网站,问题仍然存在。
我想提请注意数字4。是否有一种配置会导致ReportViewer代码无法将值视为表达式?
码
这是RDL中的标记:
<Image Name="LinkedImage">
<Source>External</Source>
<Value>=Fields!imageUrl.Value</Value>
<Sizing>FitProportional</Sizing>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
Run Code Online (Sandbox Code Playgroud)
这是一个示例URL(从示例中删除了主机):
http://---------/images/FEE40608-0457-E511-A17F-00155D145C00/FFE40608-0457-E511-A17F-00155D145C00.jpg
Run Code Online (Sandbox Code Playgroud)
我想念什么吗?谢谢!
我正在使用Microsoft.Reporting.Webforms版本10来解析RDLC文件并生成PDF.RDLC是一个带有几个嵌入式表达式的简单发票.
当我运行应用程序时,我得到一个异常,即在编译表达式时已经调用了已过时的SecurityAction.RequestMinimum.
这是一个已知的bug还是我可以补救的东西?
编译表达式时发生意外错误.本机编译器返回值:'[BC40000]'RequestMinimum'已过时:'程序集级声明式安全性已过时,默认情况下不再由CLR强制执行.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=155570.'.'.
在Microsoft.Reporting.PreviewStore.GetCompiledReport(CatalogItemContextBase context,Boolean)上的Microsoft.Reporting.PreviewStore.StoredReport.EnsureCompiled(CatalogItemContextBase itemContext)中的Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context,Byte [] reportDefinition,Boolean generateExpressionHostWithRefusedPermissions,ControlSnapshot&snapshot) Microsoft的Microsoft.Reporting.LocalService.GetCompiledReport(CatalogItemContextBase itemContext,Boolean rebuild,ControlSnapshot&snapshot)中的Microsoft.Reporting.PreviewStore.GetCompiledReport(CatalogItemContextBase context,Boolean rebuild,ControlSnapshot&snapshot)中的rebuild,Byte []和reportDefinition,ControlSnapshot&snapshot). Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()中的Reporting.LocalService.CompileReport(CatalogItemContextBase itemContext,Boolean rebuild)