2014-01-17 67 views
4

我试图在向下滚动时冻结报表中的所有列标题。我已经阅读了大量有关如何进入高级模式的文章,选择标题并将FixedData设置为True,将KeepWithGroup设置为After,RepeatOnNewPage设置为True。这在预览报告时起作用,但在浏览器中不起作用。我曾尝试使用IE 11,Chrome和其他浏览器,但他们都没有在滚动时修复列标题。滚动时在浏览器中冻结列标题

我花了几个小时试图让这项工作,并已阅读,如文章: Freeze column header while scrollingFreezing column headers while scrolling in SSRS,但他们都不在浏览器中实现这一点。

我试图从报告向导中创建一个简单的表格报告,并按照这些说明操作,但它仍然无效。这对于使用SSRS工作非常关键。我正在使用SSRS 2012.任何帮助将不胜感激。

+0

报告是否呈现为PDF,HTML或其他格式? – JSuar

+0

报告正在浏览器中呈现。它不适用于Report Viewer控件或报表管理器。 –

+0

那么,[从我在这里阅读](http://msdn.microsoft.com/en-us/library/ee240753(v = sql.110).aspx#sectionToggle2),可能不支持冻结功能所有输出格式。这就是为什么我问它是如何在浏览器中呈现的。 – JSuar

回答

1

似乎固定头根本不在ASP.NET Report Viewer控件中工作。我有一个带有ReportViewer控件的简单aspx页面,在IE 11中进行了测试。固定页眉在预览和报表管理器中工作,但不在ASP.NET报表查看器控件中工作。 因此,我决定只是使用内置的Report Viewer显示我的报告。固定列标题以这种方式工作。

+0

这仍然是一个问题,没有修复在浏览器中查看?刚刚遇到同样的问题,无法让报告在Microsoft Edge上运行。 – Neal1581

+0

我相信这仍然是一个问题,但我还没有在SSRS 2016中尝试过。 –

1

在设置这些属性之前选择正确的“静态”成员至关重要。对于您的场景,我认为您需要“行组”列表中的静态成员。

如果有几个“静态”成员,请依次选择它们并记下选择框在tablix中的位置 - 这可以帮助选择正确的 - 通常是最后一个。

我对这个最喜欢的职位是由罗伯特·B:

http://blogs.msdn.com/b/robertbruckner/archive/2008/10/13/repeat-header-and-visible-fixed-header-table.aspx

好运 - 这仍然是5年3发布后,这种混乱unbeleivable ...

+0

我一遍又一遍地遵循了这些确切的指令,而且标题行仍然保持不变。我在BI Development Studio和Report Builder中都创建了一个简单的报告,两者的结果都一样。有没有其他人得到这个工作在SSRS 2012?工具栏是否应该保持固定,因为它不是? –

+0

这听起来很奇怪。报告究竟是如何“在浏览器中呈现的”? –

+0

我在报表管理器中使用了它,但没有使用报表查看器。看到我上面的最新评论。 –

1

这是一个疯狂的想法,但不是使用报表查看器,而是可以将报表呈现为HTML并将其添加到具有CSS类的网页,该类将会将标题更改为position:fixed;

0

我能够让我的列标题冻结在IE 9中。IE 11出现问题。 IE 11也没有显示垂直和水平滚动条 该解决方案(对我来说)是将IE 11设置为兼容模式。

使用兼容模式的说明。 1)右键单击窗口顶部,然后选择显示“菜单栏” 2)在菜单中点击工具 3)单击“兼容性视图”将当前网址添加到要显示的页面列表中兼容性视图,这个列表可以通过点击“兼容性查看设置”进行管理

希望这会有所帮助..我无法在其他地方找到它。

1

我刚花了几天的时间来调查这个确切的问题。在预览中工作,没有部署时。几年前,我注意到我的固定列停止工作。

我的突破是当我开始使用新的SSRS 2012安装测试时,冻结的行和列完美地工作。通过比较这个和我的实时系统之间的差异,我发现这个问题是对ReportingServices.js所做的更改,以修复Chrome中显示的空白报告。

强制el.style.overflow =“visible”而不是默认的“auto”打破IE中的冻结。我们的Web开发人员更改了if语句,因此它不会通过检查非IE功能存在(window.addEventListener)来替换IE。

if (el && window.addEventListener) 
    el.style.overflow = "visible"; 

所以完整的代码添加到一个新的ReportingServices.js在以下

function pageLoad() { 
    el = document.getElementById("ctl32_ctl09"), 

    //Fix Chrome invisible report 
    if (el && window.addEventListener) 
     el.style.overflow = "visible"; 
} 
if (window.addEventListener) { 
    window.addEventListener('load', pageLoad, false); 
} else { 
    window.attachEvent('onload', pageLoad); 
} 

C:\ Program Files文件\ Microsoft SQL Server的\ MSRS11.MSSQLSERVER \ Reporting Services的\ ReportManager \ JS \ ReportingServices .js

+0

你能告诉我你正在使用哪一个确切版本的SQL Server 2012?如果它是SP1之前版本,它可能与我目前的设置相匹配,我在IE 11和10中看到了类似的行为,但没有在任何其他IE版本或最新的Chrome中看到。谢谢! – idclaar