好吧,我可能一直在谷歌上搜索错误的搜索词,但我找不到如何使用 RDLC 制作 MS-Access 风格的带状报告(这是 Visual Studio 2010 中的残缺报表设计器,而不是 BIDS),我所说的带状是指,带有组标题和子组标题的报告 - 不是交替的颜色带。
我有一个带有列表、Tablix 和矩阵的工具箱,它们的行为都相同 - 我不断收到看起来像 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,它是一个可以读取 RDLC(RDL 的残缺子集)的 ASP.NET 控件,并且我有 Visual Studio 2010,它具有 BIDS 的残缺版本。 Visual Studio 2010 中的工具箱有一个列表、一个 Tablix 和一个 Matrix,它们看起来都是相同的控件,但具有不同的默认启动属性。在 MS-Access 中创建所谓的交叉表非常容易,但需要反复试验才能生成带状报告,而小组往往不会生成这样的报告。
只要我理解了一切,您所要求的就可以以 RDLC 格式实现,我执行了以下步骤来获得您想要的输出:
-
首先,我使用您上面提供的数据示例创建了示例数据。
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
接下来我创建了一个新的 WindowsFormsApplication 并添加了一个新项目“报告”(不是报告向导)
我从工具箱中添加了一个新表,按照向导连接到之前创建的示例数据
-
将人口和数据添加到表中并删除额外的列,这样您的左边看起来像这样:
-
添加组,方法是右键单击行组下的(详细信息),添加组 > 父组...
对话框 - Tablix 组:分组依据:国家/地区,勾选“添加组标题”
现在删除新创建的列,确保选择仅删除列而不是组
删除列标题行并在空白行中添加“国家/地区”字段(单击将鼠标悬停在该字段上时出现的表格图标),也可以通过右键单击合并单元格
通过右键单击行组下的(详细信息),添加总计 > 之前,在两行之间添加新行
-
在新行中添加行标题,应保留如下内容:
切换到Form.cs【设计】,从工具箱中添加一个ReportViewer,选择新创建的报表
-
最终解决方案预览如下
下一步是更新报告的格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)