zoukankan      html  css  js  c++  java
  • 用友华表Cell表批量删除操作及bug解决

    上个月做的,昨天发现还是忘记了,那就记一下吧
    使用的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);
                              }
                        }
                    }
                }
                
            }
  • 相关阅读:
    JSTL学习总结
    Spring 3 MVC: Create Hello World Application In Spring 3.0 MVC(reprint)
    如何查询端口号被哪个程序占用?
    php 共享内存
    php 消息队列
    php 快速fork出指定个子进程
    批量 kill mysql 中运行时间长的sql
    socket发送http请求
    TCP/IP、Http、Socket的区别
    文本协议和二进制协议
  • 原文地址:https://www.cnblogs.com/calmzeal/p/859157.html
Copyright © 2011-2022 走看看