⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extenddbgrid.htc

📁 HTC,demo WEB用于。 超大型
💻 HTC
📖 第 1 页 / 共 5 页
字号:

        if(vTemp < 0){ //说明该行被藏于body div的上部
          oTBody.scrollTop += vTemp;
        }else{
          vTemp = objRow.offsetTop + objRow.offsetHeight - (oTBody.scrollTop + oTBody.offsetHeight); //行底部与body div底部之间的距离
          if(vTemp > 0){ //说明该行藏于body div的下部
            oTBody.scrollTop += vTemp + 16;//16为div滚动条的高度
          }
        }

        if(typeof(argCol) == "undefined") return; //两参数都指定才能给cell定位
        objCell = oTBodyTable.rows(argRow).cells(argCol); //要移动的cell
        if(objCell==null) return;
        vTemp = objCell.offsetLeft - oTBody.scrollLeft; //cell左侧与body div的顶部之间的距离
        if(vTemp < 0){ //说明该行被藏于panel div的左侧
            if(argCol == 0) oTBody.scrollLeft = 0;
            else oTBody.scrollLeft += vTemp;
        }else{
            vTemp = objCell.offsetLeft + objCell.offsetWidth - (oTBody.scrollLeft + oTBody.offsetWidth); //cell右侧与Panel div右部之间的距离
            if(vTemp > 0){ //说明该行藏于panel div的右侧
              oTBody.scrollLeft += vTemp + 16;//16为div滚动条的宽度
            }
        }
      }   


        function initialize(){ //DBGrid组件初始化操作
          initGlobalCommon();
          vTableCol = -1;
          vTableRow = -1;
          
          if(!oTitleXML) return(-1);
  
          getCopyDataXML();//获得增加了clientAct="k"属性的oCopyDataXML拷贝oCopyDataXML对象

          createTitle(); //创建oTitleTable  
          
          oDataTable = element.document.createElement("<div/>");//建立数据表格的容器
          oDataTable = element.appendChild(oDataTable); 
          
          fillInTable(); //用XML数据填充表并显示        			
          if(hasController=="true" && oControl==null){
			viewController();  					
          }
          
          refresh();//DBGrid组件位置样式初始化  
          
          if(oTitle && oTBody){
            oSortBtn = element.document.createElement("<span class='phms_sortBtnSpan'></span>");
            oSortBtn.innerHTML = "<v:polyline points='0,6 4,0 8,6 0,6' class='phms_sortBtn' fillcolor='black' strokcolor='red'/><?xml:namespace prefix='v' urn='schemas-microsoft-com:vml'/>";
          }
          element.runtimeStyle.visibility = "visible";
          createEditor(); //创建编辑组件对象
          if(oDataXML!=null) objDeletedXMLFragement = inputXML();
        }     

        
        function initGlobalCommon(){//初始化__objGlobalCommonInst
          if(!element.document.parentWindow.__objGlobalCommonInst){//如果还没有初始化
            var oWindow;
            oWindow = element.document.parentWindow;
            oWindow.__objGlobalCommonInst = oWindow.parent.__objGlobalCommonInst;
            __objGlobalCommonInst = oWindow.__objGlobalCommonInst;                  
          }                
        }

        function getCellText(argRow,argCol){ //根据指定的表格行列值得到指定单元格的内容
          var vRow = parseInt(argRow);
          var vCol = parseInt(argCol); //传递的应该是相对地址而不是table的绝对地址
          if(vRow > oTBodyTable.rows.length - 1 || vRow < 0) return null;
          if(vCol > oTBodyTable.rows(0).cells.length - 1 || vCol < 0) return null;
          
          return oTBodyTable.rows(vRow).cells(vCol).innerText;
        }
        
        
        function strSplit(aimStr){//返回装配好的calculateCol为XSLT统计转换串
          var s;
          var tmpStr = "sum(//r/";
          
          s = aimStr.split("+");
          for(var i=0; i<s.length; i++){
            if(i!= s.length -1){
              tmpStr += s[i] + ") + sum(//r/";
            }else{
              tmpStr += s[i] + ")";
            }              
          }          
          return tmpStr;
          
        }

        function viewPageFooter(){//页脚控制器
          var objDivFPC;
          var objCellFPC;
          var intResult;
          
          if(!oTBodyTable.rows(0)) return(-1);

          oDivPageFooter = element.document.createElement("<div/>");
          if(!oTBody) return(-1);
          oDivPageFooter = oTBody.insertAdjacentElement("beforeEnd", oDivPageFooter);
          
          oTabPageFooter = element.document.createElement("<table cellspacing='1' cellpadding='0' border='0' class='phms_grid_oTBodyTable'></table>");
          oTabPageFooter.insertRow();     
               
          for(var i = 0; i < oTBodyTable.rows(0).cells.length; i++){
            objDivFPC = element.document.createElement("<div class='phms_grid_oFirstLineDiv'></div>");              
            
            objCellFPC = oTabPageFooter.rows(0).insertCell();            
            objCellFPC.align = "center";            
            objDivFPC = objCellFPC.insertAdjacentElement("beforeEnd", objDivFPC);            
            objDivFPC.style.background = "#dddddd";
            objDivFPC.style.pixelWidth = oTabPageFooter.rows(0).cells(i).childNodes(0).offsetWidth;
            objDivFPC.style.pixelHeight = oTabPageFooter.rows(0).cells(i).childNodes(0).offsetHeight;
            
            if(oTitleTable.rows(0).cells(i).childNodes(0).calculateCol){                
                intResult = __objGlobalCommonInst.transformXML(oCopyDataXML, '<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:fo=\"http://www.w3.org/1999/XSL/Format\"><xsl:variable name=\"vSum\" select=\"' + strSplit(oTitleTable.rows(0).cells(i).childNodes(0).calculateCol) + '\"/><xsl:template match=\"/\"><xsl:value-of select=\"$vSum\"/></xsl:template></xsl:stylesheet>').replace('<?xml version=\"1.0\" encoding=\"UTF-16\"?>', "");
            }else{                
                intResult = __objGlobalCommonInst.transformXML(oCopyDataXML, '<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:fo=\"http://www.w3.org/1999/XSL/Format\"><xsl:variable name=\"vSum\" select=\"sum(//r/@' + oTitleTable.rows(0).cells(i).childNodes(0).rpropname + ')\"/><xsl:template match=\"/\"><xsl:value-of select=\"$vSum\"/></xsl:template></xsl:stylesheet>').replace('<?xml version=\"1.0\" encoding=\"UTF-16\"?>', "");
            }
            
            if(intResult == "NaN"){//无法进行统计的列
              objDivFPC.innerText = "";
            }else{
              objDivFPC.innerText = intResult;
            }
            
            with(objDivFPC){
              if(i==0 && hasFixedCol=="1"){//显示索引列并且是第一行
                style.width = oTBodyTable.rows(0).cells(i).offsetWidth;                 
                innerText = "合计";
              }else{
                style.width = oTBodyTable.rows(0).cells(i).offsetWidth;                 
              }                     
            }
          }          
          oTabPageFooter = oDivPageFooter.insertAdjacentElement("beforeEnd", oTabPageFooter);         
        
        }
        
        
        ///////////////////////////////////////////////////////////////////////////////////////////        
        //////////////////以下是分页控制器代码///////////////
        /////////////////////////////////////////////////////////////////
        
        function viewController(){//分页控制器 -> Last edit 2004-12-15 AM 10:10  
        
          var conTrolStr = "";
          
          oControl = element.document.createElement("<div></div>");
          oControl.runtimeStyle.width = vWidth;
          oControl = element.appendChild(oControl);
          
          conTrolStr += "<div class='phms_dbgrid_controller' align='right'>";//div容器

          conTrolStr += "<input style='position:absolute;background:#ffffff;top:4;right:40px;height:14;width:30;border:1px solid #A6C4E1;color:#4F789D;text-align:center;font-family:arial;font-size:7pt'/>";//当前页->[0]
          conTrolStr += "<input style='position:absolute;background:#B3E0FF;top:3;right:142;height:14;width:20;border:0px solid red;color:#4F789D;text-align:center;font-family:arial;font-size:7pt;'readonly/>";//每页显示记录数->[1]
          /////////////////////////////
          conTrolStr += "<span style='position:absolute;color:#4F789D;top:5;right:520;'>行:</span>";//标签:行:->[2]
          conTrolStr += "<span style='position:absolute;color:#4F789D;top:5;right:470;'>列:</span>";//标签:列:->[3]
          conTrolStr += "<span style='position:absolute;color:#4F789D;top:5;right:165;'>本页</span>";//标签:(每页->[4]
          conTrolStr += "<span style='position:absolute;color:#4F789D;top:5;right:290;'>共</span>";//标签:条&nbsp;&nbsp;共->[5]
          conTrolStr += "<span style='position:absolute;color:#4F789D;top:5;right:120;'>条)</span>";//标签:条)->[6]
          ////////////////////////////////
          conTrolStr += "<input style='position:absolute;background:white;top:3;right:260;width:32;height:16;border:0px solid red;text-align:center;font-size:10;font-family:arial;color:#4F789D;' readonly/>";//记录总数->[7]
          conTrolStr += "<input style='position:absolute;right:490;top:4;height:16;width:30;border:0px solid #A6C4E1;color:#4F789D;font-size:10;font-family:arial;' readonly/>";//当前行坐标->[8]
          conTrolStr += "<input style='position:absolute;right:440;top:4;height:16;width:30;border:0px solid #A6C4E1;color:#4F789D;font-size:10;font-family:arial;' readonly/>";//当前列坐标->[9]
          
          //导航按钮
          conTrolStr += "<v:polyline points='0,14 0,0 0,7 8,0 8,14,0,7 0,14' style='position:absolute;top:3;right:95;' strokecolor='#7B9EBD' fillcolor='#7B9EBD' title='第一页'/>";//首页->[10]
          conTrolStr += "<v:polyline points='0,7 7,0 7,14 0,7' style='position:absolute;top:3;right:80px;' strokecolor='#7B9EBD' title='上一页'/>";//上一页->[11]
          conTrolStr += "<v:polyline points='7,7 0,0 0,14 7,7' style='position:absolute;top:3;right:25px;' strokecolor='#7B9EBD' title='下一页'/>";//下一页->[12]
          conTrolStr += "<v:polyline points='7,14 7,0 7,7 0,0 0,14 7,7 7,14' style='position:absolute;top:3;right:10px' strokecolor='#7B9EBD' fillcolor='#7B9EBD' title='最后一页'/>";//尾页->[13]
          
          //操作按钮
          /////////删除///////////////////->[14]
          conTrolStr += "<v:group style='position:absolute;right:580;top:0px;height:16px;width:13;' coordsize='14,16'>";
          conTrolStr += "<v:roundrect arcsize='6554f' strokeweight='.75pt' style='position:absolute;top:3;right:400;width:20;height:16;cursor:hand' strokecolor='#4F789D' coordsize='21600,21600' title='删除当前选中记录'></v:roundrect>";
          conTrolStr += "<v:line style='position:absolute;width:20;cursor:hand' from='7,11' to='14,11' strokecolor='red' strokeweight='2pt'/>";
          conTrolStr += "</v:group>";
          /////////增加//////////->[15]
          //conTrolStr += "<v:group style='right:460;position:absolute;top:0px;height:16px;width:13;' coordsize='14,16'><v:roundrect arcsize='6554f' strokeweight='.75pt' style='position:absolute;top:3;right:400;width:20;height:14' strokecolor='#4F789D' coordsize='21600,21600' title='添加新记录'></v:roundrect><v:line style='position:absolute;width:20;' from='5,10' to='15,10' strokecolor='green' strokeweight='2pt'/><v:line style='position:absolute;width:20;' from='10,5' to='10,14' strokecolor='green' strokeweight='2.5pt'/></v:group>";
          conTrolStr += "<v:group style='position:absolute;right:610;top:0px;height:16px;width:13;' coordsize='14,16'>";
          conTrolStr += "<v:roundrect arcsize='6554f' strokeweight='.75pt' style='position:absolute;top:3;right:400;width:20;height:16;cursor:hand' strokecolor='#4F789D' coordsize='21600,21600' title='添加新记录'></v:roundrect>";
          conTrolStr += "<v:textbox style='position:absolute;top:0;right:5;color:green;font-family:arial black;cursor:hand'>+</v:textbox>";
          conTrolStr += "</v:group>";
          /////////打印//////////->[16]
          conTrolStr += "<v:group style='position:absolute;right:680;top:0px;height:16px;width:13;' coordsize='14,16'>";
          conTrolStr += "<v:roundrect arcsize='6554f' strokeweight='.75pt' style='position:absolute;top:3;right:550;width:70;height:16;cursor:hand' strokecolor='#4F789D' coordsize='21600,21600' title='打印'></v:roundrect>";
          conTrolStr += "<v:textbox style='position:absolute;top:4;right:8;color:#7B9EBD;font-family:arial black;font-size:7pt;cursor:hand;zIndex:0' title='导出数据'>导出数据</v:textbox>";
          conTrolStr += "</v:group>";
          
          conTrolStr += "<span style='position:absolute;right:410;color:#4F789D;top:5;'>(从:</span>";//标签:(从:->[17]
          conTrolStr += "<span style='position:absolute;right:380;top:4;height:16;width:30;border:solid 0px red;color:#4F789D;text-align:center;font-size:10;font-family:arial;'/></span>";//记录段首记录索引->[18]
          conTrolStr += "<span style='position:absolute;right:360;color:#4F789D;top:5;'> 到:</span>";//标签:(到:->[19]
          conTrolStr += "<span style='position:absolute;right:330;top:4;height:16;width:30;border:solid 0px red;color:#4F789D;text-align:center;font-size:10;font-family:arial;'/></span>";//记录段尾记录索引->[20]
          conTrolStr += "<span style='position:absolute;right:315;color:#4F789D;top:5;'> 条</span>";//标签:(条:->[21]
          conTrolStr += "<span style='position:absolute;right:240;color:#4F789D;top:5;'>条/</span>";//标签:(条/->[22]
          conTrolStr += "<span style='position:absolute;right:217;top:3;height:16;width:22;border:solid 0px red;color:#4F789D;text-align:center;font-size:10;font-family:arial;'/></span>";//总页数->[23]
          conTrolStr += "<span style='position:absolute;right:203;color:#4F789D;top:5;'>页</span>";//标签:(页->[24]
          //////////////////
          
          conTrolStr += "</div>";
          
          oControl.insertAdjacentHTML("afterBegin",conTrolStr);          
          oTemp = oControl.children(0);//div
          oControl.curPage = oTemp.children(0);//当前页
          oControl.curPage.onkeydown = gotoPage;//当输入页号后回车后转到相关页面
          oControl.pageSize = oTemp.children(1);//每页显示记录数
          oControl.recordCount = oTemp.children(7);//记录总数
          oControl.firstPage = oTemp.children(10);//首页
          oControl.previousPage = oTemp.children(11);//上一页
          oControl.nextPage = oTemp.children(12);//下一页
          oControl.lastPage = oTemp.children(13);//尾页
          oControl.addR = oTemp.children(15);//增加r行
          oControl.delR = oTemp.children(14);//删除r行
          oControl.print = oTemp.children(16);//打印
          oControl.curRow = oTemp.children(8);//当前行
          oControl.curCol = oTemp.children(9);//当前列   
          oControl.curRowCaption = oTemp.children(2);//行标签
          oControl.curColCaption = oTemp.children(3);//列标签
          
          oControl.startRecordIndex = oTemp.children(18);//记录段首记录索引
          oControl.endRecordIndex = oTemp.children(20);//记录段尾记录索引
          oControl.pageCount = oTemp.children(23);//总页数
          
          ///////////////////
          //////////////     
          oControl.curRowCaption.style.visibility = "hidden";
          oControl.curColCaption.style.visibility = "hidden";
          
          /////////////操作按钮///////////
          if(hasAddButton == "false"){//是否显示增加按钮
            oTemp.removeChild(oControl.addR);            
          }else{
            oControl.addR.onclick = addRow;
          }
          
          if(hasDelButton == "false"){//是否显示删除按钮
            oTemp.removeChild(oControl.delR);
          }else{
            oControl.delR.onclick = delRow;
          }
          
          if(hasPrintButton == "false"){//是否显示导出数据按钮
            oTemp.removeChild(oControl.print);
          }else{
            oControl.print.onclick = PrintOut;
          }
          ///////////////////////////////
          
          oTemp.style.background = controllerBgColor;
          oControl.recordCount.style.background = controllerBgColor;
          oControl.curRow.style.background = controllerBgColor;
          oControl.curCol.style.background = controllerBgColor;
          
          //事件绑定
          oControl.firstPage.onclick = moveFirstPage;
          oControl.previousPage.onclick = movePreviousPage;
          oControl.nextPage.onclick = moveNextPage;
          oControl.lastPage.onclick = moveLastPage;        
          
          //页面加载时需要初始化的一些参数
          oControl.curPage.value = 1;
          oControl.pageSize.valu

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -