GridView显示带有中国式报表表头的方法

cognos中国式复杂表头的制作(图列示范) cognos中国式复杂表头的制作,(图列示范) 立即下载

   最近在做的项目包含报表,报表的显示可以用水晶报表的推/拉模式轻松解决,报表的录入这一部分采用的是GridView使用模板列进行录入,但用户提出录入页面要和报表的形式一样,但由于报表采用的是中国式表头,比较复杂。刚开始想到用Div做一个固定表头,在表头下面放置隐藏Header的GridView,并通过JS来控制表头的单元宽度随着GV的单元格大小改变的改变而改变,但这样做比较繁琐。后来发现GridView本身就可以设置多层表头。

方法如下:

   比如要做如下的报表表头

   [图片过宽,建议使用Chrome浏览器]

   


代码如下:

 

   protected void grvTest1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
                //第一行表头,从左到右依次数单元格(只数第一行的单元格,不管它跨了几行还是几列)
                    TableCellCollection tcHeader = targetHeader.Cells;
                    tcHeader.Clear();
                    tcHeader.Add(new TableHeaderCell());
 
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[0].Attributes.Add("rowspan", "3"); //设置单元格属性为竖跨三行
                    tcHeader[0].Text = "";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[1].Attributes.Add("rowspan", "3");
                    tcHeader[1].Text = "编号";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[2].Attributes.Add("colspan", "3"); //设置单元格属性为横跨三列
                    tcHeader[2].Text = "占地面积(平方米)";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[3].Attributes.Add("colspan", "2");
                    tcHeader[3].Text = "图书(万册)";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[4].Attributes.Add("colspan", "2");
                    tcHeader[4].Text = "计算机数(台)";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[5].Attributes.Add("rowspan", "3");
                    tcHeader[5].Text = "多媒体教师座位数(个)";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[6].Attributes.Add("rowspan", "3");
                    tcHeader[6].Text = "语音实验室座位数(个)";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[7].Attributes.Add("colspan", "5");
                    tcHeader[7].Text = "固定资产总值(万元)</th></tr><tr>"; //“</th></tr><tr>”在每一行到最后一个单元格时
                                                                             // 需要加上这个标记表示换下一行
 
                    //第二行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[8].Attributes.Add("rowspan", "2");
                    tcHeader[8].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[9].Attributes.Add("colspan", "2");
                    tcHeader[9].Text = "其中:";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[10].Attributes.Add("rowspan", "2");
                    tcHeader[10].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[11].Attributes.Add("rowspan", "2");
                    tcHeader[11].Text = "其中:当年新增";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[12].Attributes.Add("rowspan", "2");
                    tcHeader[12].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[13].Attributes.Add("rowspan", "2");
                    tcHeader[13].Text = "其中:教学用计算机";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[14].Attributes.Add("rowspan", "2");
                    tcHeader[14].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[15].Attributes.Add("colspan", "2");
                    tcHeader[15].Text = "其中:教学、科研仪器设备资产值";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[16].Attributes.Add("colspan", "2");
                    tcHeader[16].Text = "其中:信息化设备资产值</th></tr><tr>";
 
 
                    //第三行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[17].Text = "绿化用地面积";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[18].Text = "运动场地面积";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[19].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[20].Text = "其中:当年新增";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[21].Text = "计";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[22].Text = "其中:软件<th></tr><tr>";
 
                    //第四行表头
                    tcHeader.Add(new TableHeaderCell()); ;
                    tcHeader[23].Text = "甲";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[24].Text = "乙";
                    for (int i = 25; i <= 38; i++)
                    {
                        tcHeader.Add(new TableHeaderCell());
                        tcHeader[i].Text = (i - 24).ToString();
                    }
        }
    }


运行效果如下:

[图片过宽,建议使用Chrome浏览器]

 

注意:在设值第一行第一列的单元格属性为N的话,那么“</th></tr><tr>"出现的次数应该也为N次

GridView报表总结 立即下载

相关推荐

一个基于GridView实现的多列表头合并显示的用户控件程序例子

一个基于GridView实现的多列表头合并显示的用户控件程序例子,采用ASP.NET+C#开发实现。

让中国式复杂报表不复杂的工具来啦

做过表格的人可能都经历过一件痛苦的事——制作复杂报表。 对于一些报表,如下图生产计划表,由于存在很多维度参数、表内及表间的关联,填写一不小心,报表就错乱了,而且手工调整费时又费力。所谓万能的Excel数据透视表又无法完成多种分类统计,如型号、日期、生产线等。 像这种复杂的报表都有这样的共性: 格式复杂。表头很乱,三五层的大格套小格很常见,还有著名的斜线,没有格线时很容易看走眼。 信息量大。存在各种各样的数据,明细的、汇总的,往往都集中在一张表上。 其实有一种简单的方法,N套具有共性的报表都只要维护

amsonga的博客 215

GridView动态创建列头丶自定义多行合并表头

GridView动态创建列头丶自定义多行合并表头

cognos 简单中国式报表表头的制作(留个脚印)

在使用cognos的过程中,我们难免要制作中国式报表,http://www.cognosusersgroup.com/viewthread.php?tid=1516这个上面很好的说明了关于中国式报表表头的制作,图文的,看起来很方便,但是cognos不提供列的合并,而文中最后也没有说明怎么合并列。下面是我合并列的方法合并之前:选中一个单元格,比如上面那个单元格,然后找到它属性的边框属性然后将样式设为无,并选中预览中的下面那个按钮:注意两幅图片的差别,如此点击确定,然后选中横线下面那个单元格,按照上面的方法做,

寒冰 4351

语音识别(ASR)-- Kaldi 学习笔记

语音识别(ASR)-- Kaldi学习笔记语音识别简介GMM-HMM基本原理DNN-HMM(基于神经网络)KaldiKaldi架构简介Kaldi在Windows下的安装工具准备编译OpenFST配置PortAudio配置KaldiKaldi目录说明 语音识别简介 语音识别(Speech Recognition)技术,也被称为自动语音识别(Automatic Speech Recognition, ASR)、计算机语音识别(Computer Speech Recognition)或是语音转文本识别(Spee

qq_43318971的博客 4847

论文解读--Phase Noise in FMCW Radar Systems

相位噪声是现代雷达、通信、光谱和计量系统的基本性能参数之一。本文提出了一种适用于FMCW雷达系统的相位噪声理论。导出了一个新的设计方程,用于确定雷达系统中允许的源相位噪声电平的最大界。分析了在传输延迟小于参考振荡器相干时间时,相干混频引起的非线性相位噪声去相关函数;讨论了在传输延迟大于参考振荡器相干时间时,目标响应的频谱展宽。提出了收发链中各子系统的影响,并讨论了一种新的ADC相位噪声模型。介绍了相位噪声建模技术,然后将锁相环频率合成器与低噪声频率合成器进行比较,以演示减少相位噪声边带以改善检测和跟踪性能。

奔袭的算法工程师 3764

Gridview表格控件

Gridview表格控件 效果图:     分析: 使用和ListvVew很像,都是经过适配器将数据绑定到控件上 具体步骤如下: 1、创建GridView控件,并指定列数   android:numColumns="3" 2、创建显示数据项的数据容器,是一个Lauout文件,里面一个ImageView,一个TextView   上面是ImageView,“小白10”是T...

weixin_34267123的博客 295

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

Time_1023的博客 1872

用GridView设计固定行数的入库单报表

在仓库管理系统中经常打印固定格式的入库单和出库单。如下图所示: 其中,要求行数(假如10行)要固定,也就是说没有数据的要求补空行。其实用GridView很容易就实现了,其中空行的处理是通过datatable实现的。 Code//绑订点验单明细stringsql="select*fromwz_v_dydmxwheredyd...

weixin_34008805的博客 202

告别QXDM:在Android Studio中调试与验证高通NV读写功能的完整流程

本文详细介绍了在Android Studio中调试与验证高通NV分区读写功能的完整流程,替代传统的QXDM工具。通过JNI接口层、HAL服务层和Diag通信层的架构设计,开发者可以在熟悉的IDE环境中高效完成NV操作,包括环境配置、错误处理和性能优化等关键实践。

weixin_27013291的博客 261

5种超实用方法:快速获取Windows文件夹下所有文件名(含CMD/PowerShell脚本)

本文详细介绍了5种快速获取Windows文件夹下所有文件名的实用方法,包括图形界面操作、Excel数据导入、CMD命令和PowerShell脚本。特别提供了高效的CMD和PowerShell脚本示例,帮助用户轻松实现文件名的批量获取与管理,大幅提升工作效率。

opencv7vision的博客 449

gridview 输出报表:

 gridview 输出报表:    ///     /// 绘出Excel格式    ///     private void ExportStyle()    {        //序号        this.gvWorkList.Columns[0].HeaderStyle.Width = 40;        this.gvWorkList.HeaderStyle.BackColor

cqin的专栏 702

不使用工具箱,通过MATLAB纯编程实现lstm网络的训练过程

长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 1012

android 用GridVew实现表格功能Sample

前言 GridView是本身就是个表格,我们见的哇比较多的是用它来显示列表图片,本Demo告诉你如何用GridView制作一个显示文本的表格,相当于MFC的CLIstCtrl控件功能。但是GridbView制作的表格一般都是等宽列的,要实现非等宽列的表格就得用ListView实现。 注:demo源码下载地址: 一、效果图 Demo制作的表格如下图所示:

dxzysk的专栏 4343

Yield Management软件:Lam Research二次开发_(5).缺陷分析与分类方法

在半导体制造过程中,缺陷分析和分类是提高良率管理(Yield Management)的关键步骤。通过准确地识别和分类缺陷,可以更好地理解工艺过程中的问题,从而采取有效的措施来提高生产效率和产品质量。本节将详细介绍缺陷分析和分类的方法,包括缺陷检测、特征提取、分类算法及其在Lam Research软件中的应用。

2401_87715305的博客 687

[SV]SystemVerilog状态机实现案例

本文介绍了SystemVerilog中状态机的实现方法。首先使用枚举类型定义状态(TOP_HIB、TOP_BG、TOP_LDO、TOP_NOR),然后通过三个主要任务实现状态机:1)格式化现态寄存器处理状态转换;2)描述状态转移条件,包括计时器和稳定时间判断;3)基于当前状态和输入信号确定次态。状态机在时钟边沿或复位时更新状态,实现了从休眠到正常工作状态的转换逻辑,包含电源稳定时间检测等关键功能。

元直的博客 2019

pandas 表头_超简单:Python 5步去中国式报表表头

我们在处理一些报表时候经常会遇到有中国式报表表头的Excel表(如下图,图来源网络),这对于我们后续的数据处理会带来很大的麻烦,最常见的操作就是打开这个表,手动重新调整表头后再保存。(如果表格小还好,表格数据多的时候,极其不便)为了方便日后的工作(尤其是重复性的工作),我们可以使用Python来处理,详细解读如下:step 1 :先导入pandas,即:import pandas as pdste...

weixin_39942572的博客 529

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

GridView合并表头多重表头无错完美版(以合并3列3行举例)

 15.GridView合并表头多重表头无错完美版(以合并3列3行举例) 效果图: 后台代码: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.

gsky的专栏 2567

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

GridView多行表头合并

多行表头合并, 网上很多实例, 这里写的很详细, 力求让每个人都能看懂. 实现原理:GridView在ASP.NET中最终转为HMTL的表格显示表头。 在GridView创建行表头行时: e.Row.RowType == DatacontrolRowType.Header 清除掉旧的表头, 再重新拼接新的表头. TableHeaderCell thc = new TableHeaderC

乔峰的专栏 6123

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[翻译] Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表...

ASP.NET 2.0 中的数据操作:: 使用 GridView 和DetailView实现的主/从报表 英文原版 | 代码 | 英文PDF版 导言 在前面的教程我们看到了如何使用两个页面(一个主页,用于列出供应商; 一个明细页,用于显示选定供应商提供的产品)创建主/从报表 . 这种两个页面的报表格式也可以集中在一个页面上. 这篇教程将会使用一个GridView, 它的每一行都包含产...

weixin_30815427的博客 190
上一篇: C#中的delegate 与event(一)
下一篇: 获取采用模板列的GridView中的隐藏列中的值
auto_ptr
博客等级 码龄20年 18粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值