在RDLC中制作"带状"报告的最简单方法是什么?

Mat*_*tin 5 reportviewer rdlc rdl reporting-services report-viewer2010

好吧,我可能一直在谷歌搜索错误的搜索条件,但我找不到如何使用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
Run Code Online (Sandbox Code Playgroud)

我也可以在行上获取国家,在列上显示年份并在中心弹出,例如交叉表,但我不想要交叉表.另外,我不想要行标题,除了相同的单元格合并之外,它们与上面的标题完全相同.

但我不能得到这个:

---------------
Spain 
---------------
Population     Date
1 million     1982
1.1 million     1983
---------------
China
---------------
Population    Date
1 billion     1982
1.2 billion   1983
Run Code Online (Sandbox Code Playgroud)

甚至可以用RDLC吗?

更多信息 Reporting Services是Microsoft发布的服务器产品,随客户端调用Business Intelligence Development,简称BIDS.前者使用RDL,后者使用RDL(RDL是基于XML的报告语言).我没有其中任何一个.

我有ReportViewer,它是一个ASP.NET控件,可以读取RDLC(RDL的一个残缺的子集),我有Visual Studio 2010,它有一个残缺的BIDS版本.Visual Studio 2010中的工具箱有一个列表,一个Tablix和一个Matrix,它们看起来都是具有不同默认启动属性的相同控件.在MS-Access中创建名称为Crosstabs的内容很容易,但是试错会产生一个带状报告,群组往往会产生任何东西.

Mat*_*man 7

只要我了解了所有内容,您要求的是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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 接下来,我创建了一个新的WindowsFormsApplication并添加了一个新项目"Report"(不是Report Wizard)

  3. 从工具箱中我添加了一个新的表,跟随向导连接到先前创建的示例数据

  4. 向表中添加了人口和数据,并删除了额外的列,因此您的左侧看起来像这样:

    仅供参考 - 人口和数据

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

    对话框 - Tablix组:分组依据:国家,勾选"添加组头"

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

  7. 删除列标题行并在空白行中添加"国家/地区"字段(单击鼠标悬停在字段上时显示的表格图标),也可以通过右键单击合并单元格

  8. 通过在"行组"下的"右键单击(详细信息)","添加总计">"之前",在两行之间添加新行

  9. 在新行中添加行标题,应该留下如下内容:

    最终解决方案 - 布局

    最终解决方案 - 小组

  10. 切换到Form.cs [Design],从ToolBox添加ReportViewer,选择新创建的报告

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

    最终解决方案 - 预览

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