merge cell,报表开发解决合并列单元格问题

  • 需求

报表开发解决合并列单元格问题

  • 核心代码

<script>

debugger;
mc("dnd-example", 0, 0, 0);


function mc(tableId, startRow, endRow, col) {
var tb = document.getElementById(tableId);
if (col >= tb.rows[0].cells.length) {

return;
}
//获取表行数
if (col == 0) { endRow = tb.rows.length - 1; }

for (var i = startRow; i < endRow; i++) {

if (tb.rows[startRow].cells[col].innerText == tb.rows[i + 1].cells[0].innerText || tb.rows[startRow].cells[0].innerText == tb.rows[i + 1].cells[0].innerText) {

if (tb.rows[startRow].cells[col].innerText == tb.rows[i + 1].cells[0].innerText) {
tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[0]);
tb.rows[startRow].cells[col].rowSpan = (tb.rows[startRow].cells[col].rowSpan | 0) + 1;
}
else {
tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[0]);
tb.rows[startRow].cells[0].rowSpan = (tb.rows[startRow].cells[0].rowSpan | 0) + 1;
}
//
if (i == endRow - 1 && startRow != endRow) {
mc(tableId, startRow, endRow, col + 1);
}

}
//当前列不合并,执行下一列
else {
if (col < 2) {
mc(tableId, startRow, i + 0, col + 1);
}
startRow = i + 1;

}
}
}
</script>

  • 效果

 

转载于:https://www.cnblogs.com/MatureMan/p/8623222.html

此源码包括C#、VB.net报表源代码。 Gscr.Report控件(广源报表控件)实现报表自由定义,报表显示、打印预览、打印、公式、排序、导出等报表常见功能。 ---以下是引用官方部分简介--- Gscr.Report控件(广源报表控件)是专为.NET For Windows Forms编程者开发报表平台,具有功能实用、操作简捷的特点。 1.采用行式二维表格,能够灵活设定单元格属性,操作方式和Excel很相似;     a.单元格宽度和高度、背景色、前景色、显示格式、格线设置等;     b.字体类型、字体大小、字体粗细、斜体及下划线设置等;     c.数据水平对齐、垂直对齐设置等;     d.合并单元格功能; 2.友好的表格设计器界面,可以让报表设计工作变得轻松。您可以使用它来制作表格模板,然后将表格保存为.gsc文件。 3.支持数据绑定。用户只需提供一个DataTable对象,因此报表支持目前流行的各种数据库格式,比如SQL Server、Oracle、Access等常用数据库格式。   另外,用户也通过赋值报表的SelectSQL属性(设置针对SQL作为 Gscr.Report 数据源运行的SQL文本命令)来实现数据绑定。 4.可以按照打印效果的需要进行灵活的设置,包括页边距、纸张大小,页眉页脚、打印方向、表格线是否打印、背景是否打印等。   同时,支持表格套打,用户可以对每个单元格的背景颜色、内容、边线等是否打印进行灵活控制。 5.提供丰富的单元格数据类型(或编辑方式):编辑框、下拉表框、下拉表格、复选框、日期选择框、货币输入框、按钮、进度条、密码等。 6.行的添加/删除,显示/隐藏、拖动、排序、锁定行等功能 7.对创建的报表支持包括xls、txt、csv、xml等多种导出文件格式, 同时支持资源本地化。 8 支持单元格公式运算。公式表达式中可以进行算术、关系、逻辑等各种运算,支持对参数、变量、字段及单元格的引用。   同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值