报表查看器中的水平表

时间:2013-04-04 07:32:20

标签: c# sql-server-2008 reporting-services reportviewer

我需要报表查看器中的表格来显示从水平表格中的数据源中提取的项目列表。

数据源只包含一个SQL列中包含的字符串列表。

Horizontal report table example

到目前为止我尝试过的表只显示在一列中。

非常感谢!

1 个答案:

答案 0 :(得分:0)

以下是我对要求的理解。 从表格中的项目列表中进行选择,并在水平表格中对其进行报告。表中的值可能已知,也可能未知。

在我的例子中,我正在从一个select中构建一个字符串,从一个项目列表生成一个水平连续的字符串到一个变量。

然后,我使用new变量构建一个动态SQL语句,并包括从我想要的表中的select。在动态SQL中,我做了一个简单的替换,因此PIVOT格式正确。这解决了事先不知道表中存在什么数据的问题。 Pivot要求您使用字段值标记列,如果表中的值未知或不断变化,则可能是挑战。

    DECLARE @FieldValueString VARCHAR(MAX)
        SELECT @FieldValueString = Coalesce(@FieldValueString + ',', '') + cast(ssctab as         varchar) from RA_sysScreen 

    PRINT @FieldValueString
    DECLARE @sql VARCHAR(MAX)
    SET @sql = 'SELECT * FROM
                (SELECT ssctab FROM [RA_sysScreen])qry
                PIVOT (MAX(ssctab) FOR ssctab in (['+REPLACE(@FieldValueString,',','],[')+']))         as pvt'
    print @sql
    EXEC(@sql)

希望这会有所帮助。我期待在这一个上看到其他答案