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

📄 query.htm

📁 最基本的IMS功能可以调试
💻 HTM
字号:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<html>
<HEAD>
<script language="javascript">
	var t_query;
	var t2_query = "";
	if (opener) {
		t_query = opener.parent.MapFrame;
		t2_query = "opener.parent.MapFrame";
	} else {
		t_query = parent.MapFrame;
		t2_query = "parent.MapFrame";
	}
	var dQuote = '"';
	var lastExpr = "";
	var currExpr = "";
	var sampleList = new Array();
	var startpos = 0;
	var endpos = 0;
	var SampleCount = t_query.selectData.length;
	var theIndex = t_query.fieldIndex;
	var sampleList = new Array();
	var qField = t_query.LayerFields[t_query.fieldIndex] + '="';
	var valueTitle = t_query.buttonList[2];
	var tempString = "";

	if (t_query.showSampleValues) {
		for (var i=0;i<SampleCount;i++) {
			startpos = t_query.selectData[i].indexOf(qField,0);
			startpos = startpos + qField.length;
			endpos = t_query.selectData[i].indexOf('"',startpos);
			var ftval = parseInt(t_query.LayerFieldType[theIndex]);
			//alert(ftval);
			if ((ftval>=12) && (ftval<=15)) {
			//if ((t_query.LayerFieldType[theIndex].indexOf("12",0)!=-1) || (t_query.LayerFieldType[theIndex].indexOf("13",0)!=-1) || (t_query.LayerFieldType[theIndex].indexOf("14",0)!=-1) || (t_query.LayerFieldType[theIndex].indexOf("15",0)!=-1)) {
				// a Character field - needs quotes
				var vData = t_query.makeXMLsafe(t_query.selectData[i].substring(startpos,endpos));
				sampleList[i] = dQuote + vData + dQuote;
				
			} else if (t_query.LayerFieldType[theIndex]=="91") {
				// a Date field - must be formatted
				var theDateObj = new Date(parseFloat(t_query.selectData[i].substring(startpos,endpos)));
				
				var d = theDateObj.toUTCString();
				sampleList[i] = d.replace(/GMT|UTC/,"");
				theDateObj = null;
				
			} else {
				// numeric or boolean field - no quotes or formatting
				sampleList[i] = t_query.selectData[i].substring(startpos,endpos);
			}
		}
		valueTitle = t_query.buttonList[3];
	}
	
	function addString() {
		lastExpr = document.QueryStuff.QueryString.value;
		qField = document.QueryStuff.QueryField.options[document.QueryStuff.QueryField.selectedIndex].value;
		var qOperator = document.QueryStuff.QueryOperator.options[document.QueryStuff.QueryOperator.selectedIndex].value;
		var isDateField = false;
		var fNum = document.QueryStuff.QueryField.selectedIndex;
		var qString = "";
		if (t_query.showSampleValues) {
			qString = document.QueryStuff.QueryValue.options[document.QueryStuff.QueryValue.selectedIndex].value;
		} else {
			qString = document.QueryStuff.QueryValue.value;
		}
		if (t_query.LayerFieldType[fNum].indexOf("12",0)!=-1) {
			if (t_query.queryCaseInsensitive) {
				// make case insensitive
				qString = qString.toUpperCase();
				qField = "UPPER(" + qField + ")";
				// make case insensitive end
			}
			if (qString.indexOf(dQuote)==-1) {
				qString = dQuote + qString + dQuote;
			}
		}
		if (t_query.LayerFieldType[fNum].indexOf("91",0)!=-1) {
			// field used is a date field
			isDateField = true;
			if (t_query.isArcMapService) {
				// if it is also in an ArcMap Service
				qString = t_query.formatDate(qString);
			} else {
				// or it is everything else, so format accordingly
				qString = "{ts \"" + t_query.formatDate(qString) + "\"}";
			}
		}
		if ((t_query.LayerFieldType[fNum].indexOf("4",0)!=-1) || 	(t_query.LayerFieldType[fNum].indexOf("8",0)!=-1) || 	(t_query.LayerFieldType[fNum].indexOf("6",0)!=-1) || (t_query.LayerFieldType[fNum].indexOf("5",0)!=-1)) {						
			qString = t_query.convertDecimal(qString);
		}
		var qString2 = document.QueryStuff.QueryString.value;
		var theString;
		if ((isDateField) && (t_query.isArcMapService)) {
			// if using a date field, make the sql work if in an ArcMap Service
				// is the service using a Personal Database?.... isPersonalDatabase is set in ArcIMSparam.js
			if (t_query.isPersonalDatabase) {
				// set syntax for Personal Database layers
				theString = "[" + qField + "] " + qOperator + " #" + qString + "# "; // code for Personal Geodatabase ArcMap Service layers			
			} else {
				// set syntax for layers from all other ArcMap sources
				theString = qField + " " + qOperator + " date \"" + qString + "\" "; // code for non-Personal Geodatabase ArcMap Service layers
			}
		} else {
			// not a date field in an ArcMap Service
			theString =  qField + " " + qOperator + " " + qString;
		}
		document.QueryStuff.QueryString.value = qString2 + theString;
		currExpr = document.QueryStuff.QueryString.value;
	}
	function sendQuery() {
		var theString = document.QueryStuff.QueryString.value;
		if (theString!="") {
			var ary = new Array("<",">","="," LIKE "," like "," IS "," is ");
			var va = 0;
			var arylen = ary.length;
			for (i=0;i<arylen;i++){
				a = ary[i]
				s = theString.search(a)
				va = va + s 
			}
			if (va == -7){
				alert(t_query.msgList[109]);
			} else {
				sampleList=null;
				t_query.sendQueryString(theString);
				t=null;
			}
		} else {
			alert(t_query.msgList[110]);
		}
	}
	function addAnd() {
		lastExpr = document.QueryStuff.QueryString.value;
		var qString2 = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = qString2 + " AND ";
		currExpr = document.QueryStuff.QueryString.value;
	}
	function addOr() {
		lastExpr = document.QueryStuff.QueryString.value;
		var qString2 = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = qString2 + " OR ";
		currExpr = document.QueryStuff.QueryString.value;
	}
	function addNot() {
		lastExpr = document.QueryStuff.QueryString.value;
		var qString2 = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = qString2 + "NOT ";
		currExpr = document.QueryStuff.QueryString.value;
	}
	function addLeftPara() {
		lastExpr = document.QueryStuff.QueryString.value;
		var qString2 = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = qString2 + "(";
		currExpr = document.QueryStuff.QueryString.value;
	}
	function addRightPara() {
		lastExpr = document.QueryStuff.QueryString.value;
		var qString2 = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = qString2 + ")";
		currExpr = document.QueryStuff.QueryString.value;
	}
	function undoString() {
		currExpr = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = lastExpr;
		t_query.setQueryString = document.QueryStuff.QueryString.value;
		lastExpr = currExpr;
	}
	function clearString() {
		lastExpr = document.QueryStuff.QueryString.value;
		document.QueryStuff.QueryString.value = "";	
		t_query.setQueryString = "";
	}
	function setUp() {
		if (t_query.showSampleValues) {
			t_query.fieldIndex = document.QueryStuff.QueryField.selectedIndex;
			t_query.setQueryString = document.QueryStuff.QueryString.value;
			var theField = t_query.LayerFields[t_query.fieldIndex];
			//alert(theField);
			t_query.tempGetSamples(theField);
			t_query.writeQueryForm();
		}
	}
	function changeToSamples() {
		t_query.fieldIndex = document.QueryStuff.QueryField.selectedIndex;
		t_query.setQueryString = document.QueryStuff.QueryString.value;
		t_query.tempGetSamples(t_query.LayerFields[t_query.fieldIndex]);
	}
	function toggleCaseInsens(){
		t_query.queryCaseInsensitive = document.QueryStuff.setCaseInsensitive.checked;
	}
	
		document.writeln('		</head><body link="Blue" vlink="Blue" alink="Blue" leftmargin=0 topmargin=0 bgcolor="' + t_query.textFrameBackColor + '" onload="window.focus(); ' + t2_query + '.queryOpen=true;" onunload="' + t2_query + '.queryOpen=false;">');
		document.writeln('			<center>');
		document.writeln('			<form name="QueryStuff" onsubmit="sendQuery();return false;">');
		document.writeln('			<font face="Arial" size="-3">');
		document.writeln('			<table border="0" cellspacing="0" cellpadding="2" width=100%>');
		document.writeln('			<tr><td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '"><font face="Arial" size="-2">' + t_query.msgList[72] + '</font></td>');
		document.writeln('			<td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '"><font face="Arial" size="-2">' + t_query.msgList[73] + '</font></td>');
		document.writeln('			<td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '"><font face="Arial" size="-2">' + valueTitle + '</font></td>');
		document.writeln('			<td rowspan="2" align="CENTER" bgcolor="Silver">');
		document.writeln('			<input type="button" name="theAnd" value=" And " onclick="addAnd()">');
		document.writeln('			<input type="button" name="theOr" value=" Or " onclick="addOr()"><br>');
		document.writeln('			<input type="button" name="theNot" value=" Not " onclick="addNot()">');
		document.writeln('			<input type="button" name="theLeft" value="  (  " onclick="addLeftPara()">');
		document.writeln('			<input type="button" name="theRight" value="  )  " onclick="addRightPara()">');
		document.writeln('			</td>');
			
		document.writeln('			</tr>');
		document.writeln('			<tr><td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '">');
			document.writeln('			<select name="QueryField" onchange="setUp();">');
			for (var i=0;i<t_query.LayerFieldCount;i++) {
				document.write('<option value="' + t_query.LayerFields[i] + '"');
				if (i==t_query.fieldIndex) document.write(' selected');
				
				// Put Field Alias in form if present
                if (t_query.useFieldAlias) {
					if (t_query.fieldAliasList[t_query.ActiveLayerIndex].length>0) {
	                     var start=t_query.fieldAliasList[t_query.ActiveLayerIndex].indexOf(t_query.LayerFields[i]+':');
	                     if (start == -1) {
			 				alias=t_query.LayerFields[i];
	                     } else {
	                          start=start+t_query.LayerFields[i].length+1;
	                          var end=t_query.fieldAliasList[t_query.ActiveLayerIndex].indexOf("|",start);
	                          if (end == -1) end = t_query.fieldAliasList[t_query.ActiveLayerIndex].length;
	                          else end=end-start;
	                          alias=t_query.fieldAliasList[t_query.ActiveLayerIndex].substr(start,end);
	                     }
	                     document.writeln('>'+alias);
					} else {
						document.writeln('>' + t_query.LayerFields[i]);
					}
                } else {
					document.writeln('>' + t_query.LayerFields[i]);
				}
				// end of Field Alias stuff
				
			}
			document.writeln('			</select>');
		document.writeln('			</td><td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '">');
		document.writeln('			<select name="QueryOperator">');
		document.writeln('			<OPTION selected value=" = ">=');
		document.writeln('			<option value=" < ">&lt;');
		document.writeln('			<option value=" > ">&gt;');
		document.writeln('			<option value=" <= ">&lt;=');
		document.writeln('			<option value=" >= ">&gt;=');
		document.writeln('			<option value=" LIKE ">LIKE');
		//document.writeln('			<option value=" CN ">CN	');
		document.writeln('			</select>');
	             
		document.writeln('			</td><td align="CENTER" bgcolor="' + t_query.textFrameBackColor + '">');
			
		if (t_query.showSampleValues) {
			document.writeln('			<select name="QueryValue">');
				for (var i=0;i<SampleCount;i++) {
					//document.writeln('<option value=\'' + sampleList[i] + '\'>' + unescape(sampleList[i]));
					tempString = t_query.parseEntity(sampleList[i]);
					tempString = tempString.replace(/ /g, "&nbsp;");
					document.writeln('<option value=\'' + sampleList[i] + '\'>' + tempString);
				}
			document.writeln('			</select>');
	    } else {
			document.writeln('<input name="QueryValue" size="25" maxlength="1000" >');
			document.writeln('			&nbsp;&nbsp;<input type="button" name="makeList" value="' + t_query.buttonList[4] + '" onclick="changeToSamples()">');
			document.writeln('			</td>');
		}         
		document.writeln('			</td>');
		document.writeln('			</tr>');
		document.writeln('			<tr><td colspan="4" align="center" bgcolor="Black">');
		document.writeln('			<input type="button" name="addIt" value="' + t_query.buttonList[5] + '" onclick="addString()">');
		document.writeln('			<input type="Text" name="QueryString" size="50" value=\'' + t_query.setQueryString + '\'><br>');
		//document.write('			<font face="Arial,Helvetica,sans-serif" size="-2" color="White"><input type="checkbox" name="setCaseInsensitive" value="yes"');
		//if (t_query.queryCaseInsensitive) document.write(' checked');
		//document.writeln(' onchange="toggleCaseInsens()">Make Query Case Insensitive&nbsp;&nbsp;</font>');
		document.writeln('			<input type="submit" value="' + t_query.buttonList[6] + '" name="submit">'); 
		document.writeln('			<input type="button" name="UnDo" value="' + t_query.buttonList[7] + '" onclick="undoString()">');
		document.writeln('			<input type="button" name="Clear" value="' + t_query.buttonList[8] + '" onclick="clearString()">');
		document.writeln('			</td></tr>');
		document.writeln('			</table>');
		document.writeln('			</font></center></FORM></body>');

</script>
</html>

⌨️ 快捷键说明

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