DataTable两列转换四列
有时候为了节省打印纸张,通常要吧结果分栏显示,这就需要把DataTable两列转换为四列
报表分页时 添加组并添加表达式:
=Int((RowNumber(Nothing)-1)/15)//每页显示15条记录
(两外一个表达式意义不是很清楚=Ceiling(RowNumber(Nothing)/20) )
/// <summary>
/// 两列转换为四列
/// </summary>
/// <param name="pagesize">每页大小</param>
/// <param name="table"></param>
/// <returns></returns>
private DataTable GetStudentRegesterBook(int pagesize,DataTable table)
{
DataTable dt = new DataTable();
int rows = table.Rows.Count;
if (rows > 0)
{
dt.Columns.Add("xh1", typeof(string));
dt.Columns.Add("xm1", typeof(string));
dt.Columns.Add("xh2", typeof(string));
dt.Columns.Add("xm2", typeof(string));
int pagecount = 0;
pagecount = rows / pagesize;
if (pagecount * pagesize < rows)
pagecount = pagecount + 1;
int i, j, k;
//考虑前pagecount-1页
if (rows > 0)
{
for (i = 0; i < pagecount - 1; i++)
{
if (i % 2 == 0)
{
for (j = 0; j < pagesize; j++)
{
DataRow dr = dt.NewRow();
dr["xh1"] = table.Rows[j + i * pagesize]["xh"].ToString();
dr["xm1"] = table.Rows[j + i * pagesize]["xm"].ToString();
dt.Rows.Add(dr);
}
}
else
{
for (k = 0; k < pagesize; k++)
{
dt.Rows[k + (i / 2) * pagesize]["xh2"] = table.Rows[k + i * pagesize]["xh"].ToString();
dt.Rows[k + (i / 2) * pagesize]["xm2"] = table.Rows[k + i * pagesize]["xm"].ToString();
}
}
}
//考虑最后一页
//奇数页
if (pagecount % 2 == 1)
{
for (k = 0; k < rows - (pagecount - 1) * pagesize; k++)
{
DataRow dr = dt.NewRow();
dr["xh1"] = table.Rows[k + i * pagesize]["xh"].ToString();
dr["xm1"] = table.Rows[k + i * pagesize]["xm"].ToString();
dt.Rows.Add(dr);
}
}
else
{
//偶数页
for (k = 0; k < rows - (pagecount - 1) * pagesize; k++)
{
dt.Rows[k + (i / 2) * pagesize]["xh2"] = table.Rows[k + i * pagesize]["xh"].ToString();
dt.Rows[k + (i / 2) * pagesize]["xm2"] = table.Rows[k + i * pagesize]["xm"].ToString();
}
}
}
}
return dt;
}
转载于:https://www.cnblogs.com/hubcarl/archive/2009/05/10/1453475.html
DataTable两列转换四列相关推荐
- SQL 两行两列显示一行四列或一行两列
前言 两行两列显示一行四列 id A B 1 aaa bbb 1 ccc ddd ==>转化为 id A B A B 1 aaa bbb ccc ddd SQL 一对多转为一对一 解决 方法一 ...
- dataframe的两列转换成字典的key和value
dataframe的两列转换成字典的key和value 1.存为按插入顺序的字典OrderedDict csv文件内容: import pandas as pd import collections ...
- oracle 动态sql列转行_Oracle 行转列 动态出转换的列
10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...
- ssis 列转换_SSIS中的术语提取转换
ssis 列转换 This article explores the Term extraction transformation in SSIS and its usage scenario. 本文 ...
- ssis 列转换_将SSIS包转换为Biml脚本
ssis 列转换 In our previous article, Getting started with Biml, we have explained what Biml is, what ar ...
- Oracle 行转列 动态出转换的列
10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...
- oracle 动态行转成列,Oracle 行转列 动态出转换的列
一.运行环境 Win10,Oracle Database 11g r2,plsql 12. 二.效果预览 1.固定转换列的方法 2.存储过程处理 1)调用存储过程 2)查指定的视图即可 3.两种方法的 ...
- 《BI那点儿事》数据流转换——派生列
原文:<BI那点儿事>数据流转换--派生列 派生列转换通过对转换输入列应用表达式来创建新列值. 表达式可以包含来自转换输入的变量.函数.运算符和列的任意组合. 结果可作为新列添加,也可作为 ...
- ssis 列转换_SSIS包中的行采样转换和百分比采样转换
ssis 列转换 This article explores Row Sampling Transformations in SSIS and Percentage Sampling Transfor ...
最新文章
- python随机补边缘border
- c++/c SM4加密解密算法代码实现
- hdu 3706 Second My Problem First 单调队列
- 施密特触发器(Schmitt Trigger)?
- 让Kubernetes成为数据中心操作系统的一等公民
- 喜欢赌球的你,可能被AI盯上了
- Python自然语言处理学习笔记(64): 7.5 命名实体识别
- Java中的内存模型JMM与线程
- js爬取网页文字图片 html爬取网页信息
- 如何提高射频信号发生器的性能
- 寻找心灵深处的菩提树
- 发票校验属于物料管理(MM)模块,发票为财务和成本控制提供付款信息和发票评估。
- 设计递归函数模拟汉诺塔游戏
- [翻译]Billy Belceb 病毒编写教程for Win32
- 外存及虚拟存储器管理
- ORA-00257: archiver error. Connect internal only, until freed 的解决方法
- 前端 html button标签
- 支持将树莓派转换成NAS存储系统
- 西门子plm_一个月内接连收购两家企业,西门子不断加码工业软件,巨头的数字化决心...
- 计算机二级excel降水量分值,计算机二级Excel条件格式的8大用法,太全了!
热门文章
- mysql explain key为空_MySQL中explain的使用以及性能分析
- java 文件追加文本_Java追加文件内容的三种方法
- jenkins修改pom文件_DevOps实践:Jenkins与Nexus制品库集成
- gawk如何在win7安装_电脑怎样安装win7系统
- php远程simplexml_load_string()出错,PHP simplexml_load_string无法正常工作
- 统计字符串中每个字符的个数_C++程序设计——统计数字字符个数
- java class object_[java]Class类和Object类的关系
- C语言丨线性表(三):双链表
- mysql三高讲解(二)2.9: mysql示例数据库sakia database的使用
- vs2015项目导出为Qt项目