起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4567|回复: 11

[结贴] BeX5.3.1合并单元格怎么做呢?

[复制链接]

61

主题

250

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
发表于 2015-3-20 17:37:56 | 显示全部楼层 |阅读模式
版本: BeX5V3.1 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
1.png
想做这样一个效果,操作栏做单元格合并。
发表于 2015-3-20 17:54:17 | 显示全部楼层
这个帖子里面有单元格的合并:
http://bbs.wex5.com/forum.php?mo ... page=1#pid164948115
也可以把批处理放到列表上面,通过复选框选择,然后进行批处理。这样可以随意的选择需要批量处理的报表,而不是批量处理所有的数据。
回复 支持 反对

使用道具 举报

61

主题

250

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
 楼主| 发表于 2015-3-23 09:16:39 | 显示全部楼层
本帖最后由 haodoyoudo78950 于 2015-3-23 09:19 编辑

BeX5.3.1中 我用require引入了js,但是方法却用不了,报undefined is not a function at null
回复 支持 反对

使用道具 举报

发表于 2015-3-23 09:25:56 | 显示全部楼层
haodoyoudo78950 发表于 2015-3-23 09:16
BeX5.3.1中 我用require引入了js,但是方法却用不了,报undefined is not a function at null ...

不是一个问题啊,呵呵。把代码贴出来看看呢
回复 支持 反对

使用道具 举报

61

主题

250

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
 楼主| 发表于 2015-3-23 10:11:11 | 显示全部楼层
本帖最后由 haodoyoudo78950 于 2015-3-23 10:15 编辑
lanware_smf 发表于 2015-3-23 09:25
不是一个问题啊,呵呵。把代码贴出来看看呢

//v.2.1 build 90226

/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/
/**
*   @desc: set rowspan with specified length starting from specified cell
*   @param: rowID - row Id
*        @param: colInd - column index
*        @param: length - length of rowspan
*        @edition: professional
*   @type:  public
*/
dhtmlXGridObject.prototype.setRowspan=function(rowID,colInd,length){
        var c=this[this._bfs_cells?"_bfs_cells":"cells"](rowID,colInd).cell;   
   var r=this.rowsAr[rowID];

   if (c.rowSpan && c.rowSpan!=1){
                var ur=r.nextSibling;   
                for (var i=1; i<c.rowSpan; i++){
                        var tc=ur.childNodes[ur._childIndexes[c._cellIndex+1]];
                        var ti=document.createElement("TD");
                        ti.innerHTML=" ";
                        ti._cellIndex=c._cellIndex;
                        ti._clearCell=true;
                        if (tc)
                                tc.parentNode.insertBefore(ti,tc);
                        else
                                tc.parentNode.appendChild(ti);
                        this._shiftIndexes(ur,c._cellIndex,-1);
                    ur=ur.nextSibling;
            }
    }

    c.rowSpan=length;
    if (!this._h2)
                r=r.nextSibling||this.render_row(this.rowsBuffer._dhx_find(r)+1);
        else
                r=this.rowsAr[ this._h2.get[r.idd].parent.childs[this._h2.get[r.idd].index+1].id ];
               
        var kids=[];
        for (var i=1; i<length; i++){
            var ct=null;
                if (this._fake && !this._realfake)
                    ct=this._bfs_cells3(r,colInd).cell;
                else
                    ct=this.cells3(r,colInd).cell;
               
               

                this._shiftIndexes(r,c._cellIndex,1);
                if (ct)
            ct.parentNode.removeChild(ct);
            kids.push(r);
            
            if (!this._h2)
                        r=r.nextSibling||this.render_row(this.rowsBuffer._dhx_find(r)+1);
                else {
                        var r=this._h2.get[r.idd].parent.childs[this._h2.get[r.idd].index+1];
                        if (r) r=this.rowsAr[ r.id ];
                }
    }
   
    this.rowsAr[rowID]._rowSpan=this.rowsAr[rowID]._rowSpan||{};
    this.rowsAr[rowID]._rowSpan[colInd]=kids;
    if (this._fake && !this._realfake && colInd<this._fake._cCount)
        this._fake.setRowspan(rowID,colInd,length);
};


dhtmlXGridObject.prototype._shiftIndexes=function(r,pos,ind){
                if (!r._childIndexes){
            r._childIndexes=new Array();
        for (var z=0; z<r.childNodes.length; z++)
            r._childIndexes[z]=z;
                }
               
                for (var z=0; z<r._childIndexes.length; z++)
                        if (z>pos)
                    r._childIndexes[z]=r._childIndexes[z]-ind;
                                
};

/**
*   @desc: enable rowspan in grid
*   @type:  public
*        @edition: professional
*/
dhtmlXGridObject.prototype.enableRowspan=function(){
    this._erspan=true;
        this.enableRowspan=function(){};
        this.attachEvent("onAfterSorting",function(){
                if (this._dload) return; //can't be helped
                for (var i=1; i<this.obj.rows.length; i++)        
                  if (this.obj.rows._rowSpan){
                          var master=this.obj.rows;
                          for (var kname in master._rowSpan){
                                  var row=master;
                                var kids=row._rowSpan[kname];
                                  for (var j=0; j < kids.length; j++) {
                                          if(row.nextSibling)
                                                  row.parentNode.insertBefore(kids[j],row.nextSibling);
                                          else
                                                  row.parentNode.appendChild(kids[j]);
                                          if (this._fake){ // split mode
                                              var frow=this._fake.rowsAr[row.idd];
                                              var fkid=this._fake.rowsAr[kids[j].idd];
                                              if(frow.nextSibling)
                                                        frow.parentNode.insertBefore(fkid,frow.nextSibling);
                                              else
                                                    frow.parentNode.appendChild(fkid);
                                                   this._correctRowHeight(row.idd);
                                          }
                                         row=row.nextSibling;
                                  }
                    }
          }
          this.rowsCol=new dhtmlxArray();
          for (var i=1; i<this.obj.rows.length; i++)        
                  this.rowsCol.push(this.obj.rows);
         
        });
        
        this.attachEvent("onXLE",function(a,b,c,xml){
                var spans=this.xmlLoader.doXPath("//cell[@rowspan]",xml);
                for (var i=0; i<spans.length; i++){
                        var p=spans.parentNode;
                        var rid=p.getAttribute("id");
                        var len=spans.getAttribute("rowspan");
                        var ind=0;
                        for (var j=0; j < p.childNodes.length; j++) {
                                if (p.childNodes[j].tagName=="cell"){
                                        if (p.childNodes[j] == spans)
                                                break;
                                        else
                                                 ind++;
                                }
                        }
                        
                this.setRowspan(rid,ind,len);
                }
        });
};
回复 支持 反对

使用道具 举报

发表于 2015-3-23 10:15:25 | 显示全部楼层

这是被引用的js啊,这个给我看做什么呢。看看目前在做页面怎么引用的,以及使用的代码。把代码也编译一下看看有没有问题。
回复 支持 反对

使用道具 举报

61

主题

250

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
 楼主| 发表于 2015-3-23 10:20:33 | 显示全部楼层
本帖最后由 haodoyoudo78950 于 2015-3-23 10:23 编辑
lanware_smf 发表于 2015-3-23 10:15
这是被引用的js啊,这个给我看做什么呢。看看目前在做页面怎么引用的,以及使用的代码。把代码也编译一下 ...

不知道为什么老报内部错误。。。发布上来、
就发个片段了

var Grid = require("$UI/xyww/TreeManager/process/treeManager/dhtmlxgrid_rowspan");


Model.prototype.modelLoad = function(event){
                var dealData = this.comp("dealData");
                dealData.setFilter("fDataTableState", "DataTableState = 0");
                dealData.setFilter("fDealWithTime", "DealWithTime is null");
                dealData.setFilter("fType", "Type = 1");
                dealData.setOrderBy("Tab_Type_ID", 1);
                dealData.refreshData();
               
                //测试打开连接格式
                dealData.each(function(param){
                        var rowID = param.row.val('Deal_with_state');
                        var row = param.row;
//                        alert(row + " " + rowID);
                        dealData.setValue("relation0", "<input type='button' onclick='openA("+rowID+")' value='测试链接'>", row);
                        
                        //测试合并单元格
                        var dealGrid = this.comp("dealGrid");
                        dealGrid.setRowspan(rowIDx, 2, 2);
                });
               
               
               
        };



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-3-23 13:35:29 | 显示全部楼层
haodoyoudo78950 发表于 2015-3-23 10:20
不知道为什么老报内部错误。。。发布上来、
就发个片段了

这个是5.2系列版本的做法,B3X5V3.1中参考
$("td:eq(colIndex)",grid.getRowByID(rowid)).attr('rowspan',3);
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

61

主题

250

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
 楼主| 发表于 2015-3-24 13:48:52 | 显示全部楼层
jishuang 发表于 2015-3-23 13:35
这个是5.2系列版本的做法,B3X5V3.1中参考
$("td:eq(colIndex)",grid.getRowByID(rowid)).attr('rowspan' ...

这个colIndex是什么?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-3-24 15:38:07 | 显示全部楼层

列索引,就是要合并的是第几列
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-6 14:42 , Processed in 0.103232 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表