📄 table.js
字号:
<PUBLIC:COMPONENT TAGNAME="QueryTable" id="" >
<!--属性定义-->
<PUBLIC:PROPERTY NAME="typeId" PUT="setTypeid" VALUE="" />
<PUBLIC:PROPERTY NAME="name" PUT="setName" VALUE="" />
<!--关联客户端事件-->
<PUBLIC:ATTACH EVENT="ondocumentready" ONEVENT="_table_on_load()"/>
<!--公用方法定义-->
<PUBLIC:METHOD NAME="getHql" INTERNALNAME="_get_hql" />
<PUBLIC:METHOD NAME="getSql" INTERNALNAME="_get_sql" />
</PUBLIC:COMPONENT>
<!-- htc脚本 -->
<script language="javascript">
this.onclick = _table_on_click;
this.onkeydown = _table_on_keydown;
this.onchange = _table_on_change;
var tableId = "tableId_"+this.id;
var outerTableTitle = "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
+ "<tr align=\"left\">"
+ " <td cospan=\"20\" align=\"left\" width=\"10\">"
+ " <table border=\"0\" style=\"border-top: 1px solid #87b0db;border-left: 1px solid #87b0db;border-right: 1px solid #87b0db;width:200px\">"
+ " <tr>"
+ " <td>"
+ " <input type=\"button\" name=\"AddButton\" flag=\"Add\" value=\"增加\" class=\"Button\" onclick='_table_on_click()' title=\"增加一个查询条件\" />"
+ " <input type=\"button\" name=\"DeleteSelectedButton\" flag=\"DeleteSelectedRow\" value=\"删除\" class=\"Button\" onclick=\"deleteSelectedRow()\" title=\"删除选中的查询条件\" />"
+ " <input type=\"button\" name=\"DeleteAllButton\" flag=\"DeleteAll\" value=\"全部删除\" class=\"Button\" onclick=\"deleteAllRow()\" title=\"删除所有的查询条件\" />"
+ " </td>"
+ " </tr>"
+ " </table>"
+ " </td>"
+ "</tr>"
+ "<tr>"
+ " <td>"
+"<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"commonTable\">"
+ "<tr>"
+ "<td>";
var outerTableFoot = "</td>"
+ "</tr>"
+ "</table>"
+ " </td>"
+ " </tr>"
+ "</table>";
var bodyTableTitle = "<table id=\""+tableId+"\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\">"
+ "<tr class=\"rowTitle\">"
+ "<td align=\"left\">选择</td>"
+ "<td align=\"left\">前括号</td>"
+ "<td align=\"left\">字段名称</td>"
+ "<td align=\"left\">运算符</td>"
+ "<td align=\"left\">字段值 </td>"
+ "<td align=\"left\">后括号</td>"
+ "<td align=\"left\">逻辑符</td>"
+ "</tr>" ;
var bodyTableFoot = "</td>"
+ "</tr>"
+ "</table>";
var selectBoxNoChecked = "<input type='checkbox' value='checkbox' />";
var selectBoxChecked = "<input checked type='checkbox' value='checkbox' />";
//前后括弧
var preBracket = "<select name=\"preBracket1\">"
+" <option>无</option>"
+" <option value=\"(\" selected=\"selected\">(</option>"
+"</select>";
var tailBracket = "<select name=\"preBracket1\">"
+" <option>无</option>"
+" <option value=\")\" selected=\"selected\">)</option>"
+"</select>";
var operator = "";
var operatorString = "<select>"
+ "<option value=\"like\" selected=\"selected\">包含</option>"
+ "<option value=\"not like\">不包含</option>"
+ "<option value=\"=\">等于</option>"
+ "<option value=\"<>\">不等于</option>"
+ "<option value=\"<\">大于</option>"
+ "<option value=\">\">小于</option>"
+ "<option value=\">=\">大于等于</option>"
+ "<option value=\"<=\">小于等于</option>"
+"</select>";
var operatorStatus = "<select>"
+ "<option value=\"=\" selected=\"selected\">等于</option>"
+"</select>";
var operatorForNotString = "<select>"
+ "<option value=\"=\" selected=\"selected\">等于</option>"
+ "<option value=\"<>\">不等于</option>"
+ "<option value=\">\">大于</option>"
+ "<option value=\"<\">小于</option>"
+ "<option value=\">=\">大于等于</option>"
+ "<option value=\"<=\">小于等于</option>"
+"</select>";
var logic = "<select>"
+" <option selected=\"selected\">无</option>"
+" <option value=\"and\" >并且</option>"
+" <option value=\"or\">或者</option>"
+ "</select>";
var fieldNameArray = new Array();
var defaultFieldId = "";
var selectHeader = "<select flag=\"FieldName\">";
var selectFooter = "</select>";
var typeId;
function setTypeId(value){
typeId = value;
}
function _table_on_load(){
send_request("commonQuery.xml?QueryTypeId="+typeId,null,null,_build_table);
}
//ajax XMLHttpRequest请求对象
var http_request = false;
function send_request(url,data,asynch,callback,name,pwd) {
//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) {
//Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('xml');
}
}else if(window.ActiveXObject) {
// IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("创建请求控件错误!");
return;
}
}
}
if (!http_request) {
// 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
if(callback != undefined || callback != null){
http_request.onreadystatechange = callback;
}
//确定发送请求的方式和URL以及是否同步执行下段代码
if(asynch != undefined || asynch != null){
http_request.open("GET", url, asynch);
}else{
http_request.open("GET", url, true);
}
http_request.send(data);
}
function parseXML(str){
if(!str || str == ""){
alert("你所请求的页面异常");
return ;
}
if(window.ActiveXObject){
var result = new ActiveXObject("microsoft.XMLDOM");
result.loadXML(str);
}else{
var parser = new DOMParser();
var result = parser.parseFromString(str, "text/xml");
}
return result ;
}
function _build_table(){
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var xmlDom = http_request.responseXML;
//parseXML(http_request.responseText);
if(!xmlDom){
alert("你所请求的页面异常");
return ;
}
var queryTypeArray = xmlDom.getElementsByTagName("query-type");
var queryType = queryTypeArray[0];
if(!queryType){
alert("你所请求的页面异常");
return ;
}
fieldNameArray["id"] = queryType.getAttribute("id");
fieldNameArray["name"] = queryType.getAttribute("name");
fieldNameArray["hql-select"] = queryType.getAttribute("hql-select");
fieldNameArray["sql-select"] = queryType.getAttribute("sql-select");
fieldNameArray["hql-from"] = queryType.getAttribute("hql-from");
fieldNameArray["sql-from"] = queryType.getAttribute("sql-from");
fieldNameArray["hql-where"] = queryType.getAttribute("hql-where");
fieldNameArray["sql-where"] = queryType.getAttribute("sql-where");
var dataArray = queryType.getElementsByTagName("field");
if(!dataArray && dataArray.length < 0){
alert("你所请求的页面异常");
return ;
}
if(dataArray && dataArray.length > 0){
fieldNameArray["fields"] = new Array();
for(var i = 0; i < dataArray.length; i ++){
var field = dataArray[i];
var fielId = field.getAttribute("id")
if(i == 0) {
defaultFieldId = fielId;
}
fieldNameArray["fields"][fielId] = new Array();
fieldNameArray["fields"][fielId]['name'] = field.getAttribute("name");
fieldNameArray["fields"][fielId]['property'] = field.getAttribute("property");
fieldNameArray["fields"][fielId]['column'] = field.getAttribute("column");
fieldNameArray["fields"][fielId]['addtional'] = field.getAttribute("addtional");
fieldNameArray["fields"][fielId]['type'] = field.getAttribute("type");
fieldNameArray["fields"][fielId]['field-hql'] = field.getAttribute("field-hql");
fieldNameArray["fields"][fielId]['field-sql'] = field.getAttribute("field-sql");
fieldNameArray["fields"][fielId]['display'] = field.getAttribute("display");
if(fieldNameArray["fields"][fielId]['display'] == "list"){
fieldNameArray["fields"][fielId]['list'] = new Array();
var select = field.getElementsByTagName("select") ? field.getElementsByTagName("select")[0] : undefind;
var selectOptions = select.getElementsByTagName("option");
if(selectOptions){
for(var j = 0; j < selectOptions.length ; j ++){
fieldNameArray["fields"][fielId]['list'][j] = new Array();
var val = selectOptions[j].getAttribute("value");
var text = selectOptions[j].getAttribute("text");
fieldNameArray["fields"][fielId]['list'][j]['value'] = (!val || val == null) ? "" : val;
fieldNameArray["fields"][fielId]['list'][j]['text'] = (!text || text == null) ? "" : text;
}
}
} else if(fieldNameArray["fields"][fielId]['display'] == "window"){
var win = field.getElementsByTagName("window") ? field.getElementsByTagName("window")[0] : undefind;
if(win){
fieldNameArray["fields"][fielId]['window'] = new Array();
fieldNameArray["fields"][fielId]['window']['href'] = win.getAttribute("href");
fieldNameArray["fields"][fielId]['window']['javascript'] = win.getAttribute("javascript");
fieldNameArray["fields"][fielId]['window']['readonly'] = win.getAttribute("read_only");
}
} else if(fieldNameArray["fields"][fielId]['display'] == "date"){
var date = field.getElementsByTagName("date") ? field.getElementsByTagName("date")[0] : undefind;
if(date){
fieldNameArray["fields"][fielId]['date'] = new Array();
fieldNameArray["fields"][fielId]['date']['value'] = date.getAttribute("value");
fieldNameArray["fields"][fielId]['date']['format'] = date.getAttribute("format");
}
} else if(fieldNameArray["fields"][fielId]['display'] == "text"){
var text = field.getElementsByTagName("text") ? field.getElementsByTagName("text")[0] : undefind;
if(text){
fieldNameArray["fields"][fielId]['text'] = new Array();
fieldNameArray["fields"][fielId]['text']['value'] = text.getAttribute("value");
fieldNameArray["fields"][fielId]['text']['size'] = text.getAttribute("size");
fieldNameArray["fields"][fielId]['text']['length'] = text.getAttribute("length");
}
}
}
}
var innerHTML = outerTableTitle;
innerHTML += bodyTableTitle;
innerHTML += bodyTableFoot;
innerHTML += outerTableFoot;
element.innerHTML = innerHTML;
} else { //页面不正常
alert("您所请求的页面有异常");
}
}
}
function _table_on_click(){
var obj = event.srcElement;
if (obj.flag == "Add") {
_add_row(obj.flag);
}else if(obj.flag == "SelectAllSwitch"){
_select_all(obj);
}else if(obj.flag == "DeleteAll"){
_delete_all_row();
}else if(obj.flag == "DeleteSelectedRow"){
_delete_selected_row();
}else if(obj.flag == "Query"){
_get_qualification();
}else if(obj.flag == "FieldName"){
_set_operator(obj.options[obj.selectedIndex].fieldType,obj);
_set_field_value(obj);
}else if(obj.flag == "OpenPopWindowByUrl"){
_open_popwindow(obj);
}else if(obj.flag == "OpenPopWindowByScript"){
_execute_javascript(obj);
}
processCalendar();
}
function _table_on_keydown(){
var obj = event.srcElement;
if(obj.flag == "FieldName"){
_set_field_value(obj);
}
}
function _table_on_change(){
var obj = event.srcElement;
if(obj.flag == "FieldName"){
_set_field_value(obj);
}
}
function _add_row(){
var obj = element.document.getElementById(tableId);
var newRow = obj.insertRow();
newRow.onfocus = function(){
this.style.backgroundColor = "#D3E6FA";
}
newRow.onblur = function(){
this.style.backgroundColor = "#FFFFFF";
}
var selectBoxCell=newRow.insertCell(0);
selectBoxCell.align ="left";
selectBoxCell.id = "checkebox"+obj.rows.length;
selectBoxCell.innerHTML = selectBoxNoChecked;
var preBracketCell=newRow.insertCell(1);
preBracketCell.align ="left";
preBracketCell.innerHTML = preBracket;
var fieldNameCell=newRow.insertCell(2);
fieldNameCell.align ="left";
fieldNameCell.innerHTML = getFieldName();
var fieldValueInnerHTML = getFieldValue(defaultFieldId);
var operatorCell=newRow.insertCell(3);
operatorCell.align ="left";
operatorCell.innerHTML = operator;
var fieldValueCell=newRow.insertCell(4);
fieldValueCell.align ="left";
fieldValueCell.innerHTML = fieldValueInnerHTML;
var tailBracketCell=newRow.insertCell(5);
tailBracketCell.align ="left";
tailBracketCell.innerHTML = tailBracket;
var logicCell=newRow.insertCell(6);
logicCell.align ="left";
logicCell.innerHTML = logic;
}
function getFieldName(){
var content = selectHeader;
for(key in fieldNameArray["fields"]){
var fieldId = key;
var fieldName = fieldNameArray["fields"][key]["name"];
var property = fieldNameArray["fields"][key]["property"];
var column = fieldNameArray["fields"][key]["column"];
var addtional = fieldNameArray["fields"][key]["addtional"];
var fieldType = fieldNameArray["fields"][key]["type"];
var fieldHql = fieldNameArray["fields"][key]["field-hql"];
var fieldSql = fieldNameArray["fields"][key]["field-sql"];
var display = fieldNameArray["fields"][key]["display"];
content += "<option ";
if(fieldId)
{
content +=" fieldId=\""+fieldId+"\" ";
}
if(fieldName)
{
content +=" fieldName=\""+fieldName+"\" ";
}
if(property)
{
content +=" property=\""+property+"\" ";
}
if(column)
{
content +=" column=\""+column+"\" ";
}
if(addtional)
{
content +=" addtional=\""+addtional+"\" ";
}
if(fieldType)
{
content +=" fieldType=\""+fieldType+"\" ";
}
if(fieldHql)
{
content +=" fieldHql=\""+fieldHql+"\" ";
}
if(fieldSql)
{
content +=" fieldSql=\""+fieldSql+"\" ";
}
if(display)
{
content +=" display=\""+display+"\" ";
}
content += fieldId ? fieldId : "\"\"";
if(fieldId == defaultFieldId){
content += " selected ";
}
content +=" >";
content += fieldName ? fieldName : "\"\"";
content += "</option>";
}
content += selectFooter;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -