ASP.NET的reportViewer控件显示问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET的reportViewer控件显示问题相关的知识,希望对你有一定的参考价值。

ASP.NET连接SQL server数据库那一章有个报表显示数据库的功能,涉及到reportViewer控件,我按照书上的步骤做了之后,在调试的时候发现一个问题,如图:就是表格太窄导致数据纵向显示了,但是有数字的项目就可以横向显示,不知道该怎么处理,找不到相关的参数呀,请这方面的大哥帮忙指导一下。 

参考技术A 如果你是winform做的 我不是很了解。
如果是asp.net。 报表控件输出到页面上是以table 标签存在,所以很多是遵从html CSS的规范显示。
太窄纵向显示的应该是你的汉字部分,如果是一个比较长的单词,数字,就不会自动换行,词组部分有空格的也会换行。

在reportViewer控件中是有可以设置内容格自增长的属性的。CanGrow 此属性默认为false

通过 ASP.Net s-s-rS ReportViewer 呈现后更改 Excel 中的行高

【中文标题】通过 ASP.Net s-s-rS ReportViewer 呈现后更改 Excel 中的行高【英文标题】:Changing Row Height in Excel after Rendering by ASP.Net s-s-rS ReportViewer 【发布时间】:2010-01-21 18:45:58 【问题描述】:

我有一个 s-s-rS 报告,其中有一个 Comments 字段,其中有足够的文本来跨越每条记录的多行。它在 ASP.Net ReportViewer 控件中呈现良好,但是当它被导出时,格式可能会有所不同。导出到 Word 看起来很棒。但是导出到 Excel 和 PDF 时,每条记录的行高永远不会超过默认值,因此文本只会被截断。在 Excel 中,我可以进入并双击单个或多个行高来修复它们,但这是我们不想要的额外步骤。

由于没有来自 ReportViewer 的“导出”事件,我该如何修复它以便它在 Excel 中正确导出/格式化?有没有办法在渲染时在 ReportViewer 中执行此操作,或者我是否需要考虑生成 Excel 文件,然后在事后使用 VBA 代码对其进行更改?有什么想法吗?

【问题讨论】:

【参考方案1】:

如果用户正在使用报表管理器,您确实无法判断用户何时点击导出按钮。但是,如果您提供自己的 Web 界面来生成报告,则可以控制该过程。您可以使用web services 从 s-s-rS 获取报告。然后,您可以使用服务器端 Excel 操作工具(如 SoftArtisans OfficeWriter)open and post-process 代码中的电子表格并将其流式传输给用户。

免责声明:我为 SoftArtisans 工作

【讨论】:

【参考方案2】:

不幸的是,您无法对内置的 reportViewer 渲染器进行很多调整。您可以通过 DeviceInfo 字符串调整渲染器的一些输出,但是对于您尝试执行的操作没有任何作用。 (Information on DeviceInfo)

您可以购买一些 3rd 方渲染器,这将使您有更多的控制权。我从来没有遇到过免费的。

您可以开始编写自己的渲染器,但我强烈建议您不要这样做,因为在这种情况下这将是多余的(需要很长时间才能完成)。

除此之外,您还可以编写一些代码通过 COM 打开 Excel 文件,并更改文件。您实际上可以在导出完成后立即对其进行编码,从而简化它。或者,您也可以像您提到的那样为 Excel 编写一些 VBA 宏。

【讨论】:

事后编码的问题是我不知道他们什么时候开始点击导出按钮。 :( 我有 Infragistics 和 Telerik 许可证,我想也许我可以使用他们的报告工具之一,但我喜欢让我的用户能够使用 ReportBuilder 之类的工具与 s-s-rS 一起工作的想法。如果大人物让这成为一个交易破坏者,我可能会走 Telerik 路线。最初我在想也许是我在 s-s-rS 中格式化报告本身的方式导致了问题。但可能不是。感谢您的回复!

以上是关于ASP.NET的reportViewer控件显示问题的主要内容,如果未能解决你的问题,请参考以下文章

C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃

ReportViewer中的SSRS导出返回401 Unauthorized

ASP.NET2.0 ReportViewer会话已过期

通过 ASP.Net s-s-rS ReportViewer 呈现后更改 Excel 中的行高

ASP.NET,将数据绑定到 asp.net 控件并仅显示一次重复值

SQL Reporting Services ReportViewer 的多个版本