文档章节

DataTable纵向记录转换成横向列显示,动态新增列及填充数据

深圳大道
 深圳大道
发布于 2016/12/29 15:38
字数 273
阅读 79
收藏 0
DataTable dt = Maticsoft.DBUtility.DbHelperOra.Query(QuerySql).Tables[0];

#region 创建新的DataTable   
DataTable dtShow = new DataTable();  
dtShow.Columns.Add("序号", Type.GetType("System.String"));  
dtShow.Columns.Add("部门", Type.GetType("System.String"));  
dtShow.Columns.Add("编号", Type.GetType("System.String"));  
dtShow.Columns.Add("姓名", Type.GetType("System.String"));  
  
dtShow.Columns.Add("职务", Type.GetType("System.String"));  
dtShow.Columns.Add("期间", Type.GetType("System.String"));  
dtShow.Columns.Add("开始日期", Type.GetType("System.String"));  
dtShow.Columns.Add("结束日期", Type.GetType("System.String"));  
  
//加载帐套的薪资项 转换成列   
DataTable dtCover = GetCoverItemDT();  
if (dtCover.Rows.Count > 0)  
{  
    for (int i = 0; i < dtCover.Rows.Count; i++)  
    {  
        dtShow.Columns.Add(dtCover.Rows[i]["ITEMNAME"].ToString(), Type.GetType("System.String"));  
    }  
}  
#endregion  
 
#region 插入员工薪资项数据到dtShow   
int p = 1; //行号   
for (int n = 0; n < dt.Rows.Count; n++)  
{  
    string EMPLOYEEID = dt.Rows[n]["EMPLOYEEID"].ToString();  
    //判断是否最末一行     
    string CompareEMPLOYEEID = (n == dt.Rows.Count - 1) ? "000000" : dt.Rows[n + 1]["EMPLOYEEID"].ToString();  
    if (CompareEMPLOYEEID != EMPLOYEEID) //比较当前行与下行ID 不同ID 则添加本行数据     
    {  
        DataRow dr = dtShow.NewRow();  
        dr["序号"] = p;  
        dr["部门"] = dt.Rows[n]["EMPLOYDEP"];  
        dr["编号"] = dt.Rows[n]["EMPLOYEEID"];  
        dr["姓名"] = dt.Rows[n]["EMPLOYEENAME"];  
  
        dr["职务"] = dt.Rows[n]["POST"];  
        dr["期间"] = dt.Rows[n]["CYCLENAME"];  
        dr["开始日期"] = dt.Rows[n]["CYCLESTARTDATE"];  
        dr["结束日期"] = dt.Rows[n]["CYCLEENDDATE"];  
        for (int j = 0; j < dtShow.Columns.Count; j++)  
        {  
            DataRow[] dr1 = dt.Select("EMPLOYEEID='" + EMPLOYEEID + "' AND ITEMNAME='" + dtShow.Columns[j].ColumnName + "'");  
            if (dr1.Length > 0)  
            {  
                dr[dtShow.Columns[j].ColumnName] = dr1[0]["AMOUNT"].ToString();  
            }  
        }  
        dtShow.Rows.Add(dr);  
        p++;  
    }  
}  
#endregion


 

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/8229717

共有 人打赏支持
深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
jQuery Datatable 实用简单实例

目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求。同时,jQuery Datatable强大的功能支持:排序,分页,搜索等。 Query Datatable能良好支持数据完...

sgyyz
2014/05/08
0
0
hacken/EasyReport

EasyReport A simple and easy to use Web Report System for java EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨...

hacken
2017/08/14
0
0
[原创]web报表开发技术专题一:序号问题

近期因为专注于用 c# 实现 web 报表,积累了一些经验和心得,也写过一篇介绍文章 , 也有网友提出没有说清楚。现觉得想用单篇文章来说明 web 报表开发难免会大而空,落不到实处。因而便想到每...

长平狐
2012/10/11
76
0
jQuery Datatables常用配置

官网:Datatables官网中文网:Datatables中文网 我用过的一些配置:

Anymore
2016/12/07
300
0
深入详解DataTable

前言:ADO.NET概述 在学习DataTable知识之前,我们有必要了解下ADO.NET。以下摘自MSDN: ADO.NET 对 Microsoft SQL Server 和 XML 等数据源以及通过 OLE DB 和 XML 公开的数据源提供一致的访...

技术小胖子
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Go Timer实现原理剖析

简介 快速使用 操作介绍

恋恋美食
28分钟前
2
0
记录一个奇怪的问题

环境:jdk1.8虚拟机参数:-verbose:gc -XX:+PrintGCDetails -Xmx20m -Xms20m -Xmn10m -XX:SurvivorRatio=8  -XX:+HeapDumpOnOutOfMemoryError 可以看出,eden占8M却放不下6M数据,发生了......

暗中观察
57分钟前
2
0
【git搭建】创建多个git账号

实习开发中我们可能一个机子上配置多个git账号,如github.com,oschina.com 或者工作账号,私人账号,这时候就2个账号用一个key,肯定会冲突,有一个会提示没权限(账号和密码对应不上) ssh ...

echojson
59分钟前
3
0
rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
今天
8
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部