如何动态更改SSRS正文中的列数

时间:2009-02-15 17:07:24

标签: reporting-services

在SQL Server Reporting Services(SSRS)中,报表页面上的列数在“报表属性”中设置(这与随数据变化的字段列数不同)。
默认情况下,它设置为1,但它可以是两个或更多,然后向下流动。

我希望能够动态设置它,具体取决于我使用的打印机类型(标签卷或纸张)。但是,SSRS不允许您输入此值的表达式。有没有人有办法通过代码这样做?

1 个答案:

答案 0 :(得分:0)

您可以在rsreportserver.config中定义多个自定义渲染选项:

<Render>
    <Extension Name="PDF (1 column)" 
         Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PdfReport, 
               Microsoft.ReportingServices.ImageRendering"/>
        <OverrideNames>
            <Name Language="en-US">PDF (1 column)</Name>
        </OverrideNames>
        <Configuration>
            <DeviceInfo>
                <OutputFormat>PDF</OutputFormat>
                <PageHeight>11in</PageHeight>
                <PageWidth>8.5in</PageWidth>
                <Columns>1<Columns>
            </DeviceInfo>
        </Configuration>
    </Extension>
    <Extension Name="PDF (2 columns)" 
         Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PdfReport, 
               Microsoft.ReportingServices.ImageRendering"/>
        <OverrideNames>
            <Name Language="en-US">PDF (2 columns)</Name>
        </OverrideNames>
        <Configuration>
            <DeviceInfo>
                <OutputFormat>PDF</OutputFormat>
                <PageHeight>11in</PageHeight>
                <PageWidth>8.5in</PageWidth>
                <Columns>2<Columns>
            </DeviceInfo>
        </Configuration>
    </Extension>
</Render>

Customizing Rendering Extension Parameters in RSReportServer.Config
PDF Device Information Settings
然后,在打印之前,只需选择合适的渲染格式。

但是,在报告网址中指定thouse设置会更容易:

http://servername/reportserver?/SampleReports/Employee SalesSummary
  &EmployeeID=38&rs:Command=Render&rs:Format=HTML&rc:Columns=1
http://servername/reportserver?/SampleReports/Employee SalesSummary
  &EmployeeID=38&rs:Command=Render&rs:Format=HTML&rc:Columns=2 

Specifying Device Information Settings in a URL
您还可以创建一些主报告并在那里放置链接。