Fantacy
人工智能,智能运营,智能客服,企业知识管理系统(Kmaster,SuperKM)

上个月做的,昨天发现还是忘记了,那就记一下吧
使用的cell版本为cell52 2004-7-21版

提供接口函数为:
IsCellSelected 检测单元格是否选中
DeleteRow 删除行(存在bug,导致不能直接删除指定一行)

删除办法为 逆向遍历所有数据行,判断是否选中并执行删除操作
逆向遍历的的好处是删除行后所有未删除行的下标不会变化

deleteRow删除存在bug导致遍历时指定删除一行时会将之前所有行删除
解决办法为在删除行命令后加入一句移动指令MoveToCell


js代码如下:

function DelRow()
        {          
            
var iCount = 0;  
            iEndRow
=form1.DCellWeb1.GetRows(0)-1;
            
for (iCurrentRow = iEndRow; iCurrentRow>=iBeginRow; iCurrentRow--)
            {
               
if(form1.DCellWeb1.IsCellSelected(2,iCurrentRow)>0 ||  form1.DCellWeb1.IsCellSelected(3,iCurrentRow)>0  || form1.DCellWeb1.IsCellSelected(4,iCurrentRow)>0  || form1.DCellWeb1.IsCellSelected(5,iCurrentRow)>0 )
                    iCount 
++;
            }
            
if (iCount ==0)
            {
                alert(
"请先框选需要删除的行。");
                
return;
            }
            
else
            {
                
if (window.confirm("当前选中"+iCount+"行,执行删除?"))
                {
                    
for (iCurrentRow = iEndRow; iCurrentRow>=iBeginRow; iCurrentRow--)
                    {
                       
if(form1.DCellWeb1.IsCellSelected(2,iCurrentRow)>0 ||  form1.DCellWeb1.IsCellSelected(3,iCurrentRow)>0  || form1.DCellWeb1.IsCellSelected(4,iCurrentRow)>0  || form1.DCellWeb1.IsCellSelected(5,iCurrentRow)>0 )
                          {
                            form1.DCellWeb1.DeleteRow(iCurrentRow,
1,0);    
                            form1.DCellWeb1.MoveToCell(iStatusCol,iCurrentRow);
                          }
                    }
                }
            }
            
        }
posted on 2007-08-17 09:01  calmzeal  阅读(567)  评论(0编辑  收藏  举报