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

📄 olapgrid.js

📁 ajax 框价.是个好工具.javascript 矿家.可以用在任何平台.
💻 JS
📖 第 1 页 / 共 5 页
字号:
{w=vm.getAxisCellWidth(my,mx);sb.push("<div style=\"width:",w,"px;","height:",h,"px;","top:",yPos,"px;",leftProp,":",xPos,"px;",dm.getAxisCellStyle(axis,my,mx),"\""," class=\"grid-header\">",dm.getAxisCellText(axis,my,mx),"</div>");xPos+=w;mx=vm.getNextAxisPosition(axis,my,mx);}
maxWidth=Math.max(maxWidth,xPos);if(xPos<nWidth+deltaLeft)
{sb.push("<div class=\"filler grid-header\" style=\"width:",(nWidth+deltaLeft-xPos),"px;",leftProp,":",xPos,"px;","top:",yPos,"px;","height:",h,"px;","\"></div>");xPos+=nWidth-xPos+deltaLeft;}
maxWidth=Math.max(maxWidth,xPos);}}
sb.push("</div>");return"<div class=\"bi-olap-grid-headers-table\" style=\"width:"+(maxWidth+deltaLeft)+"px;"+leftProp+":"+(-fillerLeft)+"px;position:relative;\">"+sb.join("");};_p.getFixedLeftHtmlCode=function(nScrollTop,nWidth,nHeight)
{this._createUpdateCache();var uc=this._updateCache;var vm=this.getViewManager();var axis=1;var rowHeaderWidth=vm.getAxisWidth();var fixedLeftWidth=vm.getFixedLeftWidth();var contentWidth=fixedLeftWidth-rowHeaderWidth;if(fixedLeftWidth<=0||nHeight<=0)
{return"";}
else if(rowHeaderWidth>=nWidth)
{return this.getRowHeadersHtmlCode(uc.startRow,rowHeaderWidth,nHeight);}
else {var startCol=vm.getFixedCell(1-axis);if(!vm.getCellVisible(1-axis,startCol))
startCol=vm.getNextVisibleCell(1-axis,startCol);if(startCol==null||startCol>=vm.getNonFixedCell(1-axis))
{return this.getRowHeadersHtmlCode(uc.startRow,rowHeaderWidth,nHeight);}
else {return this.getRowHeadersHtmlCode(uc.startRow,rowHeaderWidth,nHeight)+"<div class=\"bi-olap-grid-body-content bi-olap-grid-fixed-right-border\" "+"style=\"left:"+rowHeaderWidth+"px;top:0;"+"width:"+contentWidth+"px;"+"height:"+nHeight+"px;\">"+this.getHtmlCode(startCol,uc.startRow,contentWidth,nHeight)+"</div>";}}};_p.getRowHeadersHtmlCode=function(nStartRow,nWidth,nHeight)
{this._createUpdateCache();var uc=this._updateCache;var dm=this.getDataModel();var vm=this.getViewManager();var sm=this._stateManager;var startRow=nStartRow;var axis=1;var dimCount=dm.getAxisDimensionCount(axis);var colCount=dm.getAxisPositionWidth(axis);var sb=[];var mx,xPos,my,yPos,h,w,dist,deltaTop;var startFiller=0;var fillerTopPos=0;var fillerTop=0;var minStart=Infinity;var maxHeight=nHeight;var leftProp=this.getRightToLeft()?"right":"left";mx=vm.getFirstVisibleDimension(axis);if(dm!=null&&mx!=null&&startRow!=null)
{for(xPos=0;mx!=null&&mx<dimCount&&xPos<nWidth;mx=vm.getNextDimension(axis,mx),xPos+=w)
{w=vm.getDimensionWidth(mx);yPos=0;my=startRow;fillerTop=0;var startPos=vm.getAxisCellStartPosition(axis,mx,my);minStart=vm.getMinCellPosition(axis,startPos,minStart);dist=vm.getAxisPositionDistance(axis,minStart,startPos);if(dist>0)
{fillerTopPos=dist;fillerTop=vm.getCellTop(startPos)-vm.getCellTop(minStart);yPos+=fillerTop;}
my=startPos;deltaTop=vm.getCellTop(startRow)-vm.getCellTop(minStart);;while(my!=null&&yPos<nHeight+deltaTop)
{h=vm.getAxisCellHeight(mx,my);sb.push("<div style=\"width:",w,"px;","height:",h,"px;","top:",yPos,"px;",leftProp,":",xPos,"px;",dm.getAxisCellStyle(axis,mx,my),"\""," class=\"grid-header\">",dm.getAxisCellText(axis,mx,my),"</div>");yPos+=h;my=vm.getNextAxisPosition(axis,mx,my);}
maxHeight=Math.max(maxHeight,yPos);if(yPos<nHeight+deltaTop)
{sb.push("<div class=\"filler grid-header\" style=\"height:",(nHeight+deltaTop-yPos),"px;",leftProp,":",xPos,"px;","top:",yPos,"px;","width:",w,"px;","\"></div>");yPos+=nHeight-yPos+deltaTop;}
maxHeight=Math.max(maxHeight,yPos);}}
sb.push("</div>");return"<div class=\"bi-olap-grid-headers-table\" style=\"height:"+(maxHeight+deltaTop)+"px;top:"+(-fillerTop)+"px;position:relative;\">"+sb.join("");};_p.getFixedCornerHtmlCode=function(nWidth,nHeight)
{this._createUpdateCache();var uc=this._updateCache;var vm=this.getViewManager();var axis=0;var rowHeaderWidth=vm.getAxisWidth();var headerHeight=vm.getAxisHeight();var fixedTopHeight=Math.min(nHeight,vm.getFixedTopHeight());var fixedLeftWidth=Math.min(nWidth,vm.getFixedLeftWidth());var contentWidth=fixedLeftWidth-rowHeaderWidth;var contentHeight=fixedTopHeight-headerHeight;var s="";if(contentWidth>0)
{s+="<div class=\"bi-olap-grid-headers bi-olap-grid-fixed-right-border\" "+"style=\"top:0;left:"+rowHeaderWidth+"px;"+"width:"+contentWidth+"px;height:"+headerHeight+"px;\">"+this.getHeadersHtmlCode(vm.getFixedCell(axis),contentWidth,headerHeight)+"</div>";}
if(contentHeight>0)
{s+="<div class=\"bi-olap-grid-row-headers bi-olap-grid-fixed-bottom-border\" "+"style=\"left:0;top:"+headerHeight+"px;"+"width:"+rowHeaderWidth+"px;height:"+contentHeight+"px;\">"+this.getRowHeadersHtmlCode(vm.getFixedCell(1-axis),rowHeaderWidth,contentHeight)+"</div>"}
if(contentHeight>0||contentWidth>0)
{var startRow=vm.getFixedCell(1-axis);var startCol=vm.getFixedCell(axis);if(!vm.getCellVisible(axis,startCol))
startCol=vm.getNextVisibleCell(axis,startCol);if(!vm.getCellVisible(1-axis,startRow))
startRow=vm.getNextVisibleCell(axis,startRow);if(!(startCol==null||startRow==null||startCol>=vm.getNonFixedCell(axis)||startRow>=vm.getNonFixedCell(1-axis)))
{s+="<div class=\"bi-olap-grid-body-content bi-olap-grid-fixed-right-border bi-olap-grid-fixed-bottom-border\" "+"style=\"left:"+rowHeaderWidth+"px;top:"+headerHeight+"px;"+"width:"+contentWidth+"px;"+"height:"+contentHeight+"px;\">"+this.getHtmlCode(startCol,startRow,contentWidth,contentHeight)+"</div>";}}
return s;};_p._updateGrid=function(bForceContainer,bForceHeader,bForceRowHeader)
{if(!this.getCreated())
return;var vm=this.getViewManager();var gridBody=this._gridBodyElement;var container=this._gridBodyContentElement;var headers=this._gridFixedTopElement;var rowHeaders=this._gridFixedLeftElement;var corner=this._gridFixedCornerElement;this._createUpdateCache();var uc=this._updateCache;var scrollLeft=uc.scrollLeft;var scrollTop=uc.scrollTop;var clientWidth=uc.clientWidth;var clientHeight=uc.clientHeight;var startRow=uc.startRow;var startCol=uc.startCol;var axis=0;var fixedTopHeight=vm.getFixedTopHeight();var fixedLeftWidth=vm.getFixedLeftWidth();clientWidth=Math.max(0,uc.scrollClientWidth-fixedLeftWidth);clientHeight=Math.max(0,uc.scrollClientHeight-fixedTopHeight);if(startCol!=this._lastStartCol||startRow!=this._lastStartRow||bForceContainer)
{container.innerHTML=this.getHtmlCode(startCol,startRow,clientWidth,clientHeight);}
if(fixedTopHeight>0&&(startCol!=this._lastStartCol||bForceHeader))
headers.innerHTML=this.getFixedTopHtmlCode(scrollLeft,clientWidth,uc.realClientHeight);if(fixedLeftWidth>0&&(startRow!=this._lastStartRow||bForceRowHeader))
rowHeaders.innerHTML=this.getFixedLeftHtmlCode(scrollTop,uc.realClientWidth,clientHeight);if(bForceHeader||bForceRowHeader)
corner.innerHTML=this.getFixedCornerHtmlCode(uc.realClientWidth,uc.realClientHeight);this._updateAttachedComponents();this._lastStartCol=startCol;this._lastStartRow=startRow;this._invalidSelectionAreas.removeAll();this._resetUpdateCache();};_p.getScrollTop=function()
{var vm=this.getViewManager();if(this.getCreated()&&vm)
{var axis=1;return vm.getCellTop(vm.getFirstViewCell(axis))-vm.getCellTop(vm.getNonFixedCell(axis));}
return 0;};_p.getScrollLeft=function()
{var vm=this.getViewManager();if(this.getCreated()&&vm)
{var axis=0;return vm.getCellLeft(vm.getFirstViewCell(axis))-vm.getCellLeft(vm.getNonFixedCell(axis));}
return 0;};_p.getScrollWidth=function()
{if(!this._created)
throw new Error("Visual property on non created component");if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollWidth;}
else {var vm=this.getViewManager();return vm.getVisibleCellsWidth(0)+vm.getFixedLeftWidth();}};_p.getScrollHeight=function()
{if(!this._created)
throw new Error("Visual property on non created component");if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollHeight;}
else {var vm=this.getViewManager();return vm.getVisibleCellsHeight(0)+vm.getFixedTopHeight();}};_p._create=function(oDoc)
{BiComponent.prototype._create.call(this,oDoc);this._gridBodyElement=this._document.createElement("DIV");this._gridBodyElement.className="bi-olap-grid-body";this._gridBodyElement.onscroll=BiTreeViewBase.__onBiTreeViewBaseScroll;this._element.appendChild(this._gridBodyElement);if(this._useNativeScrollBars)
{this._addNativeScrollBars();}
this._gridBodyContentElement=this._document.createElement("DIV");this._gridBodyContentElement.className="bi-olap-grid-body-content";this._element.appendChild(this._gridBodyContentElement);this._gridFixedTopElement=this._document.createElement("DIV");this._gridFixedTopElement.className="bi-olap-grid-headers";this._element.appendChild(this._gridFixedTopElement);this._gridFixedLeftElement=this._document.createElement("DIV");this._gridFixedLeftElement.className="bi-olap-grid-row-headers";this._element.appendChild(this._gridFixedLeftElement);this._gridFixedCornerElement=this._document.createElement("DIV");this._gridFixedCornerElement.className="bi-olap-grid-header-corner";this._element.appendChild(this._gridFixedCornerElement);this._updateOverflow();this._updateCanSelect();};_p._addNativeScrollBars=function(){BiTreeViewBase.prototype._addNativeScrollBars.call(this);this._gridBodyFillerElement.className="bi-olap-grid-body-filler";};_p._updateCellSelected=function(x,y,bHtml)
{var dm=this.getDataModel();var vm=this.getViewManager();var sm=this.getSelectionModel();var axis=0;var td=this._getTd(x,y);if(td)
{var bSelected=sm.getCellSelected(x,y);var bLead=sm.getCellIsLead(x,y);var bAnchor=sm.getCellIsAnchor(x,y);td.className=(bSelected?"selected":"")+(bAnchor?" anchor":"");if(bHtml)
{var uc=this._updateCache;td.innerHTML=uc.ieNoBr+(dm.getHasIcon(x,y)?"<img alt=\"\" src=\""+dm.getIcon(x,y)+"\" style=\""+dm.getIconStyle(x,y)+"\" class=\"icon\">":"")+dm.getCellText(x,y)+uc.ieNoBrClose;}
var style=dm.getCellStyle(x,y);if(style!="")
{var width=td.style.width;var height=td.style.height;td.style.cssText=style;td.style.width=width;td.style.height=height;}
this._updateAttachedComponent(x,y);}
this._resetUpdateCache();};_p._updateAreaSelected=function(oArea)
{this._invalidSelectionAreas.add(oArea);};_p._getTd=function(x,y)
{var dm=this.getDataModel();var vm=this.getViewManager();var sm=this.getSelectionModel();var axis=0;if(this._contentSizeDirty||!this.getCreated()||!dm)
return null;vm.resetCache();this._resetUpdateCache();this._createUpdateCache();var uc=this._updateCache;var clientHeight=uc.clientHeight;var startRow=uc.startRow;var startCol=uc.startCol;if(x>=dm.getAxisPositionWidth(axis)||y>=dm.getAxisPositionWidth(1-axis))
return null;var table,tr,td,style,rowIndex,colIndex;if(x<vm._nonFixedCell[axis])
{if(y<vm._nonFixedCell[1-axis])
{table=this._gridFixedCornerElement.lastChild.firstChild;rowIndex=vm.getVisibleCellIndex(1-axis,y)-vm.getVisibleCellIndex(1-axis,vm._fixedCell[1-axis])
colIndex=vm.getVisibleCellIndex(axis,x)-vm.getVisibleCellIndex(axis,vm._fixedCell[axis]);}
else if(y>=startRow)
{table=this._gridFixedLeftElement.childNodes[1].firstChild;rowIndex=vm.getVisibleCellIndex(1-axis,y)-vm.getVisibleCellIndex(1-axis,startRow);colIndex=vm.getVisibleCellIndex(axis,x)-vm.getVisibleCellIndex(axis,vm._fixedCell[axis]);}}
else {if(y<vm._nonFixedCell[1-axis]&&x>=startCol)
{table=this._gridFixedTopElement.childNodes[1].firstChild;rowIndex=vm.getVisibleCellIndex(1-axis,y)-vm.getVisibleCellIndex(1-axis,vm._fixedCell[1-axis]);colIndex=vm.getVisibleCellIndex(axis,x)-vm.getVisibleCellIndex(axis,startCol);}
else if(y>=startRow&&x>=startCol)
{table=this._gridBodyContentElement.firstChild;rowIndex=vm.getVisibleCellIndex(1-axis,y)-vm.getVisibleCellIndex(1-axis,startRow);colIndex=vm.getVisibleCellIndex(axis,x)-vm.getVisibleCellIndex(axis,startCol);}}
try
{if(table&&rowIndex!= -1&&colIndex!= -1)
{if(rowIndex!=null)
{tr=table.tBodies[0].rows[rowIndex];if(tr)
{if(colIndex!=null)
{td=tr.cells[colIndex];}}}}}
catch(ex)
{return null;}
return td;};_p._createUpdateCache=function()
{if(this._updateCache)
return;var dm=this.getDataModel();var vm=this.getViewManager();var sm=this._selectionModel;var axis=0;var startCol=vm.getFirstViewCell(axis);var startRow=vm.getFirstViewCell(1-axis);var scrollLeft,scrollTop,clientWidth,clientHeight,scrollClientHeight,scrollClientWidth,realClientWidth,realClientHeight;if(this._useNativeScrollBars)
{scrollLeft=this._gridBodyElement.scrollLeft;scrollTop=this._gridBodyElement.scrollTop;}
else {scrollLeft=this._hScrollBar.getValue();scrollTop=this._vScrollBar.getValue();}
clientHeight=this._gridBodyContentElement.offsetHeight;clientWidth=this._gridBodyContentElement.offsetWidth;scrollClientHeight=this._gridBodyElement.clientHeight;scrollClientWidth=this._gridBodyElement.clientWidth;realClientWidth=this._element.clientWidth;realClientHeight=this._element.clientHeight;this._updateCache={startRow:startRow,startCol:startCol,ieNoBr:(BiBrowserCheck.ie?"<nobr>":""),ieNoBrClose:(BiBrowserCheck.ie?"</nobr>":""),ieExtraPadding:BiBrowserCheck.ie?3:0,scrollLeft:scrollLeft,scrollTop:scrollTop,clientHeight:clientHeight,clientWidth:clientWidth,scrollClientHeight:scrollClientHeight,scrollClientWidth:scrollClientWidth,realClientWidth:realClientWidth,realClientHeight:realClientHeight,colCount:vm.getVisibleCellsCount(axis),rowCount:vm.getVisibleCellsCount(1-axis)};}
_p._onMouseWheel=function(e)
{var vm=this.getViewManager();var st1=this._getInternalScrollTop();this._setInternalScrollTop(st1-18*e.getWheelDelta());var st2=this._getInternalScrollTop();if(BiBrowserCheck.moz&&st1!=st2&&this._useNativeScrollBars)
{this._onBiOlapGridScroll();e.preventDefault();}};_p._onMouseEvent=function(e)
{var dm=this.getDataModel();if(dm==null)
return;if(!this._useNativeScrollBars)
{var target=e.getTarget();if(this._hScrollBar.contains(target)||this._vScrollBar.contains(target))
{return;}}
var vm=this.getViewManager();var info=this.getCellInfoFromMouseEvent(e);var sm=this._stateManager;if(e.getType()=="contextmenu")
{this._onContextMenu(e,info);}
if(!info.getHeader()&&!info.getBody())
{sm.updateState(e.getType(),null,e);return;}
sm.updateState(e.getType(),info,e);if(e.getType()=="mouseout"||e.getType()=="mouseover")
return;if(info.getHeader())
{this._handleHeaderMouseEvent(e,info);return;}
this._mouseSelect(e,info);this._updateInvalidSelectionState();};_p._mouseSelect=function(e,info,type)
{if(!type)
type=e.getType();var a=new BiArea;var vm=this.getViewManager();var dm=this.getDataModel();if(info.getHeader())
{if(info.getAxis()==0)
{a.setLeft(info.getAxisPosition());a.setWidth(dm.getAxisCellWidth(info.getAxis(),info.getDimension(),info.getAxisPosition()));a.setTop(0);a.setHeight(Infinity);}
else {a.setTop(info.getAxisPosition());a.setHeight(dm.getAxisCellWidth(info.getAxis(),info.getDimension(),info.getAxisPosition()));a.setLeft(0);a.setWidth(Infinity);}}
else {if(info.getColumn()==null)
{a.setLeft(0);a.setWidth(Infinity);}
else {a.setLeft(info.getColumn());}
if(info.getRow()==null)
{a.setTop(0);a.setHeight(Infinity);}
else {a.setTop(info.getRow());}}

⌨️ 快捷键说明

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