all groups > sql server reporting services > october 2005 >
You're in the

sql server reporting services

group:

Interactive Sort in a matrix


Interactive Sort in a matrix LaurieT
10/24/2005 2:17:15 PM
sql server reporting services:
I cannot get the interactive sort to work in a matrix (SQL Server 2005, Sept
CTP). Does anyone have examples on how to do this? Should interactive
sorting work in matricies -- or is it only set up to work with tables?
--
Re: Interactive Sort in a matrix Robert Bruckner [MSFT]
10/24/2005 9:08:58 PM
Yes, you can do that - but you have to understand what you want to sort on.
Typically you want to sort on the matrix row groupings. If you add the
InteractiveSort option on the matrix row grouping heading textbox, it will
repeat for every matrix row grouping instance at runtime and this is not
what you typically want.
You would rather want just one textbox that controls the sort direction of
all matrix groups => e.g. create a textbox outside the matrix or use the
matrix corner. If you use the matrix header, it is a bit easier to set up:
You want to sort the "current scope" (i.e. the matrix) and you want to
evaluate the sort expression in the scope of the matrix row grouping (i.e.
type in the name of the matrix row grouping).

An example for a completely dynamic matrix is attached. The sample does more
than what you are looking for - just check out the interactive sort in the
matrix corner.

-- Robert
This posting is provided "AS IS" with no warranties, and confers no rights.



[quoted text, click to view]


====================================================

<?xml version="1.0" encoding="utf-8"?>
<Report
xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<DataSources>
<DataSource Name="northwind">
<DataSourceReference>northwind</DataSourceReference>
<rd:DataSourceID>66a72cd8-749c-4971-b5d6-05b2612a4d40</rd:DataSourceID>
</DataSource>
</DataSources>
<BottomMargin>1in</BottomMargin>
<RightMargin>1in</RightMargin>
<ReportParameters>
<ReportParameter Name="RowGroup">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>ProductName</Value>
</Values>
</DefaultValue>
<Prompt>RowGroup</Prompt>
<ValidValues>
<ParameterValues>
<ParameterValue>
<Value>ProductName</Value>
<Label>By Product Name</Label>
</ParameterValue>
<ParameterValue>
<Value>SupplierID</Value>
<Label>By Supplier ID</Label>
</ParameterValue>
<ParameterValue>
<Value>CategoryID</Value>
<Label>By Category ID</Label>
</ParameterValue>
</ParameterValues>
</ValidValues>
</ReportParameter>
<ReportParameter Name="ColumnGroup">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>ReorderLevel</Value>
</Values>
</DefaultValue>
<Prompt>ColumnGroup</Prompt>
<ValidValues>
<ParameterValues>
<ParameterValue>
<Value>ReorderLevel</Value>
<Label>By Reorder Level</Label>
</ParameterValue>
<ParameterValue>
<Value>UnitsInStock</Value>
<Label>By Stock</Label>
</ParameterValue>
<ParameterValue>
<Value>SupplierID</Value>
<Label>By Supplier ID</Label>
</ParameterValue>
</ParameterValues>
</ValidValues>
</ReportParameter>
</ReportParameters>
<rd:DrawGrid>true</rd:DrawGrid>
<InteractiveWidth>8.5in</InteractiveWidth>
<rd:SnapToGrid>true</rd:SnapToGrid>
<Body>
<ReportItems>
<Textbox Name="textbox3">
<Left>0.125in</Left>
<Top>0.375in</Top>
<ZIndex>2</ZIndex>
<Width>3in</Width>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Height>0.25in</Height>
<Value>="Matrix columns " &amp; Parameters!ColumnGroup.Label</Value>
</Textbox>
<Textbox Name="textbox1">
<Left>0.125in</Left>
<Top>0.125in</Top>
<rd:DefaultName>textbox1</rd:DefaultName>
<ZIndex>1</ZIndex>
<Width>3in</Width>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Height>0.25in</Height>
<Value>="Matrix rows " &amp; Parameters!RowGroup.Label</Value>
</Textbox>
<Matrix Name="matrix1">
<MatrixColumns>
<MatrixColumn>
<Width>1in</Width>
</MatrixColumn>
</MatrixColumns>
<Left>0.125in</Left>
<RowGroupings>
<RowGrouping>
<Width>2.125in</Width>
<DynamicRows>
<ReportItems>
<Textbox Name="CategoryID">
<rd:DefaultName>CategoryID</rd:DefaultName>
<ZIndex>1</ZIndex>
<Style>
<TextAlign>Right</TextAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value>=Fields(Parameters!RowGroup.Value).Value</Value>
</Textbox>
</ReportItems>
<Grouping Name="matrix1_RowGroup">
<GroupExpressions>
<GroupExpression>=Fields(Parameters!RowGroup.Value).Value</GroupExpression>
</GroupExpressions>
</Grouping>
</DynamicRows>
</RowGrouping>
</RowGroupings>
<ColumnGroupings>
<ColumnGrouping>
<DynamicColumns>
<ReportItems>
<Textbox Name="ReorderLevel">
<rd:DefaultName>ReorderLevel</rd:DefaultName>
<ZIndex>2</ZIndex>
<Style>
<TextAlign>Right</TextAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value>=Fields(Parameters!ColumnGroup.Value).Value</Value>
</Textbox>
</ReportItems>
<Sorting>
<SortBy>
<SortExpression>=Fields(Parameters!ColumnGroup.Value).Value</SortExpression>
Re: Interactive Sort in a matrix LaurieT
10/25/2005 6:33:02 AM
Thank you very much. I tried the sort in the matrix header and was able to
get it to work.
--
LaurieT


[quoted text, click to view]
Re: Interactive Sort in a matrix MJT
5/19/2006 12:51:02 PM
Robert,
I am able to see how the example works however a co-worker of mine has a
matrix and I am not able to get it to work in there. Of course the examples
provided are always less complicated than what we end up working with - the
matrix he has includes 5 row groups and a static row group and 2 column
groups. He wants to sort by one of the row groups. In addition the row
group has expand/collapse criteria. Here is the deal. The first 3 columns
are hidden and he wants to interactively sort the 4th column ascending or
descending. He already had the groups being sorted (on the sort tab within
the group) so I removed those thinking that might work. Basically the data
was already sorted ... it just was sorted in ascending order and he wants to
be able to let them flip it to descending order. The example you provided
used a parameter ... is that necessary ?? I just chose the field that I
wanted to sort and tried putting that in the textbox at the heading of the
matrix (as that seemed to work for Laurie she mentioned in her reply).

[quoted text, click to view]
AddThis Social Bookmark Button