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

📄 dbgrid.htc

📁 HTC,demo WEB用于。 超大型
💻 HTC
📖 第 1 页 / 共 5 页
字号:
      <!--///////////////////////////////////////////////////////////////////////
      // 标题:DBGrid组件 ///////////////////////////////////////////////////
      // 时间:2004-01-10 ///////////////////////////////////////////////////
      ///////////////////////////////////////////////////////////////////////-->
      <public:component name="DBGrid" urn="DBGrid" lightweight=true>
      
      <public:property name="titleXML" get="getTitleXML" put="putTitleXML"/>//DBGrid标题数据源
      <public:property name="dataXML" get="getDataXML" put="putDataXML"/>//DBGrid数据源

      //grid组件整体位置、样式    
      <public:property name="top" value="10" put="putTop"/>
      <public:property name="left" value="10" put="putLeft"/>
      <public:property name="width" value="200" put="putWidth"/>
      <public:property name="height" value="250" put="putHeight"/>
      <public:property name="borderColor" value="#A6C4E1"/> 

      //标题行样式/
      <public:property name="hasTitle" value="true"/> // 是否有表头
      <public:property name="titleBgColor" value="#CAEAFF"/>
      <public:property name="titleForeColor" value="#000000"/>

      //数据表样式
      <public:property name="dataBgColor" value="#DBDBDB"/>//数据表背景色
      <public:property name="oddTRColor" value="#F3F8FC"/> //数据表奇数行背景色
      <public:property name="evenTRColor" value="#E9F0F8"/> //数据表偶数行背景色
      <public:property name="selectionMode" value="cell" put="putSelectionMode"/>
      <public:property name="tableRow" get="getTableRow" put="putTableRow"/>//当前行
      <public:property name="tableCol" get="getTableCol" put="putTableCol"/>//当前列
      <public:property name="selectBgColor" value="#DFF0CE"/> //选择的cell或行的背景色
      <public:property name="selectForeColor" value="#FF6600"/> //选择的cell或行的前景色
      <public:property name="rows" get="getRows"/>//总行数
      <public:property name="cols" get="getCols"/>//总列数          
      <public:property name="PKColName" put="putPKColName"/>//每行的唯一标识列的列名
      
      //索引列样式      
      <public:property name="hasFixedCol" value="1"/>//是否有索引列:0:无 1:有
      <public:property name="fixedColForeColor" value="#000000"/>//索引列cell前景色
      <public:property name="fixedColBGColor" value="#CAEAFF"/>//索引列cell背景色
      <public:property name="fixedColAlign" value="center"/>//索引列cell对齐方式
      <public:property name="editMode" value="true"/>//是否可以编辑
      
      //是否有控制面板
      <public:property name="hasController" value="true"/>//是否有控制面板
      <public:property name="controllerBgColor" value="#CAEAFF"/>//控制器背景色
      <public:property name="pageSize" put="putPageSize"/>//一页记录数
      <public:property name="curPage" get="getCurPage"/>//
      <public:property name="recordCount" get="getRecordCount"/>//记录总数
      
      <public:property name="hasAddButton" value="false"/>//是否有增加行按钮
      <public:property name="hasDelButton" value="false"/>//是否有删除行按钮 
      <public:property name="hasPrintButton" value="true"/>//是否有打印按钮 
      
      <public:property name="hasPageFooter" value="false"/>//是否含有页脚行
      <public:property name="hasTotalLine" put="putHasTotalLine"/>//是否含有合计行
      <public:property name="ifAlertNodataFill" put="putIfAlertNodataFill"/>//是否在无数据的时候进行提示 默认为提示

      //checkBox列和radio列
      <public:property name="hasCheckBox" put="putCheckBox"/>//checkBox列
      <public:property name="hasRadio" value="false"/>//radio列
      <public:property name="readOnly" put="putReadOnly" get="getReadOnly"/>//readOnly属性
      <public:property name="init" put="initialize"/>//组件初始化

      <public:event name="onDrag" id="evtOnDrag"/>
      <public:event name="onClickCell" id="evtClickCell"/> 
      <public:event name="onChange" id="evtonChange"/>
      <public:event name="onModify" id="evtonModify"/>

      <public:method name="getCellText"/> //获得指定cell的内容
      <public:method name="getSelectedXMLRow"/> //返回当前
      <public:method name="getSelectedOrderXMLRow"/>
      <public:method name="getPaginationData"/>
      
      <public:method name="getValueByRPropName"/>//根据RPropName来获得指定行的列值
      <public:method name="delRow"/> //删除选定的行
      <public:method name="delCheckRow"/> //删除通过checkBox选中的行
      <public:method name="addRow"/>//添加新行  
      <public:method name="PrintOut"/>//打印
      
      <public:method name="updateSelectRow"/>//用来修改选中行的内容
        
      <public:method name="getXMLDocCopy"/>//返回当前正在编辑的xml的拷贝  原saveXML
      <public:method name="getXMLFrgWithRoot"/>//返回一般需要使用的xml结果对象  原saveXML2
      <public:method name="getXMLStringNoRoot"/>//返回一般需要使用的xml结果对象,无root节点  原saveXML3
      
      <public:method name="setReportformTitle"/>
      <public:method name="setReportformProducer"/>
      <public:method name="setReportformDatetime"/>
      <public:method name="getReportFormsPrintInfo"/>
      
      <public:attach event="onclick" for="element" onevent="hideInput()"/>

      <script language="JavaScript">
      
      <!--

        var oDataXML = null;//Table数据的XML对象
        var objDeletedXMLFragement = null;//用来保存已经删除了的行      
        var oCopyDataXML = null;//Table数据的XML对象的拷贝
        var oPreviousRowXMLData = null;//双击时用来保存当前行XML数据对象
        var oTitleXML = null;//Title数据的XML对象
        var oControl = null;//控制面板容器对象    
        var oDivPageFooter = null; 
        var oTabPageFooter = null; 

        var oTitle = null;//标题对象
        var oTitleTable = null;//标题table对象
        var oTitleTR = null;//标题行tr对象
        var oTitleTD = null;//标题cell对象
        var oTitleInnerDiv = null;//标题行 cell 中的 div 对象,用来撑开td
        var objTA,objDT,objSEC,objCombo,objActiveEditor,objMaskEdit,objDatePicker,objQInput; //编辑组件以及记录当前活动的Editor

        var oTBody = null;//内容所在容器对象
        var oDataTable = null;//oTBody容器对象
        var oTBodyTable = null;//内容table对象
        var oTBodyTR = null;//内容tr对象
        var oTBodyTD = null;//内容cell对象
        var oFirstLineDiv = null;//第一行cell中的div对象,用来控制整个内容表的列宽
        var vTableCol,vTableRow;//存储当前操作的cell
        var vPreviousCol,vPreviousRow,vPreviousRowForXML;//存储上次操作的cell位置
        var vSelectionMode = "row";//选中方式(默认为单元格选中)
        var vPKColName = "";//用来唯一标识每一行的XML属性名
        var allowResizeModle = true;//是否可以调整列宽
        var vMouseStart,objSplitBar; //鼠标初始位置,当前活动splitbar
        var bIsSelected = false;//单元格是否被选中
        var objScrollTrack; //记录鼠标跟随选择的TD对象
        var oSortBtn = null;//排序按钮
        var curScrollLeftStatus = 0;//水平滚动条当前的scrollLeft
        var curScrollTopStatus = 0;//垂直滚动条当前的scrollTop
        var oEditor;//当前输入框
        var oCurCell;//当前Cell
        var curContent;//当前cell中的内容
        var curPage = 1;//当前页
        var oPageSize = 20;//每页显示的记录数,默认为20条
        
        var arrCheckedRow = new Array();//用来保存用户通过checkBox选择行的__rowid
        var intRows = 0;
        
        var addFlag = false;
        var vReadOnly = false;

        var vTop = 10;
        var vLeft = 10;
        var vWidth = 200;
        var vHeight = 250;
        var boolInEditing = false;
        
        //////checkBox hzh 2005-7-14 add////
        var objSelectedRowXMLFragement = null;
        var booleanHasCheckBox = false;
        var intFirstColIndex = 1;//
        /////////////////////////////
        
        /////////////////报表打印信息设置//////////////////////
        var vReportformProducer = "+++++++++ hzh ++++++++"; 
        var vReportformDatetime = "+++++++++ 2005年3月3日 15:30 ++++++++";
        
        var vReportTitleTableInnerHTML = "";//报表表头数据
        var vReportDataTableInnerHTML = "";//报表主体数据
        
        var intColCount = 0;//总列数
        /////////////////////////////////////////////
        
        var intRecordCount = 0;//记录总数
        var intCursor = 1;//游标值
        var recordLimit = 100;//每次返回记录的条数
        var intCurLeftPosition = 1;//当前记录段首记录
        var intCurRightPosition = recordLimit;//当前记录段尾记录
        var booleanShowDataInOnePage = false;
        var booleanPageControl = false;
        var booleanHasTotalLine = false;//是否有合计行 - 默认:无
        var booleanIfAlertNodataFill = true;
        var tmpPageNumber = 0;
        
        var oraclDateValue = "";
        
        function putHasTotalLine(argHasTotalLine){
			booleanHasTotalLine = ( argHasTotalLine == "yes" ) ? true : false;
        }
        
        function putIfAlertNodataFill(argIfAlertNodataFill){
			booleanIfAlertNodataFill = ( argIfAlertNodataFill == "yes" ) ? true : false;
        }
        
        function getCurPage(){
			return "";
        }
        
        function getRecordCount(){//记录总数
			return intRecordCount;
        }
        ///////////////////////////////////////////////////
        /////////以下方法为北京PHMS项目重写或新增//////////////////
        //////////////////////////////////////////////////////
        
        ////////////报表设计////////////////////////////
        
        function setReportformTitle(argReportformTitle){
			//
        }
        
        function setReportformProducer(argReportformProducer){
			vReportformProducer = argReportformProducer;
        }
        
        function setReportformDatetime(argReportformDatetime){
			vReportformDatetime = argReportformDatetime;
        }
        
        function getReportFormsPrintInfo(){//返回要打印的报表信息
			var vReportBottomTableInnerHTML = "<table vhinfo='bottom' width='" + vWidth + "'><tr><td colSpan='" + intColCount + "'>" + vReportformProducer + "</td><td>" + vReportformDatetime + "</td></tr></table>";
			var vReportformTransformXSLT = ( hasFixedCol == 1 ) ? '<?xml version="1.0" encoding="gbk"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="gbk" indent="yes"/><xsl:template match="/"><table vhinfo="thead"><tr><td></td><xsl:apply-templates select="root"/><td></td></tr></table></xsl:template><xsl:template match="root"><xsl:for-each select="Col[not(@visible = \'false\')]"><td rpropname="{@rpropname}" dataType="{@DataType}" align="center"><xsl:value-of select="@caption"/></td></xsl:for-each></xsl:template></xsl:stylesheet>' : '<?xml version="1.0" encoding="gbk"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="gbk" indent="yes"/><xsl:template match="/"><table vhinfo="thead"><tr><xsl:apply-templates select="root"/><td></td></tr></table></xsl:template><xsl:template match="root"><xsl:for-each select="Col[not(@visible = \'false\')]"><td rpropname="{@rpropname}" dataType="{@DataType}" align="center"><xsl:value-of select="@caption"/></td></xsl:for-each></xsl:template></xsl:stylesheet>';
			vReportTitleTableInnerHTML = __objGlobalCommonInst.transformXML(oTitleXML,vReportformTransformXSLT);
			//window.prompt("", "<?xml version='1.0' encoding='gbk'?><root><table vhinfo='maintab'><tr><td><table vhinfo='body'><tr><td>" + vReportTitleTableInnerHTML + "</td></tr><tr><td>" + vReportDataTableInnerHTML + "</td></tr></table></td></tr><tr><td>" + vReportBottomTableInnerHTML + "</td></tr></table></root>");
			//return "<?xml version='1.0' encoding='gbk'?><root><table vhinfo='maintab'><tr><td><table vhinfo='body'><tr><td>" + vReportTitleTableInnerHTML + "</td></tr><tr><td>" + vReportDataTableInnerHTML + "</td></tr></table></td></tr><tr><td>" + vReportBottomTableInnerHTML + "</td></tr></table></root>";
			post("<?xml version='1.0' encoding='gbk'?><root><table vhinfo='maintab'><tr><td><table vhinfo='body'><tr><td>" + vReportTitleTableInnerHTML + "</td></tr><tr><td>" + vReportDataTableInnerHTML + "</td></tr></table></td></tr><tr><td>" + vReportBottomTableInnerHTML + "</td></tr></table></root>");
        }
        
        function post(argReportformPrintInfo){
			var objMsgBody = __objGlobalCommonInst.createMsgBody();
        	objMsgBody.inUseState = "busy";
            objMsgBody.addParameter("CONTENT", argReportformPrintInfo);
            objMsgBody.addParameter("EXTENSION", ".xls");
			var x = getRootNode(postXML(objMsgBody, __objGlobalCommonInst, "01010101", false));
            var url = __objGlobalCommonInst.webrootURL;
            if(url.charAt(url.length-1) != "/") {
                url += "/";
            }
            url += "temp/" + x.selectSingleNode("r").getAttribute("URI");
			window.open(url);
        }
        ////////////////////////////////////////
        
        function updateSelectRow(argR){//对选中行的显示内容进行修改
									   //argR的格式:<r ISID='22222' WOBD='100' HSBD='50' BZCH='40' USBD='30' SUBCD='0000000'/>
									   //其中属性名为每列对应的rpropname
			if(typeof(argR) == "undefined") return;
			if(vTableRow == -1) return;
			var objRXML = __objGlobalCommonInst.inputXML(argR);
			if(!objRXML) return;
			var vLengthAttribute = objRXML.childNodes[0].attributes.length;
			var vLengthTitleCell = oTitleTable.rows[0].cells.length;
			for(var i = 1; i < vLengthTitleCell; i ++){
				for(var j = 0; j < vLengthAttribute; j ++){
					if(objRXML.childNodes[0].attributes[j].name == oTitleTable.rows[0].cells[i].firstChild.rpropname){
						if(vTableRow == 0){
							oTBodyTable.rows[0].cells[i].firstChild.innerText = objRXML.childNodes[0].attributes[j].value;
						}else{
							oTBodyTable.rows[vTableRow].cells[i].innerText = objRXML.childNodes[0].attributes[j].value;
						}
						break;
					}
				}
			}
        }
        
        function delRow(){//删除用户选中的当前行
			if(vTableRow == -1) return;
			var intCurRowIndex = parseInt(vTableRow);
			var strXPath = "//r[position() = " + (intCurRowIndex + 1) + " ]";
			var objCurRow = oCopyDataXML.selectSingleNode(strXPath);
			oCopyDataXML.childNodes[0].removeChild(objCurRow);
			if(intCurRowIndex == 0){//选中了第一行
				if(oTBodyTable.rows.length == 1){//仅有一行
					oTBodyTable.rows[0].parentElement.removeChild(oTBodyTable.rows[0]);
				}else{//
					for(var i = 1; i < oTBodyTable.rows[1].cells.length; i ++){
						oTBodyTable.rows[0].cells[i].firstChild.innerText = oTBodyTable.rows[1].cells[i].innerText;
					}
					oTBodyTable.rows[1].parentElement.removeChild(oTBodyTable.rows[1]);
				}
			}else{//选中的不是第一行
				for(var i = 0;i < oTBodyTable.rows.length;i ++){
					if(oTBodyTable.rows[i].rowIndex == intCurRowIndex){
						oTBodyTable.rows[i].parentElement.removeChild(oTBodyTable.rows[i]);
						break;
					}
				}
			}
			if(oTBodyTable.rows.length && hasFixedCol == "1"){//更新索引列
				for(var i = 0; i < oTBodyTable.rows.length; i ++){
					oTBodyTable.rows[i].cells[0].innerText = i + 1;
				}

⌨️ 快捷键说明

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