FlexCell表格控件有很多亮点的功能,使用也算比较方便,很多时候,可以模拟传统的Excel内容在Winform界面上展现,而且也支持内容格式的预设置等,本文主要介绍利用这个控件来实现一些特殊的统计及关联信息显示的功能。在实际项目中,有一个这样的需求,首先需要显示一些数据的总的汇总数据,每条又可以进一步查看其对应的明细数据,类似于数据仓库的钻取功能,那么我们要如何实现以上的功能呢?
功能介绍如下图所示。
单击链接可以进一步展现相关的人员列表,如下图所示。
实现以上功能,如果利用.NET自带的DataGridView,通过在在Cell里面添加链接控件的方式,估计也能实现,不过可能操作起来会比较麻烦一些。
本文主要介绍利用FlexCell 表格控件实现以上操作的思路,共大家参考,并非为该控件做广告。
首先我们需要在为每个条件显示一行记录,对应还要记住它的条件,其中有一个超链接的单元格,供我们单击可以查看明细。为了记住该行的条件,我其实在一个隐藏列里面放置了条件表达式,真实情况下如下所示,只是为了显示美观,不需要显示隐藏的条件内容。
FlexCell提供超链接的单元格类型,设置为超链接类型的单元格,内容会加下划线,而且可以对超链接的事件进行捕捉处理。
得到了响应的处理事件,以及存放了对应的条件描述,那么在事件里,打开一个新窗体,根据条件内容获取对应的列表显示出来即可。
1)绑定相关的汇总数据
代码如下 | 复制代码 |
Dictionary foreach (string key in dict.Keys) startRow++; |
2)超链接处理事件代码
在控件上单击Grid的Hyperlink处理事件,然后实现其内部处理代码,如下所示。
代码如下 | 复制代码 |
private void grid1_HyperLinkClick(object Sender, FlexCell.Grid.HyperLinkClickEventArgs e) |
3)明细窗体处理代码
代码如下 | 复制代码 |
private void DealAge(string condition, ref int startRow) startRow++; string where = "Age " + condition; DataTable dt = BLLFactory startRow++; startRow++; |
上面的代码,主要就是动态绘制表头,设置格式,然后绘制表格明细的单元格内容即可。
4)实现打印、导出Excel/PDF等功能
控件内置了很多导出功能,实现基本的导出、打印功能,非常方便,代码如下。
代码如下 | 复制代码 |
private void menu_Preview_Click(object sender, EventArgs e) private void menu_PageSetting_Click(object sender, EventArgs e) private void menu_ExportExcel_Click(object sender, EventArgs e) bool success = grid1.ExportToExcel(fileToSave, true, true); /// private void menu_ExportPDF_Click(object sender, EventArgs e) |
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔