SSRS Rectangle auto growing - reporting-services

I have textbox inside a table cell (this is the default configuration) and value in the text box's text is empty and it used purely as a toggle button for a child grouping. In the design image below I have colour coded for emphasis the 6 grouping levels in red (one pink). When I run it is all fine there is a single row of data, I click the toggle and the child group shows as this is the way I have set it up. I wanted to add something else to the cell that contained the toggle (i.e. the pink cell) so I changed my textbox to a rectangle and I added first in a sense the original textbox (placed in the top left hand corner of the rectangle) and ran the report and now the rectangle's height has grown to 2 rows at run time as supposed to one row (height of the textbox) at design time - why? Is there a way to prevent this?
NB: the run time screen shot is me changing the height and width of the rectangle to an arbitrary size greater than the width and height of the textbox. So when the report is run the width stays the same the height doubles.
Design Time
With 6 textboxes (NB: each box represents a different hierarchical (drill down) level)
After I change the 2nd textbox (counting right to left) to Rectangle (arbitrary height and width) + Textbox
Run Time
(NB: height of rectangle doubles in size at runtime compared to design time)

Related

Tablix pushing other elements down

I have a report with a tablix in it. I just need to stay the tablix in a fixed position and shouldn't push down other elements down it. If say there are 4 rows which will be visible in the specified space and if more then it should not be visible and shouldn't push down other elements.
I tried several ways to prevent
Added tablix inside a rectangle(act as a container) so if it grouped it
will not push down other elements (didn't work)
Enable consume white space in report=true (didn't work)
Keep items together property is set to true in rectangle (didn't work)
Is there any other way to not to pushdown elements in the report even if the tablix gives more rows. It should only show the rows in the mentioned size.
Edit : 1 (7/28/2018)
All the three elements below is pushed down if the table has more rows.
Either I have to fit the rows in this table by reducing the size automatically if possible or It should not push down the elements.
Also if the tablix has less row the elements will move up. I just need to keep the elements (Expr) should stay in the same position.
You still didn't post your design but anyway, here is what I think you want.
The basic idea to to set the area you want you table to cover by using a rectangle of the same size. Then we will reduce the row heights within reason as the number of rows in the table increases. As you cannot directly change a row height, we can get round this by setting the row height to be very small and adjusting the font, as long as the can grow option is on the cells will grow to fit the font size, giving the effect of changing the row height.
Basic steps.
Create your report and add a rectangle that is the maximum size you want your table to be. In my example it's 38mm high.
Create a table inside the rectangle. I find this easier to create it outside then cut and paste it inside, simply dragging it over the rectangle will not work.
Position your additional text boxes, under the rectangle as desired. Set 'Consume Container WhiteSpace' on in the report properties.
Next we need to decide what the maximum and minimum font sizes are that acceptable. In this basic example I only use 3 sizes, 10pt, 12pt and 14pt. If you want to use more then you could write an expression to scale the fonts more accurately but you get the idea.
You'll need to determine the maximum number of rows you can fit into the rectangle when the minimum font size is used, in my case it's 5 rows at 10pt font. Your query will need to take this number into account and never return more rows than this.
On the table, the click row selector for the detail row (this basically selects all the cells in the row). Next, change the font size property to an expression. In this simple example I used this.
=SWITCH(
Parameters!topx.Value <3 , "14pt",
Parameters!topx.Value <5 , "12pt",
True, "10pt"
)
Next set the row height, choose any cell on the row and set the height to something small, I used 4mm but it doesn't matter as long as its' smaller then you will ever show.
In my example, for testing I added a 'topx' parameter and filtered the dataset using this, but this is only for testing.
The final design looked like this. I added a background colour to the rectangle so you can see how it remains static until it's filled.
Then running with various rows looks like this
finally, only if I exceed my maximum (5 rows in this case) does the text below move down.
You could include a column (let's call it RowNumber) in your dataset that shows the row number of the data. Then in your Tablix filter, you can set the filter to show only values from that "RowNumber" column that are less than or equal to the number of rows you want to display in the tablix.
You can use the same concept to limit the number of rows returned in your query, but without knowing how you are getting the data, it is not possible to help with that.
If you want your report to be that static, why not take a screenshot of the data and include that as an image in your report?
No serious reporting tool will "ignore" records that you pass to it using a Dataset, so that's the place where you will have to "ignore" all unwanted data yourself. Restrict the data in the Dataset to only 4 rows (maybe using SELECT TOP 4 ...).

Report Title Will Not Stay Centered in SSRS Report

I've created a report with a row grouping and a column column for a report - and I have centered the report title in the report header above the tablix as shown below. The Channel data uses an expression that replaces NULL values with a 0.
The number of channels that will be displayed depends on how many channels were used during the date range provided.
For example, one particular date range will show:
But if I expand the date range and the report returns multiple channels, the report title is no longer centered:
Is there a way to ensure the report title (and the expression in the footer) stays centered as the report grows depending upon the number of channels?
Additional Information Added:
Report Width is 4.6 inches, the logo box is set to 1.5 inches wide and the text box with the report title text box is set to 3.1 inches wide. Both rectangles are set to 1 inch in height.
And the alignment for the report title was already set to Horizontal: Center and Vertical: Middle. The issue seems to be that the report will always stay centered in the 3.1 inch wide text box - but will not re-center if the text box grows due to additional columns:
Here you go for alignment :
1. First you have to take full size of your Expression TextBox from Logo and change the alignment of it check below snaps for that :
2. Right Click on your expression and select TextBox Properties :
3. Select Alignment option and Change Horizontal:Center and Vertical: Middle :-
Now your title will be in Center !!

Expand tablix upwards when height increases

I have a subreport that contains a small tablix at the bottom of the page. There is nothing above it, and it is inside of a rectangle that stretches to the top of the page.
As I add data, the tablix grows vertically downward, making two pages, but not using the whitespace above it.
How can I have the tablix always near the bottom of the page, and if it hits the bottom of the report, to start growing up?
I don't think you can.
Report items such as tablixes have two relevant properties:
Height;
Top (e.g. Position).
Only the first one can be dynamic. The latter can't be part of an expression. There also is not an option to set a fixed bottom (like you could do in CSS).

2 List boxes to Scale relatively

I have a report with has 2 rectangles side by side. I want to scale both of the same to the same size as when the number of rectangles increase.
How do I scale both of them equally as the number increases even if data in the Rectangles in not displayed(Null Values)
ScreenShot Below
Modified the "CanGrow" and "CanShrink" properties to "false" in All the textbox in both 2 rectangles
CanGrow=False
CanShrink=False
This should work.

Set Tablix row height to a specific number in SQL Server Report Builder 3.0?

I'm trying to set the row height of the detail row to a specific value, like 0.5 in. If I click on the Tablix handle for the detail row; it selects the row but the Size property does not expand for the Height property or allow entry for something like 0.5 in. in the Height property.
Outside of dragging the control to guesstimate a height is there a way to enter a specific number for the row height?
The height of any row in a Tablix can be adjusted by changing the height of a single cell in the row. All cells in that row will then take on the height of the last changed cell, i.e. if you change the height of a cell in the first column to 0.5” and then change a cell in the second column of the same row to 0.125” the entire row height will change to 0.125”. To change the row Height property in Report Builder or BIDS: Select a single cell, scroll down in the Properties window to the section ‘Position’, expand the subsection ‘Size’ and then edit ‘Height’.
A special note on Tablix row heights when the report is rendered; by default a row will adjust to the height of its content. Typically content is text and if the row height cannot accommodate a second line of text for long strings then the row will grow taller than the set row Height to accommodate the text. If the effect is not desirable then you can change the CanGrow property to False. To change the CanGrow property for a row: Select the row handle at the left to select all cells in that row, scroll down in the Properties window to the section ‘Genera’l and change’ CanGrow’ to False. This is most useful when you have a blank row in a Tablix that is being used for line spacing; otherwise the row will automatically take on the height of the font size even though there is no text, e.g. an empty row with font size 18 will not remain the height of 0.0625” when the report is rendered.
The same concept for rows holds true for columns when a cell’s Width is adjusted, except they cannot grow or shrink like the height can when the report is rendered. Also note that when cells are merged with the adjacent cells that typically the column that makes up the far right of the section will increase to the right when the merged cell’s width is increased. Therefore it is typically best to split the cells when adjusting column widths to avoid this and avoid columns that cannot be decreased in width.
To add to this, in Visual Studio 2010, click on a given cell in the tablix. Open the control Properties pane (ie View | Other Windows | Property Window ). Go to the Position | Size property. Set the cell to the desired height or width. As described by PerPlexSystem, this will affect the rest of the cells height or width in the row or column, respectively.