Problem W/ Conditional Subtotal Color On Matrix - Bug Or Feature?
Mar 26, 2008
I've been having a problem getting the font-color right on a matrix subtotal. I searched around but could not find anything else describing the issue I'm having. Basically, the problem is stated as such:
IF a matrix subtotal row has conditional coloring based on the data, THEN changes to the subtotal format via "the green arrow" like bordercolor, backgroundcolor, fontstyle, etc, override the conditional formatting.
This only happens when the report is deployed and viewed in a browser. In Visual Studio, the formatting appears as one would expect.
It also only happens when the color is determined conditionally. If the color is explicitly stated, the subtotal format behaves.
Heres a better example:
I was making a matrix with a subtotal that has the classic "red color when the revenue amount is negative" situation:
All data cells, whether in subtotal or datasection, would be red if the revenue amount was less then zero. At this point, the matrix was almost newly created and this was the *only* formatting applied so far.
Next, I changed the subtotal formating with the green arrow, giving the total and subtotal cells a grey background.
At this point, the report looks fine in the Visual Studio Preview. A negative subtotal is still red. But, when deployed and accessed via IE, the subtotals are black (default) no matter what.
Is this a known issue?? It seems like a bug to me, not a feauture, for at least a couple reasons:
It only happens in a deployed browser, not the designer.
It only happens w/ conditional formatingThe version I'm using is 9.00.3215.00. I also checked on another box w/ version 9.00.3054.00 and it looks like the same problem.
For now, I'm working around it by keeping the subtotal formatting absolutely clean. All formating done in the subtotal is done through =IIF( INSCOPE("...") , , ) checks. This is annoying because the matrix I'm working on isn't anywhere near as simple as the example above, it has crazy row and column groupings with numerous subtotals and pre-existing conditional border/background/color formats. Any ideas?
I am using matrix in my report with calculated fields, for example I have 3 columns : Actual amount, Budget and Variance. Variance should be in Red if it is negative. I can set up an expression to change the color on the row level, but not in Subtotal ot Total row. I cannot use sum of Fields! values, because Budget amount is also calculated field based on the "Category" value which is columns group on the matrix.
So anyway, if I am trying to reference ReportItems!Variance.Value in Subtotal Level, it gives me an error about group scope.
How can I access the cells values in subtotal and total group levels? If anybody knows any tricks for this fairly simple task?
I have a Matrix and in the total on the last row i want use conditions for the color on the background , i'm usign the option Subtotal but i cna't read the value for the subtotal for create my conditions , some body now how i will aprecciate thanks
I'm dealing w/ SSRS 2005. I have my main matrix report which has five row groups.
What I'd like to do is have the subtotal at the 4th level have a coloring for the whole row at run-time....so the user can follow from left to right what the 4th level subtotal actually is (the report can get fairly wide).
At design time, you don't even see the rows to the right of the subtotal, you just see the subtotal box.
I have a Matrix report in SSRS and have added the subtotal in the report. Now I would like to change the color of the subtotal to a different color than the matrix report cells. However when I change the color, only the subtotal cell changes color and not the whole row which includes the summarised total. Is it possible to color the entire row in the matrix report?
I'm having trouble inserting a conditional format to a specific column.
e.g.: Matrix within the rows the "weeks" (1, 2, 3, ... , 52), and in the column a "lastyear revenu", "thisyear revenue" and a difference between them, "delta %", in percent grouped by the stores. I added a subtotal to it so I get in the latest column the "total lastyear revenue", the "total thisyear revenue" and a difference between them in percent for all stores, "total delta %", for a specific week.
Problem: I want to colour the "delta %" column green when it is greater then the "total delta %" value.
I thougt this would be quite easy, but it really is a pain in the *** because, in the background expression dialog box, I can't refer to the subtotal cells ...
I have a problem about my subtotal.I cannot change the background color based on my conditions.But what makes me think is that the font of my subtotal changes, the same as when my cell data meets my condition,without changing the subtotal's property.
What could be the reason why my subtotal wont change?I have a condition in my background =iif(Fields!IsHold.Value = True,"Red","White")
I am having a problem trying to do some conditional formatting on the text color.
This textbox is in the Group Footer so i essentially want change the color to red if the SUM of one field in the group is less than the SUM of another field in the same group.
I am doing this: =Iif(Sum(Fields!YTDChargeHours)< Sum(Fields!YTDForecast), "Red", "Black")
but i am getting this error:
[rsRuntimeErrorInExpression] The Color expression for the textbox €˜YTDChargeHours€™ contains an error: Operation is not valid due to the current state of the object.
Now, it's easy enough to make the values clickable so that somebody can drill down to a report that shows detail about the people. I have also discovered how to turn off clickability on the totals. However, what I really want is for the totals to be clickable so that, for example, if I click on the 63, I see a report that shows all men. Likewise, If I click on the 48, I want to see a report that shows all Full Professors. What currently happens when the totals are clickable is that if I click on the 63, I get all men who are full professors (36 records instead of 63). If I click on the 48, I get all Full Professors who are men. (36 records instead of 48).
Is there any way to send different parameters (or even no parameters) to the secondary report if the subtotals are clicked instead of the regular results?
I have a matrix with both row and column subtotaling. The matrix also has alternating row coloring, which is done using a hidden static row group.
In addition to the alternating row coloing, I'm trying to color the subtotal cells. Using the InScope function I can determine whether the cell is in the Row Group or the Column group or neither.
The problem I'm having is with the coloring of the cells in the Row subtotals. My function correctly determines the appropriate color for each cell in the row total, but the column total cell coloring seems to supercede the color I'm setting on the row total.
Included is the RDL for the AdventureWorks CompanySales report, which I've modified to demonstrate my problem. I've added columns which basically indicate the current scope and the color I'm trying to set for each item in the matrix.
If anyone knows what I'm missing and how to correct this, I'd appreciate the help.
SELECT PC.Name AS ProdCat, PS.Name AS SubCat, DATEPART(yy, SOH.OrderDate) AS OrderYear, 'Q' + DATENAME(qq, SOH.OrderDate) AS OrderQtr,
SUM(SOD.UnitPrice * SOD.OrderQty) AS Sales
FROM Production.ProductSubcategory PS INNER JOIN
Sales.SalesOrderHeader SOH INNER JOIN
Sales.SalesOrderDetail SOD ON SOH.SalesOrderID = SOD.SalesOrderID INNER JOIN
Production.Product P ON SOD.ProductID = P.ProductID ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN
Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
WHERE (SOH.OrderDate BETWEEN '1/1/2002' AND '12/31/2003')
GROUP BY DATEPART(yy, SOH.OrderDate), PC.Name, PS.Name, 'Q' + DATENAME(qq, SOH.OrderDate), PS.ProductSubcategoryID</CommandText>
<Timeout>30</Timeout>
<DataSourceName>AdventureWorks</DataSourceName>
</Query>
<Fields>
<Field Name="ProdCat">
<rd:TypeName>System.String</rd:TypeName>
<DataField>ProdCat</DataField>
</Field>
<Field Name="SubCat">
<rd:TypeName>System.String</rd:TypeName>
<DataField>SubCat</DataField>
</Field>
<Field Name="OrderYear">
<rd:TypeName>System.Int32</rd:TypeName>
<DataField>OrderYear</DataField>
</Field>
<Field Name="OrderQtr">
<rd:TypeName>System.String</rd:TypeName>
<DataField>OrderQtr</DataField>
</Field>
<Field Name="Sales">
<rd:TypeName>System.Decimal</rd:TypeName>
<DataField>Sales</DataField>
</Field>
</Fields>
</DataSet>
</DataSets>
<Code>public function MatrixColor(bRowGroupScope as Boolean, bColGroupScope as Boolean, sAltColor as string, sTotalColor as string) As String
Dim sReturn as String
Select Case True
Case (Not bRowGroupScope And Not bColGroupScope)
sReturn = sTotalColor
Case (bRowGroupScope And Not bColGroupScope)
sReturn = sAltColor
Case (Not bRowGroupScope And bColGroupScope)
sReturn = sTotalColor
Case (bRowGroupScope And bColGroupScope)
sReturn = sAltColor
End Select
MatrixColor = sReturn
end function</Code>
<Width>9.375in</Width>
<InteractiveHeight>11in</InteractiveHeight>
<Description>Adventure Works sales by quarter and product category. This report illustrates the use of a matrix data region that provides drilldown from summary data into detail data by showing and hiding rows. This report also illustrates the use of background images.</Description>
I have this problem that I do not now how to solve it:
I have a report (matrix) where in the lines I have an order status, while in the columns I have the number of orders, the number of lines and the average time of delivery (calculated measure on as 2005 cube).
If put the subtotals the system will add the number of orders, the number of lines but instead of doing the average time of delivery, it will sum all the average of each order status.
Nr. Of Orders Nr. of Lines Average Delivery Time
Open Order 10 20 3.2
Closed Order 15 30 5
Total 25 50 8.2 (it should be, for example, 4.5)
Is there a way in which I can tell the system to not calculate the total for the third column?
If I use excel there is no problem because it will use the server formatting of AS2005 while Reporting Services is not doing it.
I am using the matrix element. in the data part i m using the aggregate function CountDistinct. and when i m taking the subtotal for this value across rows the total is coming wrong. while in the same matrix i have other data values also which uses functions SUM, for these the Subtotal is coming correct.
Can somebody tell me why this is happening with CountDistinct function.
Hi, I have simple report with RS 2005. I use matrix component. I€™ve added €œSubtotal€? element to the row and It works perfect. But I would like to make some modification to it and I€™m looking for expression of it, but I can€™t find it - there's just "TOTAL". Also On layout page I see text box €œTOTAL€? and that€™s all. Where can I find it? Thank you Tomasz
I need to know how to add in the subtotal and the grandtotal. Im using a matrix and SSRS 2000.
Besides that, is that a way to add in the header name for the ROW group in a matrix? Im currently using a normal table, aligned to the same size as the matrix, above the matrix and display the header. Is there a better way?
I am having a matrix as follows Survey1 survey2 Survey 3 Company1 2 3 Company2 1 2 Company3 2 4 Company4 6 7 ------------------------------------------------------------------------------ Total 2 3 3
_____________________________________________
Like that it should display instead of it is showin sum value in the total. Is there any function/customecode to do that
I have data in a matrix that shows a percent, and that is fine, but when it shows the subtotal it just sums all the percents instead of getting an average of all the data in that row. I'm looking for help here for what seems would be easy but it's been hours and I haven't figured out yet how to do this. All the rest of the data is fine because it does what it should (sum) but it's this one row that is giving me a headache.
I had a matrix which retrieves value from a database.When i put "Fields!availability.Value" in the detail cell,it shows warning about aggregate.And i am using 'subtotal'.But my problem is when i use "Sum(Fields!availability.Value)",the value itself that was displayed is different from the actual value in the database.And when i use "First!availability.Value",the subtotal only get the first value from the above rows to which to get the subtotal.Uhm can there be anyway to solve this?? Thanks in advance.
I am trying to get a percent of a group on a row level. I want 62.77% or = sum(totaldeals, "Status") / sum(totaldeals, "Product"). It seems real easy but I have not been able to come up with a solution for it.
Any one have any ideas?
Product is a group, status is a group, total deals is a sum. The reason for a matrix is because I have fiscal year, fiscal quarter, fiscal month, and additional product lines coming on board. Matrix is the way to go for sum but I can't seem to get the % by product.
I was able to get the % on the row level but based on the report total with the following code: =IIF(Sum(Fields!GrossSales.Value,"matrix1_Product")=0,0,Sum(Fields!GrossSales.Value)/IIF(Sum(Fields!GrossSales.Value,"matrix1_FianceStatus")=0,1,Sum(Fields!GrossSales.Value,"matrix1_FinanceStatus")))
This is the concept of what I am trying to do but I want it based on the on the product level sum not the matrix level sum. I tried changing the scopes of the above expression with no luck. I have tried adding inscope("") with no luck.
Product Status Total Deals Total Dollar Amount % of Total Dollars
I followed the instructions and the textbox named Color did indeed display alternate colors on the odd rows. However, when I tried to propogate the color to the whole row using the expression =ReportItems!color.Value for the value of the backgroundcolor property, it was ignored.
So I tried some custom code: Public Function GetColor() Dim retValue as String retValue = Me.ReportItems!Color.Value return retValue End Function
The syntax parser didn't like ReportItems either. I first tried it without the Me object and I got a message about requiring an object so I tried Me.
I've got an SSRS 2008 report with 4 nested groups on rows. Report requirements are that each new group at each level have a subtotal. I've gotten this to work just fine. After the users saw the report, they had a new request - if the SubTotal has only 1 row to Subtotal, do not display the Subtotal. If there are 2 or more rows, display the Subtotal line.I know I can go to the Grouping Properties, and on the Visibility properties select the "Show or hide based on the expression" - I am struggling with the experssion. How can I check to see if there are more than one row at this group level? The query is SQL with 2 sub selects, and 7 tables in various join clauses.Â
I have a matrix which looks as follows: ----- Actuals | Budget ItemA 20 | 50 ItemB 45 | 30 ItemC 20 | 15
I would like to add a column with the difference between actuals and budget. Actuals/budget is 1 group in the matrix being the dimensionname. How can I calculate the difference (subtract actuals and budget), because if I just use the subtotal function it adds both totals together and I need to have the difference between them?
I want detailed subtotals but I don't want the "Amount" and "Amount Class." values in the details of my Matrix.
I've not found other way to show the "amount" and "amount class." in the subtotal without adding those values in the details are of the matrix. But when I select "Hide" in the properties those values are hidden in the subtotal as well. Is there any way to hide a value in the details area but not in the subtotals ?
I have a matrix like this. Here A,B,C are row groups and D,E are the column groups. Subtotals are used both at row level and at column level too. I need to provide drill through capability on the data fields. I am using the INSCOPE function while passing the parameters. INSCOPE function is working fine for the row totals. That is. I m getting the desired result when I click on 80,75,75,35,265(in bold big) but when I click on 50,85 or 75,55(in cyan) I get the result of 265. Means INSCOPE is working correctly for row totals but not for column totals. Can anybody tell me what I m doing wrong here and what is the correct approach.
Hi, It looks like by default the subtotal number inherits the number format from the main column. Is there a way to override it? In my case I am displaying percents with a decimal point in a column and sometimes the total comes out to 99.9% instead of 100%. I just want to round of the total to alway show 100%. Is there a way to do it?
I have a matrix with the rows consisting of customers and the columns consisting of different revenue streams. The revenue streams are totalled using the matrix subtotal feature. I would like to sort, either interactively or statically (if that is the only option) by the subtotal column. I've read through everything I can find online and even the solutions that appear to be appropriate do not work. Can anyone give me a suggestion?
hi, we need to export a matrix that has subtotals to excel, but to download it without the subtotal groups so we can analyze the data in excel (pivot it, add graphs, etc.). how can we control the way the excel is being created?