【问题标题】:What is the easiest way to make a "Banded" Report in RDLC?在 RDLC 中制作“带状”报告的最简单方法是什么?
【发布时间】:2012-11-17 01:04:00
【问题描述】:

好的,我可能一直在用谷歌搜索错误的搜索词,但我找不到如何使用 RDLC 制作 MS-Access 样式的带状报表(即 Visual Studio 2010 中的残缺报表设计器,而不是 BIDS)带状我的意​​思是,带有组标题和子组标题的报告 - 不是交替的颜色带。

我有一个带有 List、Tablix 和 Matrix 的工具箱,它们的行为都相同——我不断得到看起来像 MS-Access CrossTabs 的东西。我可以得到这个:

Country Population    Date
---------------------------
Spain 1 million     1982
Spain 1.1 million   1983
China 1 billion     1982
China 1.2 billion   1983

我还可以在行上获取国家/地区,在列上获取年份并在中心弹出,例如交叉表,但我不想要交叉表。另外,我不想要行标题,它真的和上面一样,除了合并相同的单元格。

但我无法得到这个:

---------------
Spain 
---------------
Population     Date
1 million     1982
1.1 million     1983
---------------
China
---------------
Population    Date
1 billion     1982
1.2 billion   1983

RDLC 甚至可以吗?

更多信息 Reporting Services 是 Microsoft 发布的一种服务器产品,它带有一个客户称为商业智能开发的东西或简称 BIDS。前者使用 RDL,后者生成 RDL(RDL 是一种基于 XML 的报告语言)。这两个我都没有。

我有 ReportViewer,它是一个 ASP.NET 控件,可以读取 RDLC(RDL 的残缺子集),我有 Visual Studio 2010,它有残缺的 BIDS 版本。 Visual Studio 2010 中的工具箱有一个列表、一个 Tablix 和一个 Matrix,它们看起来都是同一个控件,具有不同的默认起始属性。在 MS-Access 中创建所谓的交叉表是毫不费力的,但要反复试验以生成带状报告,而小组往往会生成除此之外的任何东西。

【问题讨论】:

  • 我之前有answered 一个非常相似的问题,也许它会帮助你。
  • 假设用户知道如何“创建一个按日期字段分组的列表”,或者在我的情况下,“创建一个按国家/地区字段分组的列表”到目前为止,我得到的只是对于我来说,“细节成员只能包含静态内部成员”或垂直重复的分组(西班牙的一列,中国的一列)和其他莫名其妙的怪事。
  • 您能提供更多信息吗?您是否正在结合 ASP.NET 进行 RDLC,您当前的 RDLC 文件是什么样的?直到现在我才听说过 RDLC,但它似乎是我有机会搜索相关信息的最无证的功能之一。我想用脚本将报告后处理成您想要的格式也是不可接受的?
  • 我有一份来自最后一个使用嵌套 tablix 的开发人员的遗留报告,但我不知道如何重新创建他对 GUI 所做的事情。所以我的出发点是空白页。已经用于数据绑定和参数访问,我必须直接操作 XML,所以我认为需要编写 XML 的解决方案不能比设计器差。

标签: reporting-services reportviewer rdlc rdl report-viewer2010


【解决方案1】:

只要我了解所有内容,您所要求的内容可以以 RDLC 格式实现,我执行以下步骤以获得您想要的输出:

  1. 首先,我使用您上面提供的数据示例创建了示例数据。

    CREATE TABLE [dbo].[SampleTable](
        [Country] [nchar](10) NULL,
        [Population] [nchar](20) NULL,
        [Date] [nchar](10) NULL
    ) ON [PRIMARY]
    
    GO
    
    INSERT INTO [SampleTable]([Country],[Population],[Date])
    SELECT 'Spain', '1 million', '1982'
    UNION ALL SELECT 'Spain', '1.1 million',   '1983'
    UNION ALL SELECT 'China', '1 billion',     '1982'
    UNION ALL SELECT 'China', '1.2 billion',   '1983'
    
    GO
    
  2. 接下来我创建了一个新的 WindowsFormsApplication 并添加了一个新项目“Report”(不是 Report Wizard)

  3. 我在工具箱中添加了一个新表,按照向导连接到之前创建的示例数据

  4. 在表格中添加了人口和数据并删除了额外的列,所以你的左边看起来像这样:

  5. 添加组,通过右键单击行组下的(详细信息),添加组>父组...

    对话框 - Tablix 组:分组方式:国家,勾选“添加组标题”

  6. 现在删除新创建的列,确保选择只删除列而不是组

  7. 删除列标题行,在空白行添加Country字段(鼠标悬停在字段上点击出现的表格图标),也可以右键合并单元格

  8. 在两行之间添加一个新行,方法是右键单击行组下的(详细信息),添加总计 > 之前

  9. 在新行中添加行标题,应该留下这样的东西:

  10. 切换到Form.cs [Design],在ToolBox中添加了一个ReportViewer,选择新建的报表

  11. 最终解决方案预览如下

接下来的步骤是更新报告的格式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多