/**
* 字符串忽略前导空白和尾部空白
* @returns
*/
String.prototype.trim = function(){return this.replace(/(^[\s]*)|([\s]*$)/g, "");};
/**
* 字符串忽略前导空白
* @returns
*/
String.prototype.lTrim = function(){return this.replace(/(^[\s]*)/g, "");};
/**
* 字符串忽略尾部空白
* @returns
*/
String.prototype.rTrim = function(){return this.replace(/([\s]*$)/g, "");};
String.prototype.startsWith=function(startStr){var d=startStr.length;return (d>=0&&this.indexOf(startStr)==0)}
String.prototype.endsWith=function(endStr){var d=this.length-endStr.length;return (d>=0&&this.lastIndexOf(endStr)==d)}
if(typeof Array.indexOf != "function")
/**
* 对浏览器不支持Array.indexOf进行补充,
* @param arg 数组伪元素
* @param n 从当前数组的哪个位置开始查找,n ≥ 0,否则默认为0
* @returns 数组伪元素arg从当前数组第n个开始查找的位置,若没有匹配的,那么返回-1。
*/
Array.prototype.indexOf = function(arg, n){
var i = isNaN(n) || n < 0 ? 0 : n;
for(; i < this.length; i++) if(this[i] == arg) return i;
return -1;
};
/**
* 页面全局控制对象
*/
var AsControl = {
/**
* 获取默认Open窗体外观特征,参考浏览器方法window.open第三个参数features。
* 窗体的宽度和高度为屏幕的宽度和高度,并放置于屏幕的左上角,不显示工具条、菜单栏、状态栏,显示滚动条,能自由拉伸窗体等。
* 用“,”连接多个参数,用“=”建立键值关系
* @returns {String}
*/
_getDefaultOpenStyle:function() {
return "width="+screen.availWidth+"px,height="+screen.availHeight+"px,top=0,left=0,toolbar=no,scrollbars=yes,resizable=yes,status=no,menubar=no";
},
/**
* 获取Open窗体的外观特征,若sStyle有值返回sStyle,否者返回默认Open窗体的外观特征
* 参考#_getDefaultOpenStyle
* @param sStyle
* @returns
*/
_getOpenStyle:function(sStyle) {
if(typeof(sStyle)=="undefined" || sStyle=="")
return this._getDefaultOpenStyle();
else
return sStyle;
},
/**
* 获取默认Pop窗体外观特征,参考浏览器方法window.showModalDialog第三个参数features。
* 窗体的宽度和高度为屏幕的宽度和高度,不显示状态栏、帮助问号,能自由拉伸窗体等。
* 用“;”连接多个参数,用“:”建立键值关系
* @returns {String}
*/
_getDefaultDialogStyle:function() {
return "dialogWidth:"+screen.availWidth+"px;dialogHeight:"+screen.availHeight+"px;resizable:yes;maximize:yes;help:no;status:no;";
},
/**
* 获取Pop窗体的外观特征,若sStyle有值返回sStyle,否者返回默认Pop窗体的外观特征
* 参考#_getDefaultDialogStyle
* @param sStyle
* @returns
*/
_getDialogStyle:function(sStyle) {
if(typeof(sStyle)=="undefined" || sStyle=="")
return this._getDefaultDialogStyle();
else
return sStyle;
},
/**
* 编码参数
* @param sPara
* @returns
*/
_getParaString:function(sPara) {
if(typeof(sPara)=="undefined" || sPara=="") {
return "";
}
else if (sPara.substring(0,1)=="&") {
return encodeURI(encodeURI(sPara));
}
else {
return "&"+encodeURI(encodeURI(sPara));
}
},
/**
* 获取随机数
* @returns
* @belong AsControl
*/
randomNumber:function() {
return Math.abs(Math.sin(new Date().getTime())).toString().substr(2);
},
};
AsControl.postICMS = function(url,param){
let temp_form = document.createElement("form");
temp_form.action = url;
temp_form.target = "_blank";
temp_form.method = "post";
temp_form.style.display = "none";
let opt = document.createElement("textarea");
opt.name = 'data';
opt.value = param;
temp_form.appendChild(opt);
document.body.appendChild(temp_form);
temp_form.submit();
};
/**
* 通过Mozilla 的PDF阅读器在web上预览PDF文件
*/
AsControl.OpenPDF = function(sAttachmentPara,sStyle) {
if(typeof(sAttachmentPara)=="undefined" || sAttachmentPara=="") { alert("文件参数不能为空!"); return; }
var sPageURL = sWebRootPath+"/Frame/page/resources/pdfviewer/viewer.html";
sPageURL += "?file="+sWebRootPath+"/servlet/pdf/"+sAttachmentPara+"&CompClientID="+sCompClientID+"&randp="+this.randomNumber();
window.open(sPageURL,"_blank",this._getDialogStyle(sStyle));
};
AsControl.OpenObjectTab = function(sPara){
if(sPara.indexOf("ObjectType=")<0){alert("参数串必须有ObjectType定义!"); return;}
if(sPara.indexOf("ObjectNo=")<0){alert("参数串必须有ObjectNo定义!");return; }
this.OpenNewWin("/Frame/page/tools/object/ObjectTab.jsp", sPara);
};
AsControl.OpenObject = function(sObjectType,sObjectNo,sViewID,sStyle){
AsControl.PopComp("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sStyle);
};
AsControl.OpenTabObject = function(sObjectType,sObjectNo,sViewID){
var objectinfo =$.parseJSON(RunJspAjax("/Frame/page/tools/object/GetObjectInfo.jsp?ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID));
return this.OpenTab("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,objectinfo);
};
function openObjectInFrame(sObjectType,sObjectNo,sViewID,sFrameID){
AsControl.OpenComp("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sFrameID,"");
}
/**
* 打开页面sURL到对应窗口区域sTargetWindow。
* @param sURL 页面地址
* @param sPara 传递参数
* @param sTargetWindow 窗口区域
* @param sStyle 窗口区域外观特征(弹出窗口)
*/
AsControl.OpenPage = function(sURL,sPara,sTargetWindow,sStyle) {
if(typeof(sURL)=="undefined" || sURL=="") { alert("URL不能为空!"); return; }
if(sURL.indexOf("?")>=0){ alert("URL中存在\"?\"!"); return; }
if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!"); return; }
sTargetWindow = Layout.getRegionName(sTargetWindow);
var sWindowToUnload;
if(sTargetWindow==null || sTargetWindow=="_self"){
sWindowToUnload="self";
}else if(sTargetWindow=="_top"){
sWindowToUnload="top";
}else if(sTargetWindow=="_blank"){
sWindowToUnload="";
}else if(sTargetWindow=="_parent"){
sWindowToUnload="parent";
}else sWindowToUnload=sTargetWindow;
if(window.checkOpenUrlModified != false){
try{
var oWindow = eval(sWindowToUnload);
if(!AsControl.CheckWindowModified(oWindow)) return;
}catch(e){
try{if(!AsControl.CheckWindowModified(parent.frames[sWindowToUnload])) return;}catch(e2){}
}
}
var sPageURL=sWebRootPath+sURL; if(sURL.indexOf("?")<0) {sPageURL = sPageURL+"?"; } else if (sURL.substr(sURL.length-1)!="?"){sPageURL = sPageURL+"&";}
sPageURL = sPageURL + "CompClientID="+sCompClientID+this._getParaString(sPara)+"&randp="+this.randomNumber();
this.switchDiv(sTargetWindow);
return window.open(sPageURL,sTargetWindow,sStyle);
};
/**
* 以组件形式打开页面sURL到新Tab区域
* @param sURL 页面地址
* @param sPara 传递参数
* @param tabinfo 标签页信息JSON串,目前属性有 title,格式类似为{"title":"标签页标题"}
*/
AsControl.OpenTab = function(sURL,sPara,tabinfo) {
if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; }
var tWin = self;
do{
if(typeof tWin.addTabItem == "function"){
break;
}
if(tWin == tWin.parent) break;
tWin = tWin.parent;
}while(true);
if(typeof tWin.addTabItem == "function"){
var text;
if(tabinfo.title) text = tabinfo.title;
else text = sPara;
tWin.addTabItem(text, sURL,sPara);
} else {
this.OpenNewWin(sURL,sPara);
}
};
AsControl.colseCurTab=function(){
var tWin = self;
do{
if(typeof tWin.addTabItem == "function"){
break;
}
if(tWin == tWin.parent) break;
tWin = tWin.parent;
}while(true);
if(typeof tWin.closeCurTab == "function"){
tWin.closeCurTab();
}
}
/**
* 以组件形式打开页面sURL到新窗口区域
* @param sURL 页面地址
* @param sPara 传递参数
*/
AsControl.OpenNewWin = function(sURL,sPara) {
if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; }
var sCompPara = sPara;
while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]");
var sPageURL = sWebRootPath+"/RedirectorDialog?&TargetWindow=_blank&DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara);
this._OpenNewWin(sPageURL,"OpenCompNewWin");
};
AsControl._OpenNewWin = function(sURL,sID) {
var a = document.createElement('a');
a.setAttribute('href', sURL);
a.setAttribute('target', '_blank');
a.setAttribute('id', sID);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
AsControl._OpenIFrame = function(sURL,sIFrame) {
var a = document.createElement('a');
a.setAttribute('href', sURL);
a.setAttribute('target',sIFrame);
a.setAttribute('id', "ID_"+sIFrame);
document.body.appendChild(a);
var s="首页111"
a.click();
document.body.removeChild(a);
}
/**
* 以组件形式打开页面sURL到对应窗口区域sTargetWindow。
* @param sURL 页面地址
* @param sPara 传递参数
* @param sTargetWindow 窗口区域
* @param sStyle 窗口区域外观特征(弹出窗口)
*/
AsControl.OpenComp = function(sURL,sPara,sTargetWindow,sStyle) {
if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; }
sTargetWindow = Layout.getRegionName(sTargetWindow);
var sToDestroyClientID="";
var sWindowToUnload = sTargetWindow;
if(sTargetWindow=="_blank") {
return this.PopComp(sURL,sPara);
}else{
if(sTargetWindow==null || sTargetWindow=="_self") sWindowToUnload="self";
else if(sTargetWindow=="_top") sWindowToUnload="top";
var oWindow = null;
try{
oWindow = eval(sWindowToUnload);
sToDestroyClientID = oWindow.sCompClientID;
if (sWindowToUnload !="self" && sWindowToUnload !="top" && sToDestroyClientID==sCompClientID) sToDestroyClientID = "";
}catch(e){
sToDestroyClientID = "";
}
if(window.checkOpenUrlModified != false){
try{if(!AsControl.CheckWindowModified(oWindow)) return false;}catch(e1){
try{if(!AsControl.CheckWindowModified(parent.frames[sWindowToUnload])) return false;}catch(e2){}
}
}
}
if(typeof(sToDestroyClientID)=="undefined" || sToDestroyClientID=="") {sToDestroyClientID="&TargetWindow="+sTargetWindow;} else {sToDestroyClientID="&TargetWindow="+sTargetWindow+"&ToDestroyClientID="+sToDestroyClientID;}
var sPageURL = sWebRootPath + "/Redirector?OpenerClientID="+sCompClientID+sToDestroyClientID+"&ComponentURL="+sURL+this._getParaString(sPara);
this.switchDiv(sTargetWindow);
this._OpenIFrame(sPageURL,sTargetWindow);
};
/**
* 校验窗口内所有页面是否都未做修改
* @param win 被校验的窗口对象,如window、self、top或frames[name]等
* @returns {boolean} true 校验通过,false 校验不通过
*/
AsControl.CheckWindowModified = function(win){
if(typeof win.checkModified == "function" && !win.checkModified())
return false;
for(var i = 0; i < win.frames.length; i++){
if(!AsControl.CheckWindowModified(win.frames[i])) return false;
}
return true;
};
/**
* 对指定页面区域添加遮罩层
* 区域名称
*
* - _top 直接对全窗口进行遮罩
* - _self 对当前页面进行遮罩
* - sFrameName 首先寻找当前页面下的IFRAME进行匹配,否则向上找父层页面进行匹配,若寻找到那么遮罩住,否则不做处理
*
* @param sTargetWindow 区域名称
*
*/
AsControl.switchDiv = function(sTargetWindow) {
if(typeof sTargetWindow !== "string") return;
var frame = null;
if(sTargetWindow === "_top"){
frame = top;
}else if(sTargetWindow === "_self"){
frame = window;
}else{
var win = window;
while(true){
frame = win.frames[sTargetWindow];
if(frame) break;
if(win.parent === win) break;
win = win.parent;
}
if(!frame) return;
}
var doc = frame.document;
if(!doc || !doc.body) return;
//if($("#switch_page_mask", doc).length == 1) return;
if(document.getElementById("#switch_page_mask") != null) return;
var width = Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth);//-20;
var height = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight);//-20;
var board = $(""+
"
"+
"
页面切换中,请等待......"+
"
", doc).appendTo(doc.body);
setTimeout(function(){
try{
var span = $(">span", board).show().find(">span");
setInterval(function(){
try{
var time = parseInt(span.text(), 10);
if(isNaN(time)) time = 0;
span.text(++time);
}catch(e){}
}, 1000);
}catch(e){}
}, 500);
} ;
/**
* 弹出模态窗口打开页面sURL
* @param sURL 页面地址
* @param sPara 传递参数
* @param sStyle 模态窗口外观特征
* @param dialogArgs 模态窗口参数
* @returns {Any}
*/
AsControl.PopPage = function(sURL,sPara,sStyle,dialogArgs){
if(sURL.indexOf("?")>=0){
alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!");
return false;
}
var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString(sPara);
if (!window.showModalDialog) {alert("Because window.showModalDialog not supported So AsControl.PopPage is not supported!\n\rPlease replace AsDialog.PopPage()"); return;}
return window.showModalDialog(sPageURL,dialogArgs,this._getDialogStyle(sStyle));
};
/**
* 以组件形式弹出模态窗口打开页面sURL
* @param sURL 页面地址
* @param sPara 传递参数
* @param sStyle 模态窗口外观特征
* @param dialogArgs 模态窗口参数
* @returns {Any}
*/
AsControl.PopComp = function(sURL,sPara,sStyle,dialogArgs){
if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; }
var sCompPara = sPara;
while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]");
var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara);
if (!window.showModalDialog) {alert("Because window.showModalDialog not supported,So AsControl.PopComp is not supported!\n\rPlease replace AsDialog.PopView()"); return;}
return window.showModalDialog(sPageURL,dialogArgs,this._getDialogStyle(sStyle));
};
AsControl.OpenPageOld = function(sURL,sTargetWindow,sStyle) {
if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!");}
var sPageURL=sURL;
var sPara = "";
if(sURL.indexOf("?")>0) {
sPageURL = sURL.substring(0,sURL.indexOf("?"));
sPara = sURL.substring(sURL.indexOf("?")+1);
}
this.OpenPage(sPageURL, sPara, sTargetWindow,sStyle);
};
AsControl.PopPageOld = function(sURL,sStyle){
var sPageURL=sURL;
var sPara = "";
if(sURL.indexOf("?")>0) {
sPageURL = sURL.substring(0,sURL.indexOf("?"));
sPara = sURL.substring(sURL.indexOf("?")+1);
}
return this.PopPage(sPageURL, sPara, sStyle);
};
AsControl.OpenView = function(sURL,sPara,sTargetWindow,sStyle){ return this.OpenComp(sURL,sPara,sTargetWindow,sStyle);};
AsControl.PopView = function(sURL, sPara, sStyle, dialogArgs){ return this.PopComp(sURL, sPara, sStyle, dialogArgs);};
AsControl.DestroyComp = function (ToDestroyClientID) {
jQuery.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+ToDestroyClientID,async: false});
};
/**
* 运行空参数后台java方法
* @param ClassName 类路径字符串,且必须有空构造
* @param MethodName 调用方法名称,没有形参,且返回值必须是String类型
* @param Args 参数,格式为Field1=Value1,Field2=Value2,...,FieldN=ValueN,对应的ClassName中必须有方法setField1(String)、setField2(String)、...、 setFieldN(String)等
* @returns {String} 后台方法返回的字符串,或异常信息
*/
AsControl.RunJavaMethod = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName);
};
/**
* 运行Transaction Sqlca参数后台java方法
* @param ClassName 类路径字符串,且必须有空构造
* @param MethodName 调用方法名称,只有com.amarsoft.awe.util.Transaction形参,且返回值必须是String类型
* @param Args 参数,格式为Field1=Value1,Field2=Value2,...,FieldN=ValueN,对应的ClassName中必须有方法setField1(String)、setField2(String)、...、 setFieldN(String)等
* @returns {String} 后台方法返回的字符串,或异常信息
*/
AsControl.RunJavaMethodSqlca = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Sqlca"),ClassName);
};
AsControl.RunJavaMethodSqlcaCustom = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethodCustom(ClassName,MethodName,Args,"&ArgsObject=Sqlca"),ClassName);
};
/**
* 运行JBOTransaction Trans参数后台java方法
* @param ClassName 类路径字符串,且必须有空构造
* @param MethodName 调用方法名称,只有com.amarsoft.are.jbo.JBOTransaction形参,且返回值必须是String类型
* @param Args 参数,格式为Field1=Value1,Field2=Value2,...,FieldN=ValueN,对应的ClassName中必须有方法setField1(String)、setField2(String)、...、 setFieldN(String)等
* @returns {String} 后台方法返回的字符串,或异常信息
*/
AsControl.RunJavaMethodTrans = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Trans"),ClassName);
};
AsControl.RunJavaMethodTransCustom = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethodCustom(ClassName,MethodName,Args,"&ArgsObject=Trans"),ClassName);
};
/**
* 运行后台java方法
* @param ClassName 类路径字符串,且必须有空构造
* @param MethodName 调用方法名称,没有形参,且返回值必须是String类型
* @param Args 参数,格式为Field1=Value1,Field2=Value2,...,FieldN=ValueN,对应的ClassName中必须有方法setField1(String)、setField2(String)、...、 setFieldN(String)等
* @param Sychronized false同步;true异步;
* @returns {String} 后台方法返回的字符串,或异常信息
*/
AsControl.RunJavaMethodTransAsynch = function (ClassName,MethodName,Args,Sychronized) {
return AsControl.CallJavaMethodAsynch(ClassName,MethodName,Args,"&ArgsObject=Trans",Sychronized);
};
/**
* 重写自定义流程方法、请叫我张幕庆。
*/
AsControl.RewriteRunJavaMethodTrans = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.RewriteCallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=TransDadai&"+Args),ClassName);
};
/**
* 导出财务报表
* @param sObjectType
* @param sObjectNo
* @param sReportScope
* @param sReportDate
* @returns
*/
AsControl.ExportFinanceReport = function(sObjectType, sObjectNo, sReportScope, sReportDate){
var sParam;
if(arguments.length == 1) sParam = "ReportNo="+arguments[0];
else sParam = "ObjectType="+ObjectType+",ObjectNo="+sObjectNo+",ReportScope="+sReportScope+",ReportDate="+sReportDate;
var sReportExcelPath = AsControl.RunJavaMethodSqlca("com.amarsoft.app.util.ExportExcel", "run", sParam);
if(!sReportExcelPath) return;
if(!frames["exportfsframe"]) $("").appendTo("body");
window.open(sWebRootPath+"/servlet/view/file1?CompClientID="+sCompClientID+"&filename="+sReportExcelPath+"&viewtype=download", "exportfsframe");
};
AsControl.CallJavaMethodJSP = function (ClassName,MethodName,Args,ArgsObjectText) {
return AsControl.dealAjaxText(jQuery.ajax({
url: sWebRootPath+"/Frame/page/sys/tools/RunJavaMethod.jsp?ClassName="+ClassName+"&MethodName="+MethodName+this._getParaString("Args="+Args)+ArgsObjectText,
async: false,
error: AsControl.ajaxError
}).responseText.trim());
};
AsControl.CallJavaMethod = function (ClassName,MethodName,Args,ArgsObjectText) {
if(Args.length>0){
Args=Args+AsControl.getParamToFixedParam(Args);
}
return AsControl.dealAjaxText(jQuery.ajax({
type: "POST",
url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText,
data : {
"ClassName":ClassName,
"MethodName":MethodName,
"Args":Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')
},
async: false,
error: AsControl.ajaxError
}).responseText.trim());
};
AsControl.CallJavaMethodCustom = function (ClassName,MethodName,Args,ArgsObjectText) {
return AsControl.dealAjaxText(jQuery.ajax({
type: "POST",
url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText,
data : {
"ClassName":ClassName,
"MethodName":MethodName,
"Args":Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')
},
async: false,
error: AsControl.ajaxError
}).responseText.trim());
};
AsControl.RewriteCallJavaMethod = function (ClassName,MethodName,Args,ArgsObjectText) {
if(Args.length>0){
Args=Args+AsControl.getParamToFixedParam(Args);
}
var params=ArgsObjectText.replace(/\,/g,"&");
return AsControl.dealAjaxText(jQuery.ajax({
type: "POST",
url:sWebRootPath+"/servlet/runflow?1=1"+params,
data : {
"ClassName":ClassName,
"MethodName":MethodName,
"Args":Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')
},
async: false,
error: AsControl.ajaxError
}).responseText.trim());
};
AsControl.CallJavaMethodAsynch = function (ClassName,MethodName,Args,ArgsObjectText,Sychronized) {
if(Args.length>0){
Args=Args+AsControl.getParamToFixedParam(Args);
}
jQuery.ajax({
type: "POST",
url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText,
data : {
"ClassName":ClassName,
"MethodName":MethodName,
"Args":Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')
},
async: Sychronized,
error: AsControl.ajaxError,
success:function(result){
// AsDebug.showMessage("提示",result.replace("00000000",""),"","",true);
}
});
return "true";
};
AsControl.getParamToFixedParam = function(Args) {
var params=Args.split(",");
var fixedJson="{";
for(var i=0;i0){fixedJson+="@";}
fixedJson+="'"+tparam[0]+"':'"+tparam[1]+"'";
}
fixedJson+="}";
return ",FixedFlowParam="+fixedJson;
};
AsControl.GetJavaMethodReturn = function (sReturnText,ClassName) {
window.onerror = function(msg, url, line) {
alert('运行异常: ' + msg + '\n');
return true;
};
if (typeof(sReturnText)=='undefined' || sReturnText.length<8) {
throw new Error('【AWES0007】后台服务调用出错!\n【'+ClassName+'】');
}
var rCode = sReturnText.substring(0,8);
sReturnText = sReturnText.substring(8);
if (rCode != '00000000') {
if(rCode == 'AWES0003'){
// 返回信息为超时页面地址
AsControl.OpenPage(sReturnText, '', '_self');
window.onerror = '';
}
throw new Error('【'+rCode+'】'+sReturnText+'\n【'+ClassName+'】');
}
if(sReturnText.length>0 && sReturnText.substring(0,1)=='{')
return $.parseJSON(sReturnText);
else
return sReturnText;
};
/**
* Ajax后台调用页面
* 如果fun为function对象,那么异步调用页面,并成功后以页面打印的信息为参数执行fun。
* 否则同步调用页面,且返回页面打印的信息。
*/
AsControl.RunJsp = function(sURL,sPara,fun) {
if(sURL.indexOf("?")>=0){
alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!");
return false;
}
var sPageURL = sWebRootPath+sURL+"?CompClientID="+sCompClientID+this._getParaString(sPara);
if(typeof fun == "function"){
jQuery.ajax({url:sPageURL,type:"POST",processData:false,async:true,success:function(msg){
fun(AsControl.dealAjaxText(msg));
},error: AsControl.ajaxError});
}else{
return AsControl.dealAjaxText(jQuery.ajax({url : sPageURL,async : false,error: AsControl.ajaxError}).responseText.trim());
}
};
AsControl.dealAjaxText = function(text){
if(!text) return text;
if(text.indexOf("操作超时
") >= 0){
AsControl.ajaxError({responseText:text});
}
return text;
};
AsControl.ajaxError = function(err){
document.close();
document.write(err.responseText);
document.close();
throw new Error("异常");
};
AsControl.RunJspOne = function(sURL) {
var sPageURL=sURL;
var sPara = "";
if(sURL.indexOf("?")>0) {
sPageURL = sURL.substring(0,sURL.indexOf("?"));
sPara = sURL.substring(sURL.indexOf("?")+1);
}
return this.RunJsp(sPageURL, sPara);
};
AsControl.RunASMethod = function(ClassName,MethodName,Args) {
return this.RunJsp("/Common/ToolsB/RunMethodAJAX.jsp","ClassName="+ClassName+"&MethodName="+MethodName+"&Args="+Args);
};
AsControl.getErrMsg = function (MsgNo, args) {
var ClassName="com.amarsoft.awe.res.ErrMsgManager";
var MethodName="getText";
var Args="MsgNo="+MsgNo;
if(args) Args += ",Args="+args;
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName);
};
var OpenStyle=AsControl._getDefaultOpenStyle();
function randomNumber() { return AsControl.randomNumber();}
function OpenComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);}
function openComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);}
function PopComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);}
function popComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);}
function PopPage(sURL,sTargetWindow,sStyle) {return AsControl.PopPageOld(sURL,sStyle);}
function OpenPage(sURL,sTargetWindow,sStyle) {return AsControl.OpenPageOld(sURL,sTargetWindow,sStyle);}
function RunJavaMethod(ClassName,MethodName,Args) {return AsControl.RunJavaMethod(ClassName,MethodName,Args);}
function RunJavaMethodSqlca(ClassName,MethodName,Args) {return AsControl.RunJavaMethodSqlca(ClassName,MethodName,Args);}
function RunJavaMethodTrans(ClassName,MethodName,Args) {return AsControl.RunJavaMethodTrans(ClassName,MethodName,Args);}
function RunJavaMethodTransAsynch(ClassName,MethodName,Args,Sychronized) {return AsControl.CallJavaMethodAsynch(ClassName,MethodName,Args,Sychronized);}
function PopPageAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);}
function RunJspAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);}
function RunMethod(ClassName,MethodName,Args){return AsControl.RunASMethod(ClassName,MethodName,Args); }
function getMessageText(iNo, args) { return AsControl.getErrMsg(iNo, args);}
function openObject(sObjectType,sObjectNo,sViewID,sStyle){return AsControl.OpenObject(sObjectType,sObjectNo,sViewID,sStyle);}
function OpenObject(sObjectType,sObjectNo,sViewID,sStyle){return AsControl.OpenObject(sObjectType,sObjectNo,sViewID,sStyle);}
function popObject(sObjectType,sObjectNo,sViewID,sDialogStyle){return AsControl.OpenObject(sObjectType,sObjectNo,sViewID,sDialogStyle);}
function PopObject(sObjectType,sObjectNo,sViewID,sDialogStyle){return AsControl.OpenObject(sObjectType,sObjectNo,sViewID,sDialogStyle);}
function setWindowTitle(sTitle) {
top.document.title=sTitle+" ";
}
function setDialogTitle(sTitle) {
var tWin = self;
do{
if(typeof tWin.setTopTitle == "function"){
tWin.setTopTitle(sTitle);
break;
}
if(tWin == tWin.parent) break;
tWin = tWin.parent;
}while(true);
}
function getDialogTitle(){
var tWin = self;
do{
if(typeof tWin.getTopTitle == "function"){
return tWin.getTopTitle();
}
if(tWin == tWin.parent) break;
tWin = tWin.parent;
}while(true);
}
/*
* 对话框操作对象
*/
var AsDialog = {
/**
* 弹出预定义选择器:SELECT_CATALOG
* @param sObjectType
* @param sParaString
* @param sStyle
* @returns
* @belong AsDialog
*/
OpenSelector : function(sObjectType,sParaString,sStyle,callback,title,rightType){
return this.selectCatalogDialog(sObjectType,sParaString,sStyle,callback,title,rightType);//使用在SELECT_CATALOG中自定义查询选择信息
},
OpenSelector : function(sObjectType,sParaString,sStyle,callback,title,rightType,pageSize){
return this.selectCatalogDialog(sObjectType,sParaString,sStyle,callback,title,rightType,pageSize);//使用在SELECT_CATALOG中自定义查询选择信息
},
_PopupPage : function(pageinfo,callback){
if (!$.isPlainObject(pageinfo)) {alert("Arguments is not fit!");return;}
var sPageURL = sWebRootPath + "/Redirector?OpenerClientID="+sCompClientID+"&TargetWindow=Popup&ComponentURL="+pageinfo.url+AsControl._getParaString(pageinfo.para);
var d = top.dialog({
width:pageinfo.width,
height:pageinfo.height,
url:sPageURL
});
if (pageinfo.title) d.title(pageinfo.title);
d.addEventListener('close', function () {
var sReturnValue=this.returnValue;
jQuery.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+sCompClientID+"&TargetWindow=Popup",async: false});
this.remove();
if ($.isFunction(callback)) {
callback(sReturnValue);
}
else {
alert("You Selected is \n\r["+sReturnValue+"]\n\rPlease set callback Function to handled!");
}
});
d.showModal();
},
/**
* 通用的选择器,内嵌的SelectDialogUrl页面需实现doSure()方法,并将返回值以parent.closeDialog(返回值);的形式返回给选择器
* @param dialoginfo
* @param callback
*/
SelectCommonDialog : function(dialoginfo,callback){
if (!$.isPlainObject(dialoginfo)) {alert("Arguments is not fit!");return;}
var pageinfo = {
width: dialoginfo.width,
height:dialoginfo.height,
title: dialoginfo.title,
para: dialoginfo.para.indexOf("SelectDialogUrl")<0 ? "SelectDialogUrl="+dialoginfo.para : dialoginfo.para,
url:"/Frame/page/tools/dialog/SelectDialog.jsp"
};
this._PopupPage(pageinfo,callback);
},
selectCatalogDialog:function(sObjectType,sParaString,sStyle,callback,titles,righttype){
var showTitle= titles||"请选择";
var srighttype=righttype||"default";
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,700),
height:this._getStyleDialogHeight(sStyle,540),
url:"/Frame/page/tools/dialog/SelectCatalog.jsp",
para:"SelName="+sObjectType+"&ParaString="+sParaString+"&RightType="+srighttype,
title: showTitle
};
this._PopupPage(pageinfo,callback);
},
selectCatalogDialog:function(sObjectType,sParaString,sStyle,callback,titles,righttype,pageSize){
var showTitle= titles||"请选择";
var srighttype=righttype||"default";
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,700),
height:this._getStyleDialogHeight(sStyle,540),
url:"/Frame/page/tools/dialog/SelectCatalog.jsp",
para:"SelName="+sObjectType+"&ParaString="+sParaString+"&RightType="+srighttype+"&PageSize="+pageSize,
title: showTitle
};
this._PopupPage(pageinfo,callback);
},
/**主要是使用在select_catalog中自定义查询选择信息
* sObjectType:对象类型
* sValueString格式: 传入参数 @ ID列名 @ ID在返回串中的位置 @ Name列名 @ Name在返回串中的位置
* iArgDW: 第几个DW,默认为0
* iArgRow: 第几行,默认为0
*/
setObjectValue:function(sObjectType,sParaString,sValueString,iArgDW,iArgRow,sStyle,callback){
var i=sValueString.split("@").length-1;
if (i%2!=0){
alert("setObjectValue()返回参数设定有误!\r\n格式为:@ID列名@ID在返回串中的位置...");
return;
}else{
this.selectCatalogDialog(sObjectType,sParaString,sStyle,function(sObjectNoString){
var i=sValueString.split("@").length-1;
var sValues = sValueString.split("@");
var iDW = iArgDW;
if(isNaN(iDW)) iDW=0;
var iRow = iArgRow;
if(isNaN(iRow)) iRow=0;
var j=i/2,m,sColumn,iID;
if(typeof(sObjectNoString)=="undefined" || sObjectNoString=="null" || sObjectNoString==null || sObjectNoString=="_CANCEL_" ||sObjectNoString==""){
return;
}else if(sObjectNoString=="_CLEAR_"){
for(var m=1;m<=j;m++){
sColumn = sValues[2*m-1];
if(sColumn!="")
setItemValue(iDW,iRow,sColumn,"");
}
}else if(sObjectNoString!="_NONE_" && sObjectNoString!="undefined"){
var sObjectNos = sObjectNoString.split("@");
for(var m=1;m<=j;m++){
sColumn = sValues[2*m-1];
iID = parseInt(sValues[2*m],10);
if(sColumn!="")
setItemValue(iDW,iRow,sColumn,sObjectNos[iID]);
}
if(typeof(callback) == "function"){
callback(sObjectNoString);
}
}else{
return;
}
});
}
},
/**
* 弹出配置树图选择器,并返回选择内容字符串
* @param sCodeNo 配置树图编号 必须
* @param sReturnFields 返回字段,以@符号分隔 必须
*
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @param isMulti 选择器树图多选标记,true 多选,否则 单选
* @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点
* @param sStyle 选择器窗体外观特征,默认宽度为620像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号
*
* @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN
* @belong AsDialog
*/
SelectConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle,callback){
if(sReturnFields.indexOf("=") > -1){
return this.SetConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle);
}
var sSelected = aSelected;
if ($.isArray(aSelected)) {sSelected = aSelected.join("@");}
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,620),
height:this._getStyleDialogHeight(sStyle,500),
url:"/Frame/page/tools/dialog/SelectDialog.jsp",
para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectCodeTreeDialog.jsp&CodeNo="+sCodeNo+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected,
title: '请选择:'
};
this._PopupPage(pageinfo,callback);
},
/**
* 弹出配置树图选择器,并返回选择内容字符串
* @param sCodeNo 配置树图编号 必须
* @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器字段)
*
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @param isMulti 选择器树图多选标记,true 多选,否则 单选
* @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点
* @param sStyle 选择器窗体外观特征,默认宽度为620像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号
*
* @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN
* @belong AsDialog
*/
SetConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle){
if(sReturnFields.indexOf("=") < 0){
return this.SelectConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle);
}
var fieldValues = sReturnFields.split("@");
var terminis = new Array(); // 接收字段
var fields = ""; // 返回字段
for(var i = 0; i < fieldValues.length; i++){
if(fieldValues[i].indexOf("=") < 0) continue;
var keyValue = fieldValues[i].split("=");
if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue;
terminis[terminis.length] = keyValue[0];
if(fields != "") fields += "@";
fields += keyValue[1];
}
this.SelectConfigTreeValue(sCodeNo, fields, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){
AsDialog._setItemValues(terminis,sObjectNoString,isMulti);
});
},
/**
* 弹出树图选择器,并返回选择内容字符串
* @param sDoNo 预定义显示模型编号 必须
* @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔
* @param sReturnFields 返回字段,以@符号分隔 必须
* @param sSortField 节点排序字段 必须
* @param sTextField 节点显示字段 必须
*
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @param isMulti 选择器树图多选标记,true 多选,否则 单选
* @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点
* @param sStyle 选择器窗体外观特征,默认宽度为620像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号
*
* @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN
* @belong AsDialog
*/
SelectTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle,callback){
var sSelected = aSelected;
if ($.isArray(aSelected)) {sSelected = aSelected.join("@");}
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,620),
height:this._getStyleDialogHeight(sStyle,500),
url:"/Frame/page/tools/dialog/SelectDialog.jsp",
para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectTreeDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&SortField="+sSortField+"&TextField="+sTextField+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected,
title: '请选择:'
};
this._PopupPage(pageinfo,callback);
},
/**
* 弹出树图选择器,并返回选择内容字符串
* @param sDoNo 预定义显示模型编号 必须
* @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔
* @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器显示模板字段)
* @param sSortField 节点排序字段 必须
* @param sTextField 节点显示字段 必须
*
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @param isMulti 选择器树图多选标记,true 多选,否则 单选
* @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点
* @param sStyle 选择器窗体外观特征,默认宽度为620像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号
*
* @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN
* @belong AsDialog
*/
SetTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle,callback){
if(sReturnFields.indexOf("=") < 0){
return this.SelectTreeValue(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle);
}
var fieldValues = sReturnFields.split("@");
var terminis = new Array(); // 接收字段
var fields = ""; // 返回字段
for(var i = 0; i < fieldValues.length; i++){
if(fieldValues[i].indexOf("=") < 0) continue;
var keyValue = fieldValues[i].split("=");
if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue;
terminis[terminis.length] = keyValue[0];
if(fields != "") fields += "@";
fields += keyValue[1];
}
var sReturn ="";
this.SelectTreeValue(sDoNo, sArgs, fields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){
AsDialog._setItemValues(terminis,sObjectNoString,isMulti);
if(typeof(callback) == "function"){
callback(sObjectNoString);
}
});
},
/**
* 弹出列表选择器,并返回选择内容字符串,参考SetGridValue
* @param sDoNo 选择器显示模板编号
* @param sArgs 列表参数,规则同OW页面,以“,”分隔
* @param sFields 返回字段,以@符号分隔
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @param isMulti 选择器列表多选标记,true 多选,false 单选
* @param sStyle 选择器窗体外观特征,默认宽度为620像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号。
* @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN
* @belong AsDialog
*/
SelectGridValue : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle,callback){
var sSelected = aSelected;
if ($.isArray(aSelected)) {sSelected = aSelected.join("@");}
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,600),
height:this._getStyleDialogHeight(sStyle,500),
url:"/Frame/page/tools/dialog/SelectDialog.jsp",
para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti+"&ASelected="+sSelected,
title: '请选择:'
};
this._PopupPage(pageinfo,callback);
},
SelectGridValue_2 : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle,callback){
if(!sStyle) sStyle = "dialogWidth:620px;dialogHeight:500px;resizable:no;maximize:yes;help:no;status:no;";
if(sFields.indexOf("=") > -1){
return this.SetGridValue(sDoNo, sArgs, sFields, aSelected, sStyle);
}
/* AsDialog.PopPage("/Frame/page/tools/SelectDialog.jsp","SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti, "", function(){
reloadSelf();
}); */
AsDialog.PopPage("/Frame/page/tools/SelectDialog.jsp", "SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti, "",callback);
},
/**
* 调用列表选择器并赋值给当前显示模板,参考#SelectGridValue
* @param sDoNo -- AWE_DO_CATALOG.DoNo
* @param sArgs -- Param1,Param2,...,ParamN
* @param sFieldValues -- FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器显示模板字段)
* @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"]
* @returns 选择器返回的字符串 -- V1@V2@...@VN
* @belong AsDialog
*/
SetGridValue : function(sDoNo, sArgs, sFieldValues, aSelected, isMulti, sStyle){
if(sFieldValues.indexOf("=") < 0){
return this.SelectGridValue(sDoNo, sArgs, sFieldValues, aSelected, isMulti, sStyle);
}
var fieldValues = sFieldValues.split("@");
var terminis = new Array(); // 接收字段
var fields = ""; // 返回字段
for(var i = 0; i < fieldValues.length; i++){
if(fieldValues[i].indexOf("=") < 0) continue;
var keyValue = fieldValues[i].split("=");
if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue;
terminis[terminis.length] = keyValue[0];
if(fields != "") fields += "@";
fields += keyValue[1];
}
this.SelectGridValue(sDoNo, sArgs, fields, aSelected, isMulti, sStyle, function(sObjectNoString){
AsDialog._setItemValues(terminis,sObjectNoString,isMulti);
});
},
/**
* 日期选择器
* @param obj 绑定控件,一般为text输入框
* @param strFormat 日期格式化字符串
* @param startDate 能选日期最早值【"Today":当前日期】【数字类型:与当前日期的天数偏移量】【字符串:与strFormat格式一致的时间】【空:不受限制】
* @param endDate 能选日期最晚值【与startDate的解释一致】
* @param postEvent 日期选择后续事件对象,如function(){...}
* @param x 横向偏移量
* @param y 纵向偏移量
* @belong AsDialog
*/
OpenCalendar : function(obj,strFormat,startDate,endDate,postEvent,x,y){
if(typeof obj == "string") obj = document.getElementById(obj);
if(!obj) return;
var today = new Date();//.format(strFormat);
//alert([getDate(startDate),getDate(endDate)]);
SelectDate(obj,strFormat,getDate(startDate),getDate(endDate),postEvent,x,y);
function getDate(sDate){
if(typeof sDate == "string" && sDate.toUpperCase() == "TODAY")
return today;
if(typeof sDate == "number"){
return new Date(today.getFullYear(), today.getMonth(), today.getDate()+parseInt(sDate, 10));
}
return sDate;
}
},
OpenCalender : function(){ // 单词Calendar错误兼容处理
this.OpenCalendar.apply(this, arguments);
},
PopPage : function(sURL,sPara,objectStyle,callback,titlename){
var width = 620;
var height = 500;
var title = titlename?titlename:" ";
if ($.isPlainObject(objectStyle)) {
if (objectStyle.width) width = objectStyle.width;
if (objectStyle.height) height = objectStyle.height;
title = objectStyle.title;
} else if (typeof objectStyle=="string") {
width = this._getStyleDialogWidth(objectStyle,width);
height = this._getStyleDialogHeight(objectStyle,height);
}
var pageinfo = {
width:width,
height:height,
title:title,
url:sURL,
para:sPara
};
this._PopupPage(pageinfo,callback);
},
OpenObject:function(sObjectType,sObjectNo,sViewID,objectStyle,callback,param){
if (!objectStyle) objectStyle =$.parseJSON(RunJspAjax("/Frame/page/tools/object/GetObjectInfo.jsp?ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID+"&Param="+param));
this.PopView("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID+"&Param="+param,objectStyle,callback);
},
PopView : function(sURL,sPara,objectStyle,callback,ctitle){
var width = top.document.body.offsetWidth-16;
var height = top.document.body.offsetHeight-48;
var title =ctitle||"";
if ($.isPlainObject(objectStyle)) {
if (objectStyle.width) width = objectStyle.width;
if (objectStyle.height) height = objectStyle.height;
title = objectStyle.title;
} else if (typeof objectStyle=="string") {
width = this._getStyleDialogWidth(objectStyle,width);
height = this._getStyleDialogHeight(objectStyle,height);
}
var pageinfo = {
width:width,
height:height,
title:title,
url:sURL,
para:sPara
};
if ($.isFunction(callback)) {
this._PopupPage(pageinfo,callback);
}
else {
this._PopupPage(pageinfo,function(){});
}
},
SetDialogTitle : function(sTitle){
var d = top.dialog.getCurrent(); if (d) d.title(sTitle);
},
ClosePage : function(sReturnValue){
var d = top.dialog.getCurrent();if (!d && top.dialog.list){for (var i in top.dialog.list) {d=top.dialog.list[i];}} if (d) d.close(sReturnValue) ;
},
_getStyleDialogWidth : function(sStyle, sDefaultValue){
if (!sDefaultValue ) sDefaultValue = 640;
if (!sStyle) return sDefaultValue;
var aMatch=sStyle.match(/dialogWidth[\s]*[:=][\s]*([\d]+)px/i);
if (aMatch) return parseInt(aMatch[1]);
else return sDefaultValue;
},
_getStyleDialogHeight : function(sStyle, sDefaultValue){
if (!sDefaultValue ) sDefaultValue = 480;
if (!sStyle) return sDefaultValue;
var aMatch=sStyle.match(/dialogHeight[\s]*[:=][\s]*([\d]+)px/i);
if (aMatch) return parseInt(aMatch[1]);
else return sDefaultValue;
},
_setItemValues : function(aField, sValues, isMulti){
if(typeof setItemValue != "function" && typeof getRow != "function") return;
if(!sValues) return;
if(sValues == "_CLEAR_"){
for(var i = 0; i < aField.length; i++){
setItemValue(0, getRow(), aField[i], "");
}
return;
}else{
if(typeof setItemValue == "function" && typeof getRow == "function"){
if(isMulti){
var aReturn = sValues.split("~");
var aValues = new Array();
for(var i = 0; i < aReturn.length; i++){
var vs = aReturn[i].split("@");
for(var j = 0; j < aField.length; j++){
if(i == 0) aValues[j] = "";
else aValues[j] += ",";
aValues[j] += vs[j];
if(i == aReturn.length - 1)
setItemValue(0, getRow(0), aField[j], aValues[j]);
}
}
}else{
var aValues = sValues.split("@");
for(var i = 0; i < aField.length; i++){
setItemValue(0, getRow(), aField[i], aValues[i]);
}
}
}
}
},
SelectXMLTreeValue : function(xmlFile, xmlTags, keys, names, treeName, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle,callback){
if(sReturnFields.indexOf("=") > -1){
return this.SetXMLTreeValue(xmlFile, xmlTags, keys, names, treeName, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle);
}
var sSelected = aSelected;
if ($.isArray(aSelected)) {sSelected = aSelected.join("@");}
var pageinfo = {
width:this._getStyleDialogWidth(sStyle,620),
height:this._getStyleDialogHeight(sStyle,500),
url:"/Frame/page/tools/dialog/SelectDialog.jsp",
para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectXMLTreeDialog.jsp&XMLFile="+xmlFile+"&XMLTags="+xmlTags+"&Keys="+keys+"&Names="+names+"&TreeName="+treeName+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected,
title: '请选择:'
};
this._PopupPage(pageinfo,callback);
},
SetXMLTreeValue : function(xmlFile, xmlTags, keys, names, treeName, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle){
if(sReturnFields.indexOf("=") < 0){
return this.SelectXMLTreeValue(xmlFile, xmlTags, keys, names, treeName, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle);
}
var fieldValues = sReturnFields.split("@");
var terminis = new Array(); // 接收字段
var fields = ""; // 返回字段
for(var i = 0; i < fieldValues.length; i++){
if(fieldValues[i].indexOf("=") < 0) continue;
var keyValue = fieldValues[i].split("=");
if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue;
terminis[terminis.length] = keyValue[0];
if(fields != "") fields += "@";
fields += keyValue[1];
}
this.SelectXMLTreeValue(xmlFile, xmlTags, keys, names, treeName, fields, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){
AsDialog._setItemValues(terminis,sObjectNoString,isMulti);
});
}
};
/**
* 对参数做预处理
* @param sObjectType 对象类型
* @param sParaString
* @param sValueString 传入参数 @ ID列名 @ ID在返回串中的位置 @ Name列名 @ Name在返回串中的位置
* @param iArgDW 第几个DW,默认为0
* @param iArgRow 第几行,默认为0
* @param sStyle
*/
function setObjectValuePretreat(sObjectType,sParaString,sValueString,iArgDW,iArgRow,sStyle){
var regexp = /#{[A-Za-z0-9]+}/g;
var cols = sParaString.match(regexp);
if(cols){
for(var i=0;i