代码之家  ›  专栏  ›  技术社区  ›  Ezweb

强制SQL Reporting Services 2005表显示一定数量的行

  •  2
  • Ezweb  · 技术社区  · 16 年前

    我有一个SQL Reporting Services 2005报告,在第一页包含一个表。我在第一页有足够的空间显示列表中的前5项。如果有5项以上,我希望列表继续显示在报告第二页的另一个表中。

    我还希望表具有固定数量的行。例如,即使列表中不存在任何项,第一页上的表始终显示5行。这使得边框仍然可见,这样页面布局就不会混乱。

    你有什么想法可以让这一切顺利进行吗?

    4 回复  |  直到 9 年前
        1
  •  3
  •   Raj More    16 年前

    我认为这最好在返回数据的查询/存储过程中完成,而不是在SSR中。

    你可以这样做

    SELECT TOP 5 FROM
    (
        SELECT Top 5 *
        FROM DummyOrBlankDataFillerView
        UNION
        SELECT TOP 5 *, Row_Number() over (order by YourColumns) as OrderByClause 
        FROM ActualQueryThatBringsBackRecords
    )
    ORDER BY OrderByClause
    

    OrderByClause按您的列排序,将具有(1,2,3,4,5)和 DummyOrBlankDataFillerView 应该有一个返回的列,该列的值与(6、7、8、9、10)的值在同一列中。

    然后,在 order by ,以及“前五名”,您应该拥有需要显示的内容。

        2
  •  2
  •   pmarflee    16 年前

    我认为没有一个简单的方法可以做到这一点。抱歉,SSR在这里帮不了你。您可以更改查询逻辑,以便在返回的实际行数为<5然而,这似乎是一个混乱的解决方案。

        3
  •  1
  •   giltanis    16 年前

        4
  •  1
  •   jimconstable    16 年前

    例如,向名为rowcount的数据集添加一个计算行

    =rownumber("datasetname")
    

    然后过滤第一个表中的行数<6

    推荐文章