Monday, March 19, 2012

Interactive sorting of a list

I have a list data region that has column headings outside the list. I would like to be able to click a column heading and sort the list. However I cannot do this because the scope of the header can't access the list. Has anyone sorted a list by clicking textbox column headings? Please help.

Hi Patrick-

In general, when applying a user sort, you can sort items that are at the same scope, or are in a child scope. You might try setting the textbox to sort on the data set wihch the list is using, and then set the sort expression scope to details. If you are using RS 2005, I've included a sample RDL below. Just copy the text to a file, rename the extension to .rdl and open it in report designer.

-Jon

<?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="DataSource1">

<ConnectionProperties>

<IntegratedSecurity>true</IntegratedSecurity>

<ConnectString />

<DataProvider>XML</DataProvider>

</ConnectionProperties>

<rd:DataSourceID>8d7185f8-cc23-497e-a4a0-cb6c5ec79844</rd:DataSourceID>

</DataSource>

</DataSources>

<BottomMargin>1in</BottomMargin>

<RightMargin>1in</RightMargin>

<rd:DrawGrid>true</rd:DrawGrid>

<InteractiveWidth>8.5in</InteractiveWidth>

<rd:SnapToGrid>true</rd:SnapToGrid>

<Body>

<ReportItems>

<Textbox Name="textbox1">

<Left>1.25in</Left>

<Top>0.5in</Top>

<rd:DefaultName>textbox1</rd:DefaultName>

<ZIndex>1</ZIndex>

<Width>1in</Width>

<Style>

<PaddingLeft>2pt</PaddingLeft>

<PaddingBottom>2pt</PaddingBottom>

<PaddingRight>2pt</PaddingRight>

<PaddingTop>2pt</PaddingTop>

</Style>

<CanGrow>true</CanGrow>

<Height>0.25in</Height>

<UserSort>

<SortTarget>DataSet1</SortTarget>

<SortExpression>=Count(Fields!Col.Value, "DataSet1")</SortExpression>

</UserSort>

<Value>SORT</Value>

</Textbox>

<List Name="list1">

<Left>1in</Left>

<ReportItems>

<Textbox Name="Col">

<Left>0.625in</Left>

<Top>0.375in</Top>

<rd:DefaultName>Col</rd:DefaultName>

<Width>1in</Width>

<Style>

<PaddingLeft>2pt</PaddingLeft>

<PaddingBottom>2pt</PaddingBottom>

<PaddingRight>2pt</PaddingRight>

<PaddingTop>2pt</PaddingTop>

</Style>

<CanGrow>true</CanGrow>

<Height>0.25in</Height>

<Value>=Fields!Col.Value</Value>

</Textbox>

</ReportItems>

<DataSetName>DataSet1</DataSetName>

<Top>1in</Top>

<Width>2in</Width>

<Height>1in</Height>

</List>

</ReportItems>

<Height>2.75in</Height>

</Body>

<rd:ReportID>50318574-728b-4b7c-a2f9-82ab09948b39</rd:ReportID>

<LeftMargin>1in</LeftMargin>

<DataSets>

<DataSet Name="DataSet1">

<Query>

<CommandText>&lt;Query&gt;&lt;XmlData&gt;&lt;Root&gt;&lt;Col&gt;1&lt;/Col&gt;&lt;Col&gt;2&lt;/Col&gt;&lt;Col&gt;3&lt;/Col&gt;&lt;/Root&gt;&lt;/XmlData&gt;&lt;/Query&gt;</CommandText>

<DataSourceName>DataSource1</DataSourceName>

</Query>

<Fields>

<Field Name="Col">

<rd:TypeName>System.String</rd:TypeName>

<DataField>Col</DataField>

</Field>

</Fields>

</DataSet>

</DataSets>

<Width>6.5in</Width>

<InteractiveHeight>11in</InteractiveHeight>

<Language>en-US</Language>

<TopMargin>1in</TopMargin>

</Report>

No comments:

Post a Comment