How to specify path to a report from another report? - sql-server

I have SSRS on SQL Server 2012 and using report builder to build a drillthrough report. I have a table 6 rows and multiple columns. Each text box has some number in it and I should be able to click on these numbers and go to a different report. Both these reports would be under same folder on report server.
Problem:
I am able to do it until this point by following instructions at this page.
My problem is I can't use a static link as each text box should direct to it's own unique report. And when I "Specify a report:" using "Browse" button there or by providing static link, same link will be used for all the text boxes in the same column. What I need is to be able to specify path to the report which is of format /Folder_Name/<valueOfColumn1><valueOfColumn2><nameOfColumn3>;
What I tried:
So I tried to use "Expression" by clicking on "fx" button and provided link as =Globals!ReportFolderFields!column1.ValueFields!column2.ValueFields!column3.Name
Outcome:
When I try using above methods by using expression it doesn't throw any error but the text box is not clickable (doesn't turn pointer into an index finger). When I used static link by using "Browse" button, the same text box was clickable and was taking me to another report.
What am I missing here? Any pointer would be helpful.

The syntax of the field list in your formula needs a few changes. It looks like what you're really trying to do is concatenate several fields together, with a slash at several spots, in order to get the proper URL format.
Let's assume that the following elements resolve to the strings you need. (It can sometimes be helpful to verify these resolve to what you're expecting by inserting textboxes for each, individually, in a section of the report for troubleshooting; you can always remove them later.)
Globals!ReportFolder
Fields!column1.Value
Fields!column2.Value
Fields!column3.Name
If you would like to concatenate these together to use as a URL, together with a few slashes added in the correct places, you'll need to follow the SSRS conventions on operators in expressions, which results in something like this:
"/" & Globals!ReportFolder & "/" & Fields!column1.Value & Fields!column2.Value & Fields!column3.Name
as always, since this is an expression, it will need to start with an equals sign.
The expression builder doesn't insert operators for you between fields - it's not that smart...

Related

Passing parameters to SSPRS Report through the URL doesn't work

I'm trying to access a SSPRS report that has the option to select the year and the month by adding the parameters in the URL as &param=value but I always get the default.
This are the parameters and I know I'm sending the correct values in the URL.
This is the report panel where I can select the Year and Month, I'm trying to get the specific report that I need by passing those parameters in the URL.
What could I be doing wrong?
Thank you everyone.
There are a couple of ways these go wrong, I'm guessing your problem is URL encoding of your date parameter, but I'll give you other stuff too. Here is a working URL with 3 parameters: a date, a string, and an integer.
https://db01.MyCompany.com/ReportServer_Prod?/Reports/R440_OutstandingRecp&paramDateEnd=12%2f31%2f2015&paramPropLiab=Property&paramRepPeriod=1
The key parts of this URL:
"https://db01.MyCompany.com/ReportServer_Prod?/" - db01.MyCompany.com is our database VM, and I'm using the "Prod" (production) instance of SQL on it.
NOTE: Check your Reporting Services Configuration application and look at the "Web Service URL" to get what "ReportServer_Prod" is on your installation.
"?/Reports/" is the path to the virtual directory, note that this is different from the path a browser would normally use. Normally my path would be "ReportServer_Prod/Pages/Report.aspx?ItemPath=%2fReports%2fR440_OutstandingRecp" if I was just viewing this from the Reporting Services interface.
Parameters are separated by "&" and it's "ParamName" "=" "ParamValue" so "&paramPropLiab=Property&paramRepPeriod=1" are the string and integer parameters respectively.
Lastly, parameter values are URL encoded if necessary. Mostly it doesn't show up, but for dates and some strings, it becomes necessary. We can't send something like "12/31/2015" because it looks like part of the path, we need a URL encoded string like "12%2f31%2f2015"
Hopefully one (or more) of these were what you needed, reply in the comments if it's still not working or if you need more explanation of why the parts are what they are.
EDIT: One more thing, if a parameter has a "Display" and a "Value" (i.e. in a drop down list) you must pass the value, not the display.
EDIT: I can't make the comment stop hiding my URL, so I'll put it here
WHAT WAS TRIED
https://slo2000/Reports_TECOVA?/Reports/TEXO%20CVA%20Reports%2fTEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020
https://slo2000/Reports_TECOVA?/Reports/TEXO%20CVA%20Reports/TEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020
https://slo2000/ReportServer_TECOVA?/Reports/TEXO+CVA+Reports/TEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020
WHAT WORKS (From #Nacho in comments, brought here for visibility)
http://slo2000/ReportServer_TECOVA/Pages/ReportViewer.aspx?%2TEXO+CVA+Reports%2fTEXO_London_B_CVA_Report&rs:Command=Render&ReportMonth=January&ReportYear=2020

SSRS - Spacing between lines in single TextBox

I have a flat-file to be load in SSRS report. Which already contains New Line and required spacing. Like the below image:
Want to display same layout and newlines(CRLF) into SSRS. Which works fine If I use
≪Place Holder Property → Markup type = "None - Plain text only"≫
But I want to increase the spacing between Individual new lines.
So I tried below expression with the same other properties:
=REPLACE(Fields!Column1.Value, Chr(13), vbCrLf)
But It has increased the space almost double than my expectation. I also tried to convert ≪Place Holder Property≫ into ≪ HTML - Interpret HTML tags as styles ≫, but It has removed normal new lines which exist into flat-file.
I tried many existing solutions over StackOverflow but none of them are matching my requirement.
Could anyone please give it a try!
Edit-1:
Textbox.line-height is providing a facility to change spacing between lines, but not reflecting PDF output, only showing the effect on a web browser. My target output is PDF.
I am afraid that the thing you are asking about isn't possible.
“<br>” ,”<p>”,vbcrlf, font setting in textbox of any report ,the list mark , do not work with SSRS.

Excel: apply conditional formatting if cell contains one of x strings

What I'm trying to do should be quite simple but I am getting error messages saying that conditional formatting doesn't accept this method.
So I am looking for a fix or an alternative.
What I have is a list of search texts for phone faults
screen broken
wifi not working
bluetooth dead
the dooflip isnt working
etc.
I have also set up a number of common keywords
screen
wifi
bluetooth
By comparing these two we can see that the last one doesn't adhere to any of my common keywords, and so I want it highlighted/ copied somewhere etc. so I can view and take any action.
So far I have attempted to set up conditional formatting to search the terms for the keywords and if it doesn't contain any then highlight it.
=ISERROR(SEARCH({"wifi", "bluetooth", "screen"},$H$117))
When using this I get informed that conditional formatting does not support arrays (it works fine if I only specify one search term).
If i create a table with all the keywords in and use the following it works, however it will only find direct mataches, and wont search for the word in the cell string
=ISERROR(MATCH(<cell_to_change_colour_of>, <keyword_table>,0))
So is there another way of doing this?
my answer requires MOREFUNC addon*
=REGEX.COMP(A1,"wifi|bluetooth|screen",FALSE)
this will return true if any of the words appear anywhere in cell A1. FALSE in the formula stipulates that it is not case sensitive.
Unfortunately due to Excell's stupid rules it will not work directly in Conditional Formatting box. You will need to place it in a helper column, and point the conditional formatting rule to that column.
MOREFUNC ADDON
Morefunc Addon is a free library of 66 new worksheet functions.
HERE is some information (by original author)
here is the last working download link I found
here is a good installation walk-through video

Can you concatenate RTF in a Crystal Reports formula Field

I'm currently building an application that generates a separate letter for each user in the dataset. The letter contents are managed through a vb.net application and their RTF format saved to a database. When the letter is created, all the content is pulled from the database to form the letter using vb.net logic.
Once compiled it was sent as a parameter to Crystal. This worked great, setting the field text interpretation to RTF allowed proper RTF viewing.
The client has decided that they would instead like to make changes to the logic (if statements that compile the text) within Crystal.
So what I did was create a blank dataset with a bunch of columns and filled those columns with the RTF (Ordered by ID so the values will never change unless a paragraph is deleted and there is no option for this). This would allow me to build an RTF string by going {table.1} + {table.2} etc...
This is where the problem is. When building an RTF string in a Formula (Using + or &) it only displays the first RTF entry. If I switch the formula to no interpretation, I can see the RTF for the entries written out with all their content so I know it’s there. I also manually combined the RTF in the formula field and had the same issue.
StringVar output;
output := output & "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}\viewkind4\uc1\pard\lang1033\f0\fs23 this is a first test }";
output := output & "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}\viewkind4\uc1\pard\lang1033\f0\fs23 this is a second test \par\par}";
Output
At this point I am unsure if there is a way around this other than moving all the text to separate Formula fields within crystal itself and then combine. This would mean if they wanted to change text it would have to be done within crystal. I would rather not go this route so I’m looking for opinions and suggestions.
Crystal does support RTF however it needs to be fully formed within the first occurance of an RTF entry. In my question it shows two separate COMPLETE RTF entries. As the entries all have the RTF ID tags this will not be possible. The same issue would occur if you copied the above text into a text editor and saved it as RTF. You would only get the first line. This doesnt explain why it works as a parameter and not a formula but its likely how each are evaluated and the later (parameter could loose support in the future).
To Properly pass RTF to crystal you will need to two Rich text box objects. One being a temp box and the other being the builder box and only selecting the formatted text, not the entire RTF content. An example of this can be found at:
http://moneybaron.org/2011/08/23/vb-net-merge-rtf-documents/
Aside from some hacks such as removing the closing brace from the RTF string or rebuilding the RTF table are also avaliable however removing the brace could lead to an unsupported configuration and rebuilding can get messy really quick.
Hope this helps!!

Reporting services 2005: Is there a way to dymanically change a report header?

I have a report that needs different header text on pages depending on the content of the page. Is there a way change the text in the header based on a piece of information on a page?
Page 1 header: ITINERARY
Page 2 header: ITINERARY
Page 3 header: FARE RULES
Page 4 header: RECEIPT
The other issue is that each section of information may be one or more pages long.
At the moment I've had to set out my report spacing out the pages and putting a dummy header at the start of each section.
What is the best way to do this?
Melissa,
You might be able to dynamically render the header content by using the Expression part of the header. Your logic might go something like this:
If ReportItems!Textvalue = "this", do "that"
When I mean the Expression part, right click on the textbox (assuming that's what you're using in the header) and change the expression from there. You also might want to look at the IIF (Immediate If) function too.
For example:
Dim i As Integer = 0
IIf(i = 0, "I am zero", "I am not zero")
Hopefully that should get you in the right direction as I employed a similar situation with Reporting Services last year.
coson
Maybe you can find some info here: http://www.bigresource.com/MS_SQL-SSRS-Dynamic-Header-Jy99Q93u.html (scroll down to see more header-related links)
Or is this what you are looking for? http://social.msdn.microsoft.com/forums/en-US/vsreportcontrols/thread/a82d32e1-2314-4c09-a828-6ce2109a0252
What you could do is create each report section in its own separate report, then create a "Master" report that has all of the other reports as sub reports. Then all you'd have to do is put the headers on the master page.

Resources