我正在使用VSTS 2008 + C#+ .Net 3.5 + SQL Server 2008 + ASP.Net + IIS 7来开发Web应用程序.任何快速且易于学习的报表查看器教程 - 我想根据SQL Server 2008中的数据生成报表.基本的设计和实现功能很好,此时无需学习有关报表审阅者的高级主题.
我正在使用Windows窗体生成使用c#和Microsoft报表查看器的身份证.一切都工作正常,除了我在Microsoft报表查看器中找不到列重复方向.
目前的情景
我的报告纸张尺寸是A4.每页最多可显示10张个人卡.页面中有2列.每列显示5张卡片.它是生成卡,如图所示.列重复方向是垂直的.首先列出第1列(1-5),然后列出第2列(6-10).
我的要求
我希望报告列重复方向水平,如下图所示.首先显示1然后是2和3和4,依此类推.
为什么我要水平显示而不是垂直显示?
它会保存纸张.例如,如果用户仅根据当前场景生成4个身份证,则它将在第1列中生成4张卡,并且因为我无法重复使用左侧空间而浪费整个页面空间.
通过将列方向重复到水平,将显示4个卡,如第1列,卡1和3以及第2列,将显示卡2和4.然后我可以剪纸并在以后重复使用.
我搜索了很多,但找不到任何解决方案.任何建议,评论或链接都会有所帮助.我不能使用任何其他报告.提前致谢.
我正在使用VS 2010的reportviewer控件来创建客户端报告(rdlc).在我的开发机器上一切正常,当我手动编译(通过VS2010)并手动部署到没有安装开发工具的测试机器时.
为了使测试机器能够正常工作(不安装VS2010或ReportViewer.exe),我必须在我的项目中添加对Microsoft.ReportViewer.Winforms,Microsoft.ReportViewer.Common和Microsoft.ReportViewer.ProcessingModel的引用并将它们全部"复制本地".
我有为Build Action配置的rdlc文件=>嵌入式资源.这是向项目添加新rdlc时的默认设置.我愿意配置这个,否则如果这会解决这个问题(不知道它是否相关).
问题:由于添加了rdlc文件,解决方案不再构建在构建服务器上.我在构建服务器上安装了ReportViewer.exe,并验证了GAC中是否存在所需的程序集..Net 4框架未安装在构建服务器上 - 我不认为这是必需的,因为该解决方案针对3.5运行时.
我相信问题的根源是构建日志中的以下内容:
目标"RunRdlCompiler":完全构建目标"RunRdlCompiler".输出文件"obj\Release\RdlCompile.compiled"不存在.使用程序集"Microsoft.ReportViewer.Common,Version = 9.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"中的"RdlCompile"任务.任务"RdlCompile":Report\RDLC\GreenReport.rdlc(0,0):error rsInvalidReportDefinition:报告定义无效.详细信息:报表定义具有无效的目标命名空间" http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition ",无法升级.
据我所知,Microsoft.ReportViewer.Common版本10.0.0.0应该用于"编译"rdlc,但MSBuild似乎使用9.0.0.0.我相信如果我可以强制它使用正确的版本(安装在GAC中的IS),解决方案将编译.
HY!我在visual studio 2010中有一个表单应用程序,我想用报表查看器创建一个报表并添加一些参数.我试图从代码中添加参数,但它没有用.我有这个错误:
Tablix"Tablix1"的FilterExpression表达式指的是"datastart"字段.报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内,则引用指定的数据集范围.Report2.rdlc:error rsParameterReference:Tablix"Tablix1"的FilterValue表达式是指不存在的报表参数"datastart".
在我的代码中,这样做:
private void SetReportParameters()
{
ReportParameter[] parameters = new ReportParameter[2];
parameters[0] = new ReportParameter("datastart", dateTimePickerStartRaport.Text);
parameters[1] = new ReportParameter("dataStop", dateTimePickerStopRaport.Text);
this.reportViewer1.LocalReport.SetParameters(parameters);
}
Run Code Online (Sandbox Code Playgroud)
并在调用此方法后,在报表查看器上刷新
reportViewer1.RefreshReport();
Run Code Online (Sandbox Code Playgroud)
我也看看其他论坛,我看到我必须在报告中添加参数,但我没有理解我该如何做到这一点.我还试图在报告的属性窗口中添加一些有价值的过滤器
=Parameters!datastart.Value
Run Code Online (Sandbox Code Playgroud)
但这也没有用.
鉴于Sql Server Reporting Services旨在开放和可扩展,并且捆绑的Report Manager不是那么好,那么有没有其他可选的开源SSRS前端?
通过"前端",我想我的意思是指可以在报表服务器上显示可用报表的Web应用程序,收集所需的参数(希望以比报表管理器更灵活的方式),然后运行报表.我想象的是使用Asp.Net ReportViewer组件构建的东西,但有更好的参数收集.
我在CodePlex上找到了一个:reportviewer.codeplex.com(编辑:实际上,这看起来像一个winforms解决方案,但它是我发现的最接近的...)但我想知道是否还有其他人,cos这似乎是一个很多人不得不"自己动手"的领域.
我正在尝试以编程方式在IHttpHandler上下文中的自定义页面中呈现报表查看器
ReportViewer rv = new ReportViewer();
ReportDataSource rds = new ReportDataSource();
rds.Name = "Report";
rv.LocalReport.ReportPath = "Report.rdlc";
rds.Value = SomeReportObject;
rv.LocalReport.DataSources.Add(rds);
rv.LocalReport.Refresh();
ScriptManager scriptHandler = new ScriptManager();
MyPage p = new MyPage();
p.Controls.Add(scriptHandler);
p.Controls.Add(rv);
using (TextWriter myTextWriter = new StringWriter())
{
using (HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter))
{
p.RenderControl(myWriter);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我已将ScriptManager添加到页面但运行时抱怨ReportViewer需要一个,但它会在p.RenderControl(myWriter)行引发以下异常
报表查看器Web控件需要Web表单上的System.Web.UI.ScriptManager.
这是MyPage类
public class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//Empty Method
}
public override bool EnableEventValidation
{
get { return false; }
set …Run Code Online (Sandbox Code Playgroud) 使用ASP.NET 4.0,我通过实例化a Microsoft.ReportingServices.RdlObjectModel.Report,设置Code属性并使用the返回流来创建RDLC流RdlSerializer.
然后我将该流传递给ReportViewer,如下所示:
ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream);
Run Code Online (Sandbox Code Playgroud)
如果我没有设置Code属性,我没有收到任何错误,报告显示正确,但是当我Code为需要自定义代码的报告设置属性时,我得到了下面提到的'RequestMinimum' is obsolete错误.
编译表达式时发生意外错误.本机编译器返回值:'[BC40000]'RequestMinimum'已过时:'程序集级声明式安全性已过时,默认情况下不再由CLR强制执行.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570.'.'.
在winforms应用程序中使用Report Viewer控件不会发生此错误.
有没有人见过/解决过这个问题?
当我选中查看网页的源代码时,我发现以下错误消息,但网页工作正常.我们的测试负责人在执行断言测试时发现了错误.
报告查看器配置错误:
报表查看器Web控件HTTP处理程序尚未在应用程序的web.config文件中注册.加
Run Code Online (Sandbox Code Playgroud)<add verb=" * " path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />到web.config文件的system.web/httpHandlers部分,或添加
Run Code Online (Sandbox Code Playgroud)<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />到Internet Information Services 7或更高版本的system.webServer/handlers部分
为什么在查看源中出现此错误消息..
注意:此错误消息周围有一个div标签,其style ="display:none"
我试图找出原因,但每个人只讨论过这个错误信息,因为它是在网页中引发的.建议web.config的更改已存在于我们的配置文件中.
我在.NET Framework 4的Visual Studio 2017中有一个项目.对于报告,我使用的是RDLC设计器,但是我遇到了问题.设计人员使用RDL 2016创建报告,我需要您使用2010定义.
我可以配置吗?
我需要它,因为该程序必须与Windows XP兼容,并且没有支持RDL 2016 for Windows XP的ReportViewer Runtime.
reportviewer ×10
c# ×5
rdlc ×4
.net ×1
.net-4.0 ×1
ajax ×1
asp.net ×1
asp.net-mvc ×1
header ×1
localreport ×1
msbuild ×1
open-source ×1
parameters ×1
rdl ×1
reporting ×1
winforms ×1