Reporting Services :: How To Write Custom Legend Text
Oct 23, 2015
I was trying to write a custom legend text for a chart that I have in SSRS. In the chart I have a Bar chart and a Line chart. I have two values coming from a dataset. One is a running value. All the series values are from year dataset.
I need to get a custom legend text for the three data series looking like this. "2013- Mth", "2014-Mth". Year should be dynamic and coming from the dataset.
I tried writing an expression in the series legend option as shown below.
But I don't get the required text for the chart. I only get the default series text for the legend. If I only write a text without the dynamic year taken from the dataset columns I get the custom text. But not when I concatenate the dynamic year series with the static text. Any property to enable/disable?
I have a Pie Chart report that works well until Users discovered that when values are 0% or less across the chart, the Legend returns NaN. How do I format the Legend to return 0% instead of the NaN that Users do not want to see. Below is my express for the Legend Property="#AXISLABEL" & " - " & "#PERCENT{P0}".
Is there anyway in SSRS 2008 to sort the Legend on a chart? Right now I am unsure as to how it is currently sorting. I see a property to Reverse the order, but I don't see anything to alphabetize it.
Is it possible to remove the tick marks that I have circled in red?The chart has data Week by week over a year, and the T1, T2 etc are equivalent to Quarter1, Quarter 2 etcI've got a 3 level grouping, with the top level being Year, then Quarter, then Week. The label for the "Week" grouping is set to blank, and that's why you don't see it here.Removing the Tick marks would make the chart legend more readable in my opinion.
I have followed this article and have done what was written under
Custom Chart Color Palettes and Legends http://msdn2.microsoft.com/en-us/library/aa964128.aspx#moressrscharts_topic4
But still the color of the legend is not uniform. Basically I am using a stored procedure which returns two values : Circle, Total based on a parameter called Customer. 1. I have pasted the code asked in the Code Section of the report. 2. Have Disabled the 'Show Legend' box in Chart Properties. 3. Have included the following code in the Values->Appearance->Series Styel->Fill
=Code.GetColor(Fields!Circle.Value) 4. In the Category groups ->Group on-> this is my expression =Fields!Circle.Value (Basically I am not sure where should I include Circle Field. I have tried this both by putting it in Category Groups and Series Groups.) 5. Dragged and dropped new table and have done the following
a.table1->Properties->Groups->Add->General->Group on Expression Fields!Circle.Value b.Deleted Detail row. c.Dragged and dropped rectangle in the column value and set the background value to =Code.GetColor(Fields!Circle.Value)
When I run the report for different customers the colors are not remaining constant. I have 17 values for Circles. So included three more colors in the "colorPalette " variable..
After doing all this still I am not able to get the same colors. Could someone tell me where I am going wrong?
We've just rolled out Reporting services at our organisation, and the users love it. However, it's giving me a headache because, as the only developer in the company and as I have VS.NET, I'm the only one who can author the reports.
Does anyone know of a third party provider that has written a report writing tool with a straight forward UI ( a bit like the access report writer for example) that I can deploy to some users and let them run riot? It's the kind of thing that I expect someone will have done as a pet project, if anyone knows of a freeware version that would be even better.
1) SSRS export to Excel functionallity has an important limitation... is terribly slow when exporting huge amount of data to Excel. 2) Subreport are not supported to export in excel. This is some known issue and limitations of SSRS.
I have got question because time is running but I still don't know how to do it.
So I have 1 group with 3 rows and I would like to put for each row not only group individual number like 1,2,3,4,5 ... etc until end of report. Â Generally using fuction RowNumber I got 1,2,3 and then 1,2,3 again. Â
I created a class library which uses a web reference My SSRS report uses the class through its custom code I copied the dll & dll.config of the class library to the VS2005 private assembllies and the report works I copied the dll & dd.config to the reportserver bin and gave the assembly full trust by adding the necessary code group I even added a code group the give the dll.config file full trust as well Yet on Repost server, the report does not work Any ideas I suspect it is a permission problem
For custom authorization, I am overwriting the CheckAccess method.
But how do I know what I am trying to access in CheckAccess method? I need to know what report the check access method is trying to execute for our requirements.
I got authentication to work without too many problems, and it authenticates by querying my custom table. I want to also maintain my authorizations in the same manner. I want to be able to define in my own tables that user test1 has permission to view reports 1, 3, 5, and 8. User test2 can view reports 1,3,5,8, and 9. User test3 can view 1, 2, and 4. Etc.
The authorization extension, contained in my version of Authorization.cs is where I expected to be able to do this. I wanted to be able to write code that queries my own tables and says, "does this user have permission to view this item?" Getting the this user portion is easy as is obvious in the many checkAccess methods. But being able to tell what item I am currently dealing with has proved impossible from the context of Authorization.cs, which implements IAuthorizationExtension. Knowing what type of item I am dealing with is obvious, but I need to know something that uniquely identifies the exact item I am dealing with.
How can I determine in checkAccess or any of the other available methods what "thing" they are looking at? What can I examine to determine that for instance this particular authorization request is against "Report 1"? It seems that if I was allowed to completely override Authentication to use my tables, I should be able to override Authorization to do the same. Is this possible or am I missing something?
I need some help regarding Custom Colors implementation for Charts in the Reporting Services.
What we are trying to do is to make every color for every Series(see example below) to be a customized Corporate color.
For example each of the series on the Chart should be in specific Custom Color:
Series 1 - "LightBlue" Series 2 - "LightYellow"
Series 3 - "DarkBrown"
All I found from MSDN is how to do it in the Chart Properties in a Code section (right click on the report outside the chart -> Properties -> Code tab -> paste the Custom Code ).
And then to use it in the Chart color definition as:
Code Snippet=Code.GetColor( Series# )
But we are trying to do it in a separate C# class that would be updated only in one place, instead of changing 30 reports each time something is changed. So that it could be generic.
The C# class:
Code Snippet
namespace CustomColorPalette
{
public class CustomPalette
{
public CustomPalette()
{
}
public static string GetColor(string GroupingValue)
Error 303 [rsCompilerErrorInCode] There is an error on line 2 of custom code: [BC30451] Name 'CustomColorPalette' is not declared. c:developmentvoyagerreportsvoyager convert reports.rootvoyager convert reportsReport_007D.rdl 0 0
2.
Second way I tried:
Then I put a code into a Custom Code section of a report:
And after compilation I am getting an error like this:
Error 302 [rsCompilerErrorInExpression] The BackgroundColor expression for the chart €˜chart2€™ contains an error: [BC30456] 'X' is not a member of 'ReportExprHostImpl.CustomCodeProxy'. c:developmentvoyagerreportsvoyager convert reports.rootvoyager convert reportsReport_007D.rdl 0 0
Is there any workaround? Or all I can do is to make the Custom Colors manually in each report, and if something need to be changed - I will need to change it in each report separately
I have problem with SQL Reporting Services, actually i want display the 3 parameters in a single line in a report i.e. in the while preview of the report and after deploying the report (by default it is showing 2 parameter per line). for example if have 6 parameters i wanted it display it in 2 rows and 3 columns format.
I'm using the System Center Essential 2007 VHD (http://go.microsoft.com/fwlink/?LinkId=91061). It has an SQL Server Express Edition with Advanced Services installed as a named instance, SCEVHDSCE. I tried to upgrade the SQL Server to Enterprise Edition, because some of the reports are not working in Express. I started the setup with the SKUUPGRADE=1 switch, it found the SQL Engine and Reporting Services components and offered to upgrade them. Upgrading the SQL Engine was successful, however the Reporting Services failed with the following error:
SQL Server Setup did not have the administrator permissions required to copy a file: C:Program FilesMicrosoft SQL ServerMSSQL.4Reporting ServicesReportServer ssrvpolicy.config. To continue, verify that the file exists, and either grant administrator permissions to the account currently running Setup or log in with an administrator account. Then run SQL Server Setup again.
I checked the file, it exists and the current account (which is a domain administrator) has permissions. I stopped all services which could use the reporting services, rerun the setup now only for reporting services, but the same error occured. For the third try I started Filemon also, and it captured the following trace. http://mit.bme.hu/~micskeiz/files/sql-rs-install-error.jpg From this I guess the following: until row 442 it checks the existense of the target folder and creates the folder for the upgraded instance in C:Program FilesMicrosoft SQL ServerMSSQL.4. In step 443 probably it wants to copy the old config, but it searches them in the C:Program FilesMicrosoft SQL ServerMSSQL.2 folder, which should be the location of a default reporting services install. However, the setup of System Center Essentials installs its SQL Server Express Reporting Services in C:Program FilesSystem Center Essentials 2007Microsoft SQL ServerMSSQL.2, thus the setup fails because it is looking for rssrvpolicy.config in the wrong folder. Do I see the problem correctly? The setup log can be found here: http://mit.bme.hu/~micskeiz/files/SQLSetup0005_SCEVHD_RS.log
I tried to do a command line install, but I did not found a switch to tell the old location of Reporting Services. Neverthless I tried the following command: D:>start /wait setup.exe ADDLOCAL=RS_Server INSTANCENAME=SCEVHDSCE UPGRADE=RS_ Server SKUUPGRADE=1 /qb But the setup said that the requested component could not be found.
Any suggestions?
Thanks, Zoltan (I will be on vacation from next week, so I could not respond for a week.)
I am working on SSRS report with project server 2013 and I want to add custom dll in SSRS report.I have create dll first then add into GAC Assembly After that i have add this dll in report project in SSRS.when i have try to deploy and build report...
.An error Occurred during local report processing.
Failed to load expression host assembly.
Details : Cannot Perform CAS Asserts in Security Transparent methods.
Hi all, We are displaying an SQL Server 2005 Reporting Services report in our ASP.NET 1.1 application by accessing the report through URL and embedding the same in an iframe HTML web control. The user can export the report contents into CSV format by making use of the export functionality provided by Reporting Services. Now we have been asked to display a warning mesage to the user when the no. of records in the report exceeds 1 million i.e. if the no. of records in the report exceeds 1 million and the user tries to export the report to CSV format by clicking on the "Exprot" link button, we need to display a warning message to the user. My doubt is whether this can be done in Reporting Services. Are there any programmatic interfaces exposed by Reporting Services which might help us implement this requirement ?
Below is code I am using to create a heatmap in SSRS. THe code seems to be working well except for one glitch. Sometimes numbers in the "middle of the pack" are white. Obviously they should be one the of colors listed below. Why numbers would be white when I declared only white for IsNothing.Â
 Public Function GetHeatmapColor(ByVal textBoxValue, ByVal minDataSetValue, ByVal maxDataSetValue) As String     Dim colours As String() = New String() {"White","DarkGreen","Green","ForestGreen","LimeGreen","YellowGreen","Yellow","Gold","Orange","DarkOrange","OrangeRed","Red"}         If IsNothing(textBoxValue) = True Then       Return colours(0)
I am not sure if this is possible or not, we have two datasets and each one has an additional calculated field which breaks the value JobBilledExVAT into three years.
So it reports for example how much we billed in May 2015, 2014 and 2013.
I have got the table to display this when reporting on one dataset by grouping by year
The datasets both look similar to thisÂ
SELECT  Practice.ibvSalesByJob.JobBilledExVAT  ,Practice.ibvSalesByJob.[Year] FROM  Practice.ibvSalesByJob  INNER JOIN Practice.idvJobType
[Code] ...
The calculated field isÂ
=Switch(Fields!Year.Value = Parameters!Year.Value ,"15", Fields!Year.Value = Parameters!Pre1Year.Value ,"14", Fields!Year.Value = Parameters!Pre2Year.Value ,"13") The field I am looking to add together is below =Sum(Fields!JobBilledExVAT.Value)
If I do the below on the dataset associated with the matrix it displays the sum for each year correctly, I would however like to add the Sum(Fields!JobBilledExVAT.Value) from a different dataset (ABS1M) for the relevant year.
However this adds 2015, 14 and 13 from ABS1M and doesn't add them individually if that makes sense? With the calculated field it only shows Year under the main dataset heading not 15, 14 and 13 separately.
I was think of using LOOKUP however I don't know how this would work as 15, 14 and 13 are not displayed under the dataset.
but gives me the "Unrecognized identifier" red squiggle.
My FormatString function (in the rdl file) is this:
Public Shared Function FormatString(ByVal Decimals as object) As String  dim format = "N0"  if not (Decimals is nothing or Decimals is System.DBNull.Value) then    dim decs as integer    decs = Convert.ToInt32(Decimals)    if decs>0 then      format = "N"+decs.ToString()    end if  end if  return format End Function
This is a subject that has been brought up before but I have not seen a definitive answer/solution. We have implemented a custom authentication extension (forms authentication) for reporting services and it has been working just fine under "normal" conditions; "normal" being users logging in, viewing reports, and then moving on. Recently some reports were created by our report group and they contain Dundas gauge controls for "dashboard" style reports. These reports are meant to be up all day and they post back every few seconds because the data they present is mission critical. This of course exposed the inability of the reportviewer control to stay in the context of Report Manager when it comes to the cookie exchange and authentication thus resulting in the following error: <html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="/ReportServer/logon.aspx?ReturnUrl=%2freportserver%2fReportExecution2005.asmx">here</a>.</h2> </body></html>
I created a quick ASP.NET web application and added the reportviewer to it, implemented IReportServerCredentials and the report came up as expected but behaved the same way as it did in Report Manager. Same with a Windows Forms application.
Increasing the cookie timeout in the forms authentication tag is an option, but not an attractive one. Extending the reportviewer control is also an option, but I don't know if that is a good candidate right now because I don't see anything extensible yet.
Is this just the nature of RS with custom authentication or is there a viable solution out there right now?
Any and all answers are much appreciated and I thank you in advance.
I read that this sample is included, however when I install the samples the other three are in the "Extension Samples" directory but the "Custom Report Item Sample" is missing. Can anybody please tell me where I can find it?
I have a SSRS report that uses a custom library. The custom library returns a string values, and I have tested this with a windows application.In the SSRS report. I have set the expression value for a text box as  =CodeReportingLibrary.CodeReportingFunctions.GetImage(1232)
However, when i preview the report the text box value shows as #ERROR. I checked the error list and I get a warning message : Warning 1 [rsRuntime ErrorIn Expression] The Value expression for the textrun ‘Textbox5.Paragraphs[0].TextRuns[0]’ contains an error: Attempt by security transparent method 'CodeReportingLibrary.CodeReportingFunctions.GetReferenceImage(Int32)' to access security critical method 'Microsoft. TeamFoundation. Client. TfsTeamProjectCollection..ctor(System.Uri)' failed.  Assembly 'CodeReportingLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is partially trusted, which causes the CLR to make it entirely security transparent regardless of any transparency annotations in the assembly itself.  In order to access security critical code, this assembly must be fully trusted.
I have updated the rssrvpolicy.config in ReportServer folder, to include my custom dll.
I have a SSRS report that parses RTF to TXT and displays it in a report.  The report works fine and everything displays correctly.  The subscription email, however, contains a report with errors: Request for the permission of type 'System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture= neutral,PublicKeyToken=b77a5c561934e089' failed.The report contains embedded code as well as references to System.Security and System. Windows. Forms.  I've updated .....Reporting ServicesReportServer ssrvpolicy.config and ....Reporting ServicesReportManager smgrpolicy.config to change permissions to FullTrust.