📄 table.js
字号:
return content;
}
function getFieldValue(fieldId){
var content;
if(!fieldNameArray["fields"][fieldId]["display"] || fieldNameArray["fields"][key]["display"] == ""){
alert("获取服务器数据错误");
return;
}
//设置该域数据是那种类型(数值|非数值)
_set_operator(fieldNameArray["fields"][fieldId]["type"]);
var display = fieldNameArray["fields"][fieldId]["display"];
if(display == "list"){
content = "<select flag=\"FieldValue\">";
if(fieldNameArray["fields"][fieldId]['list']){
for(var i = 0; i < fieldNameArray["fields"][fieldId]['list'].length; i ++){
content += "<option value=\"";
if(fieldNameArray["fields"][fieldId]['list'][i]){
var val = fieldNameArray["fields"][fieldId]['list'][i]["value"] ? fieldNameArray["fields"][fieldId]['list'][i]["value"] : "";
content += (val == null || !val) ? val : val;
}
content += "\">";
if(fieldNameArray["fields"][fieldId]['list'][i]){
var text = fieldNameArray["fields"][fieldId]['list'][i]["text"] ? fieldNameArray["fields"][fieldId]['list'][i]["text"] : ""
content += (!text || text == null) ? "" : text ;
}
content += "</option>";
}
}
content += "</select>";
} else if(display == "text"){
content = "<input type=\"text\"";
if(fieldNameArray["fields"][fieldId]['text'] && fieldNameArray["fields"][fieldId]['text']["value"]){
content += " value=\""+fieldNameArray["fields"][fieldId]['text']["value"]+"\"";
}
if(fieldNameArray["fields"][fieldId]['text'] && fieldNameArray["fields"][fieldId]['text']["size"]){
content += "size=\""+fieldNameArray["fields"][fieldId]['text']["size"]+"\"";
}
if(fieldNameArray["fields"][fieldId]['text'] && fieldNameArray["fields"][fieldId]['text']["length"]){
content += " maxlength=\""+fieldNameArray["fields"][fieldId]['text']["length"]+"\"";
}
content += " />";
} else if(display == "window"){
if(!fieldNameArray["fields"][fieldId]["window"]["readonly"] || fieldNameArray["fields"][fieldId]["window"]["readonly"] == "true"){
content = "<input type=\"hidden\" name=\"windowId\" />";
content +="<input type=\"text\" name=\"windowName\"";///> ";
content += " readOnly=true";
if(fieldNameArray["fields"][fieldId]["window"]){
if(fieldNameArray["fields"][fieldId]["window"]["href"]){
content += " flag=\"OpenPopWindowByUrl\" winUrl=\""+fieldNameArray["fields"][fieldId]["window"]["href"]+"\" ";
} else if(fieldNameArray["fields"][fieldId]["window"]["javascript"]){
content += " flag=\"OpenPopWindowByScript\" javascript=\""+fieldNameArray["fields"][fieldId]["window"]["javascript"]+"\" ";
}
}
content += " />";
} else if(fieldNameArray["fields"][fieldId]["window"]["readonly"] && fieldNameArray["fields"][fieldId]["window"]["readonly"] == "false") {
content = "<input type=\"text\" name=\"windowId\" />";
content +="<input type=\"hidden\" name=\"windowName\"/>";
content +="<input type=\"Image\" src=\"../images/popupSelector.gif\" ";
if(fieldNameArray["fields"][fieldId]["window"]){
if(fieldNameArray["fields"][fieldId]["window"]["href"]){
content += " flag=\"OpenPopWindowByUrl\" winUrl=\""+fieldNameArray["fields"][fieldId]["window"]["href"]+"\" ";
} else if(fieldNameArray["fields"][fieldId]["window"]["javascript"]){
content += " flag=\"OpenPopWindowByScript\" javascript=\""+fieldNameArray["fields"][fieldId]["window"]["javascript"]+"\" ";
}
}
content += " />";
}
} else if(display == "date"){
content = "<input type=\"text\" dispName=\"" + fieldNameArray["fields"][fieldId]["name"] + "\" dataType=\"日期\" ";
if(fieldNameArray["fields"][fieldId]["date"]){
if(fieldNameArray["fields"][fieldId]["date"]["value"]){
content +=" value=\""+fieldNameArray["fields"][fieldId]["date"]["value"]+"\"";
}
if(fieldNameArray["fields"][fieldId]["date"]["format"]){
content +=" format=\""+fieldNameArray["fields"][fieldId]["date"]["format"]+"\"";
}
content +=" onClick=\"popUpCalendar(this, this, ";
if(fieldNameArray["fields"][fieldId]["date"]["format"]){
content +="'"+fieldNameArray["fields"][fieldId]["date"]["format"]+"'"
} else {
content +="'yyyy-mm-dd'";
}
content +=")\" />";
} else {
content +=" onClick=\"popUpCalendar(this, this, 'yyyy-mm-dd')\" />";
}
}
return content;
}
function _select_all(sel){
var isChecked = sel.checked;
var table = element.document.getElementById(tableId);
for(var i = 1; i < table.rows.length; i ++){
var perCheck = table.rows[i].cells[0].document.getElementsByTagName("INPUT");
if(isChecked && perCheck[0].type == "checkbox"){
table.rows[i].cells[0].innerHTML = selectBoxChecked;
}else if(!isChecked && perCheck[0].type == "checkbox"){
table.rows[i].cells[0].innerHTML = selectBoxNoChecked;
}
}
}
function _delete_all_row(){
var table = element.document.getElementById(tableId);
if(table.rows.length > 1){
table.deleteRow(1);
_delete_all_row();
}
}
function _delete_selected_row(){
var table = element.document.getElementById(tableId);
var i = 0;
for(i = 1; i < table.rows.length; i ++){
var perCheckbox = table.rows[i].cells[0].document.getElementsByTagName("INPUT");
var cellInnerHTML = table.rows[i].cells[0].innerHTML;
if(cellInnerHTML.indexOf("CHECKED") > -1 ){
break;
}
}
table.deleteRow(i);
var tempTable = element.document.getElementById(tableId);
if(tempTable.rows.length > 1){
_delete_selected_row();
}
}
function _get_qualification(qlType){
//获得table对象
var obj = element.document.getElementById(tableId);
if(obj.rows.length <= 1){
//alert("没有条件");
return;
}
//判断该对象的逻辑符号是否匹配
if(!isRightLogic(obj)){
return;
}
var hqlFromArray = new Array();
var hqlFromAliasArray = new Array();
var hqlJoinArray = new Array();
var sqlFromAliasArray = new Array();
//组装where部门的hql或者sql
var fieldWhere = "";
for(var i = 1; i < obj.rows.length; i ++){
//获得前括号
var preBracket = obj.rows[i].cells[1].getElementsByTagName("SELECT")[0].value;
//获得字段名称的值
var fieldName = obj.rows[i].cells[2].getElementsByTagName("SELECT");
var fieldId = fieldName[0].options[fieldName[0].selectedIndex].fieldId;
var property = fieldName[0].options[fieldName[0].selectedIndex].property;
var column = fieldName[0].options[fieldName[0].selectedIndex].column;
var addtional = fieldName[0].options[fieldName[0].selectedIndex].addtional;
var fieldType = fieldName[0].options[fieldName[0].selectedIndex].fieldType;
var fieldHql = fieldName[0].options[fieldName[0].selectedIndex].fieldHql;
var fieldSql = fieldName[0].options[fieldName[0].selectedIndex].fieldSql;
//获得运算符
var operatorValue = obj.rows[i].cells[3].getElementsByTagName("SELECT")[0].value;
//获取字段值
var fieldValueObj = obj.rows[i].cells[4].getElementsByTagName("SELECT");
if(!fieldValueObj || !fieldValueObj[0]){
fieldValueObj = obj.rows[i].cells[4].getElementsByTagName("INPUT");
} else {
}
//获取当前这条条件的所属对象或者表如:lzbasecodes.codeUuid
var fieldNameValue = property;
if(qlType == "hql") {
if(fieldType == "date"){
fieldNameValue = "to_char("+property+",'";
if(fieldValueObj[0].format && fieldValueObj[0].format != ""){
fieldNameValue += fieldValueObj[0].format;
} else {
fieldNameValue += "yyyy-mm-dd";
}
fieldNameValue += "')"
}
} else if(qlType == "sql") {
fieldNameValue = column;
}
var fieldValue = fieldValueObj[0].value;
//根据数据类型和运算符来组合字段值
if(fieldType == "string"){
if(operatorValue.indexOf("like") > -1){
fieldValue = "'%"+fieldValueObj[0].value+"%'";
} else {
fieldValue = "'"+fieldValueObj[0].value+"'";
}
} else if(fieldType == "date") {
if(qlType == "hql"){
fieldValue = "'"+fieldValueObj[0].value+"'";
} else if(qlType == "sql"){
fieldValue = "TO_TIMESTAMP ('"+fieldValueObj[0].value+"', '";
if(fieldValueObj.format && fieldValueObj[0].format != ""){
fieldValue += fieldValueObj[0].format;
} else {
fieldValue += "YYYY-MM-DD";
}
fieldValue +=" HH:MI:SS')";
}
}
//获取后括号
var behindBracket = obj.rows[i].cells[5].getElementsByTagName("SELECT")[0].value;
//获取逻辑符号
var logicSymbol = obj.rows[i].cells[6].getElementsByTagName("SELECT")[0].value;
if(!fieldValueObj[0].value || fieldValueObj[0].value == ""){
fieldWhere += " "+preBracket+" 1=1 " + behindBracket+" "+logicSymbol;
continue;
}
if(addtional && addtional == "true"){
var addtionalValue;
if(qlType == "hql" && fieldHql){
addtionalValue = fieldHql;
addtionalValue = addtionalValue.replace("#"+property+"#"," "+operatorValue+" " + fieldValue+" ");
} else if(qlType == "sql" && fieldSql){
addtionalValue = fieldSql;
addtionalValue = addtionalValue.replace("#"+column+"#"," "+operatorValue+" " + fieldValue+" ");
}
fieldWhere += " "+preBracket+" " + addtionalValue +" " + behindBracket + " " + logicSymbol;
} else {
fieldWhere += " "+preBracket+" " + fieldNameValue+" "+ operatorValue+" " + fieldValue+" " + behindBracket+" "+logicSymbol;
}
}
var select="",from ="",where="";
if( qlType == "hql" || qlType == undefined || qlType == "" || qlType == null){
select = fieldNameArray["hql-select"] ? fieldNameArray["hql-select"] : "";
from = fieldNameArray["hql-from"] ? fieldNameArray["hql-from"] : "";
if(from.indexOf("from") == -1 && from.indexOf("FROM") == -1){
from = " from ".concat(from);
}
where = fieldNameArray["hql-where"] ? fieldNameArray["hql-where"] : "";
if(where.indexOf("where") == -1 && where.indexOf("WHERE") == -1){
where = " where ".concat(where);
}
} else if( qlType == "sql"){
select = fieldNameArray["sql-select"] ? fieldNameArray["sql-select"] : "";
if(select.indexOf("select") == -1 && from.indexOf("SELECT") == -1){
select = " select * ".concat(select);
}
from = fieldNameArray["sql-from"] ? fieldNameArray["sql-from"] : "";
if(from.indexOf("from") == -1 && from.indexOf("FROM") == -1){
from = " from ".concat(from);
}
where = fieldNameArray["sql-where"] ? fieldNameArray["sql-where"] : "";
if(where.indexOf("where") == -1 && where.indexOf("WHERE") == -1){
where = " where ".concat(where);
}
}
var tempWhere = (where.trim()).replace("where","");
if(tempWhere){
if(tempWhere.length > 0){
var orLogic = tempWhere.substring(tempWhere.length - 2,tempWhere.length);
if(orLogic.toLowerCase() == "or"){
if( !fieldWhere && fieldWhere.length <= 0){
where += " 1=1 "
}
} else {
var andLogic = tempWhere.substring(tempWhere.length - 3,tempWhere.length);
if(andLogic.toLowerCase() == "and" ){
if(!fieldWhere || fieldWhere.length <= 0){
where += " 1=1 "
}
} else {
if(fieldWhere && fieldWhere.length > 0){
where += " and "
}
}
}
}
} else {
if(!fieldWhere || fieldWhere.length <= 0){
where += " 1=1 "
}
}
var sentence = (select ? select : "") +
(from ? from : "") +
(where ? where : "") +
(fieldWhere ? "("+fieldWhere+")" : "");
if(!isRightExpression(sentence)){
return;
}
return sentence;
}
function _get_hql(){
return _get_qualification("hql");
}
function _get_sql(){
return _get_qualification("sql");
}
function _set_operator(type,obj){
if(type){
if(type == "string"){
operator = operatorString;
} else if(type == "status") {
operator = operatorStatus;
} else {
operator = operatorForNotString;
}
} else {
operator = operatorString;
}
if(obj){
obj.parentElement.parentElement.cells[3].innerHTML = operator;
}
}
function _set_field_value(obj){
obj.parentElement.parentElement.cells[4].innerHTML = getFieldValue(obj.options[obj.selectedIndex].fieldId);
}
function isRightLogic(obj){
if((obj.rows[obj.rows.length - 1].cells[6].getElementsByTagName("SELECT"))[0].value != ""){
alert("最后一个逻辑符号只能为空");
return false;
}
for(var i = 1; i < obj.rows.length - 1; i ++){
var logic = obj.rows[i].cells[6].getElementsByTagName("SELECT");
if(logic[0].value == ""){
alert("缺少逻辑符号");
return false;
}
}
return true;
}
function isRightExpression(expression){
var tempExpression = expression;
var eArray =tempExpression.split("");
var stack = new Array();
for(var i = 0; i < eArray.length; i ++){
if(eArray[i] == '('){
stack.push('(');
} else if(eArray[i] == ')'){
if(stack.pop() == undefined){
alert("括号不匹配");
return false;
}
}
}
if(stack.length > 0) {
alert("括号不匹配");
return false;
}
return true;
}
function _open_popwindow(obj){
var parameterWindows = window.showModalDialog(obj.winUrl);
var value = parameterWindows['id'];
var text = parameterWindows['name'];
if(!value){
value = parameterWindows[0]['id'];
}
if(!text){
text = parameterWindows[0]['name'];
}
if( value && text ){
var inputs = obj.parentElement.getElementsByTagName("INPUT");
for(var i = 0; i < inputs.length ; i ++){
if(inputs[i].name == "windowId"){
inputs[i].value = value;
}
if(inputs[i].name == "windowName"){
inputs[i].value = text;
}
}
}
}
function _execute_javascript(obj){
var parameterWindows = eval(obj.javascript);
var value = parameterWindows['id'];
var text = parameterWindows['name'];
if(!value){
value = parameterWindows[0]['id'];
}
if(!text){
text = parameterWindows[0]['name'];
}
if( value && text ){
var inputs = obj.parentElement.getElementsByTagName("INPUT");
for(var i = 0; i < inputs.length ; i ++){
if(inputs[i].name == "windowId"){
inputs[i].value = value;
}
if(inputs[i].name == "windowName"){
inputs[i].value = text;
}
}
}
}
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim = function()
{
return this.replace(/(^\s*)/g, "");
}
String.prototype.rtrim = function()
{
return this.replace(/(\s*$)/g, "");
}
function killErrors() {
return true;
}
window.onerror = killErrors;
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -