Freeze column headers in browser while scrolling - reporting-services

I am trying to freeze all column headers in a report when scrolling down. I have read numerous articles about how to go to Advanced Mode, select the header and set FixedData to True, KeepWithGroup to After, RepeatOnNewPage to True. That works when previewing a report, but it does not work in a browser. I have tried using IE 11, Chrome, and other browsers, but none of them fix the column headers while scrolling.
I have spent hours trying to get this to work and have read articles such as:
Freeze column header while scrolling
and
Freezing column headers while scrolling in SSRS, but none of them accomplish this in a browser.
I tried creating a simple table report from the report wizard and following these instructions, but it still does not work. This is very critical to get working in order to use SSRS. I am using SSRS 2012. Any help would be greatly appreciated.

It's crucial to select the correct "Static" member before setting those properties. For your scenario I think you want the Static member within the Row Groups list.
If there are several "Static" members, select them in turn and note where the selection box moves to in your tablix - this can help pick the right one - usually the last.
My favourite post on this is from Robert B:
http://blogs.msdn.com/b/robertbruckner/archive/2008/10/13/repeat-header-and-visible-fixed-header-table.aspx
Good luck - this is still such an unbeleivable mess after 5 years and 3 releases ...

This is a crazy idea, but instead of using the Report Viewer, could you render the report to HTML and add it to a web page that has a CSS class that will change the header to position:fixed;?

It appears fixed headers simply do not work in the ASP.NET Report Viewer control. I have a simple aspx page with the ReportViewer control on it, testing it in IE 11. The fixed headers work in the Preview and Report Manager, but not the ASP.NET Report Viewer control.
Therefore, I decided to simply show my reports using the built-in Report Viewer instead. Fixed column headers work that way.

I just spent a couple of days investigating this exact issue. Worked in preview, didn’t when deployed. I had noticed my fixed columns stopped working a few years ago.
My break through was when I started testing using a fresh SSRS 2012 install the freezing rows and columns worked perfectly. By comparing the differences between that and my live system I found the issue was changes made to ReportingServices.js to fix blank reports showing in Chrome.
Forcing el.style.overflow = "visible" instead of its default of “auto” breaks the freezing in IE. Our web developer changed the if statement so it doesn’t do the replace for IE by checking a non IE function exists (window.addEventListener).
if (el && window.addEventListener)
el.style.overflow = "visible";
So the complete code added to a fresh ReportingServices.js is the following
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

I was able to get my column headings to freeze in IE 9. IE 11 was having issues. IE 11 also did not display vertical and horizontal scrollbars
The Solution (for me) was to put IE 11 to compatibility mode.
Instructions to use compatibility mode.
1) Right click the top of the window and then choose to show the "menu bar"
2) in the menu click tools
3) Click "Compatibility View" to add the current web url to the list of pages to show in the compatibility view, this list can be managed by rather clicking "Compatibility View settings"
Hope this helps.. I could not find this documented elsewhere.

Related

Chrome crashes with too many web components

I have an HTML table with at most 25 columns (usually 5 or 6) and at most 25 rows. Each cell in the table contains a custom Web Component. These are minimal web components. For example, one wraps a number and you can set number formatting (e.g. format as currency) via the attributes. Another just displays a formatted string, etc. I am adding these components dynamically using appendChild on the td.
These Web Components are all using the Shadow DOM - as recommended in the documentation. So I create this simple table (6 rows and 25 columns) and I populate cells with these Web Components. If I do this in Chrome, my system crashes requiring a reboot (sometimes by forcing a shutdown). I tried this in Firefox, and the table renders in less than a second. Also I tried this in Edge and it crashes there too.
I tried re-doing my Web Components to remove the Shadow DOMs and voila, it works fine in Chrome and Firefox.
I don't want to do these component without the Shadow DOMs. Does anyone have any ideas?
Thanks
Update: this is still a problem. I tested in Edge browser and it does indeed work there (albeit a bit slow). Also tested in Safari/ MacOS and it works there too.
What a shame… I have to tell my users they can’t use Chrome and prevent the page from loading.
Update 9/2/2022: Without any changes to my code it is no longer an issue. The only explanation I have is that it might have been happily addressed by a scheduled Chrome update.
Now however, even though my table loads OK, if I open Developer Tools immediately after the table loads, I get a crash with error: 'Debugging Connection closed. Reason: Render process gone.'
Update 9/4/2022: I was overly optimistic about this error. I started testing my app again in Chrome today and the original problem still exists. I create my table in Chrome, interact with it in various ways (e.g. dynamically add a column, add an icon prefix to cell contents of a column, dynamically add a column with a drop-down menu in each cell, etc.) and eventually Chrome will crash.
I no longer expect this to be fixed. I logged a bug report with chromium.org and that is all I can do.

Frame size issue in metaphone3 cluster and edit

I am using OpenRefine to clean text from a CSV file. I've been working on the same project for several weeks, and it was working fine until this week.
I am trying to use the 'Cluster and Edit' function from the 'Edit cells' menu. When I use the 'fingerprint' and 'ngram fingerprint' keying function, the frame that opens up inside the browser window is sized appropriately, and I have access to all the buttons and selection menus. However, when I try to use the 'metaphone3' keying function, the frame that opens up is way wider than the browser window, the sliding selection boxes that usually appear in the right side of the frame are not visible, and the buttons across the bottom of the frame ('Select All', 'Unselect All', etc.) are not available. I'd really like to be able to use this keying function option again. Does anyone know what's going on, or how I might be able to fix it.
I am using the OpenRefine 3.3 beta, although a similar issue was happening earlier this week with all keying function options in 3.2 (all were working fine in 3.2 as recently as Friday, 10/25/2019). I am using Firefox, although the same issue happens in Internet Explorer. The system OS is Windows 10 Enterprise.
Thanks in advance!

SSRS Report renders differently in Browser to Report Builder

SSRS 2017 Report Builder correctly renders report with drilldown buttons and field data. When rendered in the browser both the drilldown and field data are not visible.
Edge, Chrome and IE all hide the field with the drilldown button on it.
The fault appears to lie with css in .MSRS-RVC .tdResizable overflow:hidden, as if this is unticked (both in Chrome & IE Devtools) the fields are correctly shown, and work normally.
Edge screen grab showing missing fields:
Report Builder Screen shot showing how it should look with drop down buttons
SSRS Version
I have tried editing 'C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\Styles\htmlviewer.css' by adding
.MSRS-RVC .tdResizable {
overflow: visible !important;
}
to the bottom, however this has made no difference (I have restarted SSRS, but have not rebooted the server). Not sure I'm looking in the right place really...
I have modified the 'Can Grow' attribute to True on the field that was not visible, and this has resolved the issue. This should not really have made any difference, as the data is a fixed length and the report was easily wide enough to accommodate it (I even made it much wider to it to see if that was an issue), but that made no difference.
I can only presume that, in the background, the addition of the + button exceeded the row height set. This was working just fine with previous versions of SSRS, so the 2017 version must have a larger image for that button for some reason!
Hope this helps someone else in future!

Session Variables Issue in IE8 and Classic ASP

So I have a website featuring a stock management system, this contains a table that displays various stock and inventory information.
When an "images" link is clicked, the Session variable for images is switched between "show" and "hide" and the page is then reloaded with the updated variable and either showing or hidden images for each product.
This works perfectly in Chrome, Firefox and Opera (all tested thoroughly) but does not work at all in IE8.
Normally I would blame my code but clearly this is a pure browser compatibility issue which is really throwing me as i didn't realise ASP and VBScript really needed to be altered to work on different browsers.
I have attached the code that toggles the session variable below anyway but I doubt it is linked to the issue.
images = Request.QueryString("images")
If images <> "" Then
If images = "show" Then
Session("images") = "Show"
ElseIf images = "hide" Then
Session("images") = "Hide"
End If
End If
An example of the problem goes as follows:
I display some items and click "hide images", the images then hide..
I then reload the page and the images are showing again and the Session variable has changed back to "show" despite there being NOWHERE in the code that specifies to return back to the previous value (checked with Ctrl + F for keyword "images")
Has anyone else encountered a similar problem where Session variables act in unusual ways specifically in IE, or can suggest a solution?
Thanks, Josh
Many thanks, Josh - here you go.
You can use the Server.URLEncode() (classicasp.aspfaq.com/general/…) method to counter this problem.
The server side code of Classic ASP is browser independent. What's more likely to be a problem is the way you make the section show or hide.
Check your code and pay special attention to the method you've used to actually do the showing and hiding. Check out the styles for the block that contains your product using the developer tools in IE8.
After further research I have found why my page is not working correctly via a Microsoft support page.
http://support.microsoft.com/kb/316112
The fact that my page URL had an underscore in it caused Session variables and Cookies to not be saved.
Hope this helps others in the future
Josh
Are you trying to retrieve/show session values within same page that you are assigning session values? I'm asking just to be sure because it takes one round trip to the server to save those session values.

SSRS - Fixed column scrolling not working when viewed in Browser

I have created a report which has too many columns to display on the screen.
As such I have set the leftmost column as Fixed Data to make the report readable.
When previewing the report through either Visual Studio or Report Builder the freezing of the columns works without problems but when running the same report through Report Manager (no matter which browser I use) the columns do not freeze.
I have tested and get the same issue when freezing header rows and have tested with several new and previously existing reports.
The strange thing is I could swear this has worked correctly in the past.
I had this issue while working with SSRS 2008 and trying to display the report with Internet Explorer 11. I solved the problem on Internet Explorer 11 by going to the Tools option menu (gear icon on the right upper corner of the screen). Click on Compatibility View Settings. On "Add this website" textbox, you should be able to see the domain of your organization, something like "organization.com". Click on Add. Leave "Display intranet sites Compatibility View" and "Use Microsoft compatibility lists" checked as it comes by default. Click on Close. You should see IE changing its appearance now a little bit. Test the report again. Next time you open the web browser, it will have this configuration already set.
It only works if you collapse the show/hide report parameters bar.
Once you have hidden that the fixed rows and columns will work just fine in the browser.