📄 message.htc
字号:
<public:component name="message" urn="message">
<public:property name="target" put ="putTarget" get="getTarget"/>
<public:property name="action" put ="putAction" get="getAction"/>
<public:property name="transaction" put="putTransaction" get="getTransaction" value="true"/>//是否为一个事物
<public:property name="ansy" put ="putAnsy" get="getAnsy" value="true"/>//是否异步
<public:property name="type" put ="putType" get="getType" value=""/>//消息类别
<public:property name="reqestType" put ="putRequestType"/>
<public:property name="reqestQueryStart" put ="putRequestQueryStart"/>
<public:property name="reqestQueryStep" put ="putRequestQueryStep"/>
<public:property name="messageBody" get="getMessageBody"/>
<public:property name="parseState" get="getParseState" value="empty"/>//当前MsgBody的解析状态
//"empty" : XML为空,没有解析
//"correct" : 解析正确
//"error" : 解析错误
<public:property name="inUseState" put="putInUseState" get="getInUseState" value="free"/>//当前MsgBody的被用状态。
//由于MsgBody在Common中,以堆形式被重用,因此需要标注当前被用状态,
//只有当前空闲可用的MsgBody实体才能够被重新分配使用
//"free" : 可以使用
//"busy" : 已经被某处使用,暂时不能使用
<public:property name="outerXML" put="putOuterXML" get="getOuterXML"/>//String类型,Fragement的全部内容
<public:property name="init" put="initialize"/>
<public:method name="addParameter" internalname="addParameterNode"/>
<public:method name="addR" internalname="addRNode"/>
<public:method name="addOther" internalname="addOtherNode"/>
<public:method name="addMessage" internalname="addMessageNode"/>
<script language="JavaScript">
<!--
var objXMLFragement = null;
var objReq = null;
var objRes = null;
var strInUseState = "free";
var strReqType = "r"; //r - 读 w - 写
var strReqQueryStart = 0;//读取起点
var strReqQueryStep = 20;//读取记录数
function initialize(anyInit){//初始化过程
objXMLFragement = __objGlobalCommonInst.inputXML("<Message/>");
objXMLFragement.childNodes(0).setAttribute("target","");
objXMLFragement.childNodes(0).setAttribute("action","");
objXMLFragement.childNodes(0).setAttribute("transaction","true");
objXMLFragement.childNodes(0).setAttribute("ansy","true");
objXMLFragement.childNodes(0).setAttribute("type","0");
}
/*
装配Parameter节点
*/
function addParameterNode(strName, strValue){//装配Parameter
addReq();
addRes();
var objPES = null;
var objPE = null;
if( !objXMLFragement ) initialize();
objPES = objXMLFragement.selectSingleNode("//node()[name()='Parameters']");
if( !objPES ){//
objPES = __objGlobalCommonInst.createElement("Parameters");
objPES = objReq.appendChild(objPES);
}
objPE = __objGlobalCommonInst.createElement("Parameter");
objPE.setAttribute("name",strName);
objPE.text = strValue;
objPES.appendChild(objPE);
}
/*
装配r节点
传入一个node,结构为<root><r/>....<r/></root>
*/
function addRNode(objNode){
addReq();
addRes();
var objRows = null;
var objSwapR = null;
var intRNodeLength = 0;
if(typeof(objNode) != "object") return;
if( !objXMLFragement ) initialize();
objRows = objXMLFragement.selectSingleNode("//node()[name()='Rows']");
if( !objRows ){//
objRows = __objGlobalCommonInst.createElement("Rows");
objRows = objReq.appendChild(objRows);
}
intRNodeLength = objNode.childNodes[0].childNodes.length;
if( intRNodeLength != 1 ){//多个r
for( var i = 0; i < intRNodeLength; i ++ ){
objSwapR = objNode.childNodes[0].childNodes[i].cloneNode(true);
objRows.appendChild(objSwapR);
}
}else{//单个r
objRows.appendChild(objNode.childNodes[0].childNodes[0]);
}
}
/*
装配Other节点
*/
function addOtherNode(objOtherNode){
addReq();
addRes();
if(typeof(objOtherNode) != "object") return;
if( !objXMLFragement ) initialize();
var objOther = objXMLFragement.selectSingleNode("//node()[name()='Other']");
if( !objOther ){//
objOther = __objGlobalCommonInst.createElement("Other");
objOther = objReq.appendChild(objOther);
}
objOther.appendChild(objOtherNode);
}
/*
装配Message节点
*/
function addMessageNode(objMessageNode){
addReq();
addRes();
if(typeof(objMessageNode) != "object") return;
if( !objXMLFragement ) initialize();
var objMessage = objXMLFragement.selectSingleNode("//Req/node()[name()='Message']");
if( !objMessage ) objMessage = __objGlobalCommonInst.createElement("Message");
objMessage.appendChild(objMessageNode);
objReq.appendChild(objMessage);
}
function addReq(){
if( !objXMLFragement ) initialize();
var objReqNode = objXMLFragement.selectSingleNode("//Req");
if(!objReqNode ){//没有有Req节点
objReq = __objGlobalCommonInst.createElement("Req");
objReq.setAttribute("type",strReqType);
if( strReqType == 'r'){//读操作
objReq.setAttribute("query_Start",strReqQueryStart);
objReq.setAttribute("query_Step",strReqQueryStep);
}
objXMLFragement.childNodes(0).appendChild(objReq);
}
}
function addRes(){
if( !objXMLFragement ) initialize();
var objResNode = objXMLFragement.selectSingleNode("//Res");
if(!objResNode){//
objRes = __objGlobalCommonInst.createElement("Res");
objXMLFragement.childNodes(0).appendChild(objRes);
}
}
////////////////////////////////////////////////////////
function putInUseState(sInUseState){//设置使用状态标志
switch(sInUseState.toString().toLowerCase()){
case "free":
strInUseState = "free";
objXMLFragement = null;
__objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount + 1;
break;
case "busy":
strInUseState = "busy";
__objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount - 1;
break;
}
}
function getInUseState(){//获取使用状态标志
return strInUseState;
}
function putTarget(sTarget){//设置Target
if( !objXMLFragement ) initialize();
objXMLFragement.childNodes(0).setAttribute("target",sTarget);
}
function getTarget(){//获取target
return objXMLFragement.getAttribute("target");
}
function putAction(sAction){//设置action
if( !objXMLFragement ) initialize();
objXMLFragement.childNodes(0).setAttribute("action",sAction)
}
function getAction(){//获取action
return objXMLFragement.getAttribute("action");
}
function putOuterXML(sOuterXML){//一次设置全部XML代码
if(typeof(sOuterXML) != "string") return;
//将当前的XML代码装载到Fragement
objXMLFragement = __objGlobalCommonInst.inputXML(sOuterXML);
}
function getOuterXML(){
return objXMLFragement.xml;
}
function putRequestType(argRequestType){
strReqType = argRequestType;
}
function putRequestQueryStart(argRequestQueryStart){
strReqQueryStart = argRequestQueryStart;
}
function putRequestQueryStep(argRequestQueryStep){
strReqQueryStep = argRequestQueryStep;
}
function getMessageBody(){
return objXMLFragement.cloneNode(true);
}
//-->
</script>
</public:component>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -