extjs 同值合并

Extjs 报表同值合并方法

做出如下图效果的报表:

核心函数:用的时候添加进去就行

//地市名称相同的列合并 function gridSpan(grid, rowOrCol,colName, borderStyle) { var array1 = new Array(); var count1 = 0; var count2 = 0; var index1 = 0; var index2 = 0; var aRow = undefined; var preValue = undefined; var firstSameCell = 0; var allRecs = grid.getStore().getRange(); if (rowOrCol == "row") {
        count1 = grid.getColumnModel().getColumnCount();
        count2 = grid.getStore().getCount();
    } else {
        count1 = grid.getStore().getCount();
        count2 = grid.getColumnModel().getColumnCount();
    }
    count1 = 2; // 对第二列合并 for (i = 1; i < count1; i++) {
        preValue = undefined;
        firstSameCell = 0;
        array1[i] = new Array(); for (j = 0; j < count2; j++) { if (rowOrCol == "row") {
                index1 = j;
                index2 = i;
            } else {
                index1 = i;
                index2 = j;
            } if (allRecs[index1].get(colName) == preValue) {
                allRecs[index1].set(colName, "&nbsp;");
                array1[i].push(j); //alert(i + "\r\n"+j); if (j == count2 - 1) { var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1); if (rowOrCol == "row") {
                        allRecs[index].set(colName, preValue);
                    } else {
                        allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
                    }
                }
            } else { if (j != 0) { var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1); if (rowOrCol == "row") {
                        allRecs[index].set(colName, preValue);
                    } else {
                        allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
                    }
                }
                firstSameCell = j;
                preValue = allRecs[index1].get(colName);
                allRecs[index1].set(colName, "&nbsp;"); if (j == count2 - 1) {
                    allRecs[index1].set(colName, preValue);
                }
            }
        }
    }
    grid.getStore().commitChanges();//添加所有分隔线 for (i = 0; i < grid.getStore().getCount(); i++) { for (j = 0; j < grid.getColumnModel().getColumnCount(); j++) {
            aRow = grid.getView().getCell(i, j);
            aRow.style.borderTop = borderStyle;
            aRow.style.borderLeft = borderStyle;
        }
    }//去除合并的单元格的分隔线 for (i = 1; i < array1.length; i++) { for (j = 0; j < array1[i].length; j++) { if (rowOrCol == "row") {
                aRow = grid.getView().getCell(array1[i][j], i);
                aRow.style.borderTop = ‘none‘;
            } else {
                aRow = grid.getView().getCell(i, array1[i][j]);
                aRow.style.borderLeft = "none";
            }
        }
    }
}

store在load的时候:

errorInfoStore.on(‘load‘, function() { var mygrid = Ext.getCmp(‘mygrid‘); gridSpan(mygrid, ‘row‘,"areaCode", ‘1px solid #9BCEDB‘);
            }); 

gridSpan方法的第三个参数 areaCode表示的是列标题。

在jsp页面加入如下css:

/*与表头对齐*/ .x-grid3-row td,.x-grid3-summary-row td {
    padding-right: 0px;
    padding-left: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
} /*去掉行间空白*/ .x-grid3-row {
    border-right-width: 0px;
    border-left-width: 0px;
    border-top-width: 0px;
    border-bottom-width: 0px;
}

时间: 2024-10-16 11:12:42

extjs 同值合并的相关文章

php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组

版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二维数组的第一维的键是特定字段的值,二维的键可以是随机索引,也可以是其中的另一个字段的值.其实这个需求经常会在工作中碰到,只是碰到的时候一个有重复的就直接用之前的覆盖后面的或者用之后的覆盖之前的,这样很容易就可以处理了.很少碰到这种有一维数组又有二维数组的情况,先上代码: $a = array( 0

php 按列值合并数据

/* * PHP按值合并数组 * */ function my_array_merge(&$array1, &$array2) { $result = Array(); foreach($array1 as $key => &$value) { $result[$key] = array_merge($value, $array2[$key]); } return $result; }

python 多级字典值合并

python 多级字典值合并: #!/bin/env python import os,sys,re import cStringIO f=open('/tmp/3.txt') ''' /tmp/3.txt content: 148616  '192.168.0.127:8080'    0.157   {'200': 130000, '206': 250, '301': 90, '302': 6698, '304': 6018, '406': 5} 148616  '192.168.0.127

PHP按值合并数组

1 /** 2 * PHP按值合并数组 3 * 4 */ 5 function my_array_merge(&$array1, &$array2) { 6 $result = Array(); 7 foreach($array1 as $key => &$value) { 8 $result[$key] = array_merge($value, $array2[$key]); 9 } 10 return $result; 11 }

Extjs 3.4 同值合并

摘自:http://www.cnblogs.com/kunpengit/archive/2012/11/13/2768239.html/** * grid gridPanel 需要合并的表格 * rowOrCol 合并行还是列 需要合并的列(dateIndex) *borderStyle 样式 **/ function gridSpan(grid, rowOrCol,colName, borderStyle) { var array1 = new Array(); var count1 = 0;

JavaScript中Object值合并方法

前言:在日常开发工作中我们可能会遇到js中对象中所有值的复制工作,也有可能是通过electron开发客户端,改版时候面临到的设置合并问题.那么本文将对此做一个简要解决方案的叙述. 介绍:比如有obj1, obj2,我们需要将obj1中的所有与obj2中相同字段相同深度的值copy给obj2,并且需要保持obj2字段结构不变,调用一下方法即可(采用ES6写法). 1 /** 2 * 将src中的数据copy到dist中,并保留dist的结构 3 * @param src 4 * @param di

mysql分组查询时,讲多个值合并在一行显示

mysql根据字段进行分组查询时,相同字段的数据,只会显示一个,如果要想让这个字段的所有数据,显示在一行里,可以在查询时用GROUP_CONTAT函数,默认数据合并以逗号,分开

jinja 多值合并

示例 {% for node in groups["db"] %} {{ node | join("") }}:5672 {% if not loop.last %} {% endif %} {% endfor %} 解释: 第一行代码中groups为ansible的内置变量.同类型内置变量有: parameter description hostvars 主机变量名 inventory_hostname 当前ansbile可识别的hosts group_names

java.util.Map按照key值合并的value的Collection 集合中。

用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMap数据合并放到resultMap中. * @param resultMap * @param partMap */ public static <T, F, K extends Collection<F>> void merge2ResultMap(Map<T, K> resu