📄 extenddbgrid.htc
字号:
<!--///////////////////////////////////////////////////////////////////////
// 标题: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="#DDDDDD"/>//数据表背景色
<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="#000000"/> //选择的cell或行的背景色
<public:property name="selectForeColor" value="#ffffff"/> //选择的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"/>//是否含有页脚行
//checkBox列和radio列
<public:property name="hasCheckBox" value="false"/>//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="getXMLDocCopy"/>//返回当前正在编辑的xml的拷贝 原saveXML
<public:method name="getXMLFrgWithRoot"/>//返回一般需要使用的xml结果对象 原saveXML2
<public:method name="getXMLStringNoRoot"/>//返回一般需要使用的xml结果对象,无root节点 原saveXML3
<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;
var intRecordCount = 0;//记录总数
var intCursor = 1;//游标值
var recordLimit = 100;//每次返回记录的条数
var intCurLeftPosition = 1;//当前记录段首记录
var intCurRightPosition = recordLimit;//当前记录段尾记录
var booleanShowDataInOnePage = false;
var oraclDateValue = "";
function getCurPage(){
return "";
}
function getRecordCount(){//记录总数
return intRecordCount;
}
function getRequestData(startIndex){//获取业务请求数据
//增加<Parameter Name="startIdx" Val="0"/>节点用来请求分页数据
var vStartInde = 0;
var objParametersNode;
var objParameter;
var objParameters;
var objMsgBody;
var objRequestRespliteData;
var vUUID = __objGlobalCommonInst.UDDI;
var strReturn;
//测试无Parameters节点的情况
//var testXML = "<?xml version='1.0'?><root UIDofSession='0' TimeStmp='' Tran='0'><MsgBody target='门急诊日志' action='查询列表' UIDofMesg='' Priority='0' Syn='0'><r aa='00' b='23'/></MsgBody></root>";
objRequestRespliteData = __objGlobalCommonInst.getXMLDocumentInst();
objRequestRespliteData.loadXML(__objGlobalCommonInst.getRequestData());
if(!objRequestRespliteData || objRequestRespliteData.xml == "") return (-1);
//objRequestRespliteData.loadXML(testXML);
if(typeof(startIndex) != "undefined"){
vStartInde = parseInt(startIndex);
}
if(objRequestRespliteData){//缓存业务请求数据对象
objParametersNode = objRequestRespliteData.selectSingleNode("//Parameters");
if(objParametersNode){//存在parameters节点
objParameter = objRequestRespliteData.createElement("Parameter");
objParameter = objParametersNode.appendChild(objParameter);
}else{//不存在Parameters节点
objMsgBody = objRequestRespliteData.selectSingleNode("//MsgBody");
objParameters = objRequestRespliteData.createElement("Parameters");
objParameter = objRequestRespliteData.createElement("Parameter");
objParameter = objParameters.appendChild(objParameter);
objParameters = objMsgBody.appendChild(objParameters);
}
objParameter.setAttribute("Name","startIdx");
objParameter.setAttribute("Val",vStartInde);
}
objRequestRespliteData.selectSingleNode("//root").setAttribute("UIDofSession",vUUID);
strReturn = objRequestRespliteData.xml;
strReturn = strReturn.replace(/^[\s\S]{0,}?>/g,"");
strReturn = "<?xml version='1.0' encoding='GBK'?>" + strReturn;
return strReturn;
}
function getPaginationData(startIndex){//分页请求并处理返回数据封装为如下格式
//<root><r .../><r .../><r .../></root>
var postXML;
var objResponseData;
var objReturnData;
postXML = getRequestData(startIndex);
if(postXML == -1) return (-1);
objResponseData = __objGlobalCommonInst.post(postXML);
if(objResponseData){//正常返回处理
objReturnData = objResponseData.selectSingleNode("//root");
return objReturnData;
}else{
return -1;
}
}
function putSelectionMode(arg){
this.vSelectionMode = arg;
}
function putPageSize(arg){
oPageSize = arg;
}
function putPKColName(argPKColName){
this.vPKColName = argPKColName;
}
function getDataXML(){//设置Data的DOMDocument object
return oDataXML;
}
function putDataXML(argXML){
//debugger;
var objXML;
var objNode;
var intStartIdx;
var intRecordLimit;
var intRecordCount;
initGlobalCommon();
objXML = inputXML(argXML);
if(objXML){
while(oDataXML && oDataXML.childNodes(0)){//释放资源
objNode = oDataXML.removeChild(oDataXML.childNodes(0));
objNode = null;
}
oDataXML = null;
delete oDataXML;
oDataXML = objXML;
if(oDataXML!=null) objDeletedXMLFragement = inputXML();
getCopyDataXML();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -