js_service2


/**此函数用于把输入的日期变成输入月的最后一天的日期。
* 用于DataWindow内,例如:用户输入"2002-03-03",界面显示为"2002-03-31";
* @param oDataWindow 数据窗口
* @param obj 格式化日期的输入框
*/
function formatMonthLastD(oDataWindow, obj) {
var iRowNum = oDataWindow.getObjPoint(obj)[0];

var iColNum = oDataWindow.getObjPoint(obj)[1]
var tempDate = oDataWindow.getCellValue(iRowNum, iColNum);
oDataWindow.setCellValue(iRowNum, iColNum, formatMonthLast(tempDate));
}

/**此函数用于把输入的日期变成输入月的最后一天的日期。
* 例如:用户输入"2002-03-03",界面显示为"2002-03-31";
* @param strDate 要格式化日期值,字符型
* @return 格式化后的月末值
*/
function formatMonthLast(strDate) {
var tempDate = strDate;

var index1 = tempDate.lastIndexOf(".");
var index2 = tempDate.lastIndexOf("-");
var index11 = tempDate.indexOf(".");
var index22 = tempDate.indexOf("-");

//形式如2002-2-2,2002.2.3的解析
if ((index1 != -1) || (index2 != -1)) {
var index3 = index1;

if (index2 > index1) {
index3 = index2;
}

index33 = index11;

if ((index22 < index11 && index22 != -1) || (index11 == -1 && index22 != -1)) {
index33 = index22;
}

var dTempDate = new Date();
dTempDate.setDate(1);
dTempDate.setYear(parseInt(tempDate.substring(0, index33), 10));
var iMonth=parseInt(tempDate.substring(index33 + 1, index3), 10);
dTempDate.setMonth(iMonth);
//设置当月的最后一天
dTempDate.setDate(0);
if (iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12 ) //月份1有问题,直接拼串
{
return tempDate.substring(0, index3 + 1) + "31";
}
return tempDate.substring(0, index3 + 1) + dTempDate.getDate();
//形式如20020202的解析
} else if ((index1 == -1) && (index2 == -1) && tempDate.length == 8) {
var dTempDate = new Date();
dTempDate.setDate(1);
dTempDate.setYear(parseInt(tempDate.substring(0, 4), 10));
var iMonth=parseInt(tempDate.substring(4, 6), 10);
dTempDate.setMonth(iMonth);
//设置当月的最后一天
dTempDate.setDate(0);
if (iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12)
{
return tempDate.substring(0, tempDate.length - 2) + "31";
}
return tempDate.substring(0, tempDate.length - 2) + dTempDate.getDate();
}
}

/** 在xml里按关键字查找一个节点的值。
* @param parentNode 要查找节点的上级节点
* @param keyNodeName 关键字节点的名称
* @param keyNodeValue 关键字节点的值
* @param resultNodeName 返回节点的名称
* @return resultNodeValue 返回节点的值
*/
function findNodeValue(parentNode, keyNodeName, keyNodeValue, resultNodeName) {
var resultNodeValue = "";

for (var i = 0; i < parentNode.length; i++) {
var snv = parentNode(i).getElementsByTagName(keyNodeName).item(0).text;

if (snv == keyNodeValue) {
resultNodeValue = parentNode(i).getElementsByTagName(resultNodeName).item(0).text;

break;
}
}

return resultNodeValue;
}

/** 在xml里按关键字查找一条节点记录。
* @param parentNode 要查找节点的上级节点
* @param keyNodeName 关键字节点的名称
* @param keyNodeValue 关键字节点的值
* @return resultNode 返回符合条件的节点(与keyNode同级)记录,包括多个字段。
*/
function findNode(parentNode, keyNodeName, keyNodeValue) {
var resultNode = null;

for (var i = 0; i < parentNode.length; i++) {
var snv = parentNode(i).getElementsByTagName(keyNodeName).item(0).text;

if (snv == keyNodeValue) {
resultNode = parentNode(i);

break;
}
}

return resultNode;
}

/**用于把一个日期string 转换成一个 Date 类型的值
* @param strDate 要转换的字符串 ‘20020303’ 或 ‘2002-3-3’ 或 ‘2002.3.3’
* @return 日期类型值
*/
function strToDate(strDate) {
var tempDate = strDate;

var index1 = tempDate.lastIndexOf(".");
var index2 = tempDate.lastIndexOf("-");
var index11 = tempDate.indexOf(".");
var index22 = tempDate.indexOf("-");

//形式如2002-2-2,2002.2.3的解析
if ((index1 != -1) || (index2 != -1)) {
var index3 = index1;

if (index2 > index1) {
index3 = index2;
}

index33 = index11;

if ((index22 < index11 && index22 != -1) || (index11 == -1 && index22 != -1)) {
index33 = index22;
}
var year = parseInt(tempDate.substring(0, index33), 10);
var month = parseInt(tempDate.substring(index33 + 1, index3), 10)-1;
var date = parseInt(tempDate.substring(index3 + 1, tempDate.length), 10);
var dTempDate = new Date(year,month,date);
return dTempDate;
//形式如20020202的解析
} else if ((index1 == -1) && (index2 == -1) && tempDate.length == 8) {

var year = parseInt(tempDate.substring(0, 4), 10);
var month = parseInt(tempDate.substring(4, 6), 10) - 1;
var date = parseInt(tempDate.substring(6, 8), 10);
var dTempDate = new Date(year,month,date);
return dTempDate;
}
}

/** 把一个日期类型的值转换成,按一定格式格式化的字符串。(目前只做‘yyyy-mm-dd’)
* @param dDate 要格式化的日期值,为Date类型
* @return 格式化后的日期字符串
* @history:
* Modify by gaozg 2006-05-23
* 修改对天数不能格式化为两位的错误
* modified by 高占国 2006-07-06
* 该方法存在问题传入参数如果日期在2000年之前如(1999-02-01),则返回的串为99-02-01
* 修改getYear()方法为getFullYear
*/
function formatDate(dDate) {
var iMonth = (dDate.getMonth() + 1);

var sMonth = iMonth.toString();

if (sMonth.length == 1) {
sMonth = "0" + sMonth;
}
var iDay=dDate.getDate();

var sDay=iDay.toString();

if (sDay.length == 1) {
sDay = "0" + sDay;
}
return dDate.getFullYear() + "-" + sMonth + "-" + sDay;
}

/** 用于格式化xml文件的节点值
* 只针对<>33,333,333.00<>数值节点,转换为<>33333333.00<>
* <>200.200,000%<> 转换为<>2.00200000<>
* @param xmlId 页面数据岛的ID
* @param nodeName 要格式化节点的上级节点
* @return 格式化后的xml数据
*/
function formatXML(xmlId, nodeName) {
formatNode(xmlId.getElementsByTagName(nodeName));

return xmlId.xml;
}

/** 只针对<>33,333,333.00<>数值节点,转换为<>33333333.00<>
* <>200.200,000%<> 转换为<>2.00200000<>
* 不能用在<>sss,ssss,ss<>的节点。
* @param obj 要格式化的xml节点的上级节点。
*
*/
function formatNode(obj) {
for (var j = 0; j < obj.length; j++) {
for (var i = 0; i < obj(j).childNodes.length; i++) {
var sValue = obj(j).childNodes(i).text;

if (sValue.indexOf(",") == -1 && sValue.indexOf("%") == -1) {
continue;
}

var sResult = "";

if (sValue.indexOf(",") != -1) {
var aValue = sValue.split(",");

for (var j1 = 0; j1 < aValue.length; j1++) {
sResult = sResult + aValue[j1];
}
}

if (sResult == "") {
sResult = sValue;
}

if (sValue.indexOf("%") != -1) {
var sResult1 = parseFloat(sResult, 10) / 100;

sResult = sResult1.toString();
}

obj(j).childNodes(i).text = sResult;
}
}
}

/** 格式化一个节点的值
* @param obj 要格式化的节点
*/
function formatNodeValue(obj) {
var sValue = obj(0).text;

obj(0).text = formatValue(sValue);
}

/** 格式化一个33,333,333.00或200.200,000%的值
* 为33333333.00,2。00200000
* @param srcStr 要格式化的字符串
* @return 格式化后的值
*/
function formatValue(srcStr) {
var sValue = srcStr;

if (sValue.indexOf(",") == -1 && sValue.indexOf("%") == -1) {
return sValue;
}

var sResult = "";

if (sValue.indexOf(",") != -1) {
var aValue = sValue.split(",");

for (var j = 0; j < aValue.length; j++) {
sResult = sResult + aValue[j];
}
}

if (sResult == "") {
sResult = sValue;
}

if (sValue.indexOf("%") != -1) {
var sResult1 = parseFloat(sResult, 10) / 100;

sResult = sResult1.toString();
}

return sResult;
}

/** 把一个浮点数,以小数点后几位四舍五入
* @param srcValue 要舍位的值
* @param iCount 要舍位到小数点后几位
* return 四舍五入后的数
*/
function round(srcValuef, iCount) {
var srcValue=srcValuef;
var zs=true;
//判断是否是负数
if (srcValue<0)
{
srcValue=Math.abs(srcValue);
zs=false;
}
var iB = Math.pow(10, iCount);
//有时乘100结果也不精确
var value1=srcValue * iB;

var anumber=new Array();
var anumber1=new Array();

var fvalue=value1;
var value2=value1.toString();
var idot=value2.indexOf(".");
//如果是小数
if (idot!=-1)
{
anumber=srcValue.toString().split(".");
//如果是科学计数法结果
if (anumber[1].indexOf("e")!=-1)
{
return Math.round(value1)/iB;
}
anumber1=value2.split(".");
if (anumber[1].length<=iCount)
{
return parseFloat(srcValuef,10);
}
var fvalue3=parseInt(anumber[1].substring(iCount,iCount+1),10);
if (fvalue3>=5)
{
fvalue=parseInt(anumber1[0],10)+1;
} else {
//对于传入的形如111.834999999998 的处理(传入的计算结果就是错误的,应为111.835)
if (fvalue3==4 && anumber[1].length>10 && parseInt(anumber[1].substring(iCount+1,iCount+2),10)==9 )
{
fvalue=parseInt(anumber1[0],10)+1;
} else {
fvalue=parseInt(anumber1[0],10);
}
}
}
//如果是负数就用0减四舍五入的绝对值
if (zs)
{
return fvalue/iB;
} else {
return 0-fvalue/iB;
}
}

/** 把数值转换为大写金额
* @param num 数值,为数值或字符型
* @return 大写金额字符
*/
function convertCN(num) {
var arr1 = new Array("仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "圆", "点", "角", "分");

var arr3 = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
num = num.toString();
//判断是否为负
var bfs=false;
if (num.indexOf("-")!=-1)
{
num=num.substring(1,num.length);
bfs=true;
}
var point = num.indexOf(".");

if (point < 0)
point = num.length;

var len = arr1.length - point - 3;
var strRet = "", lastChar = "";

for (i = 0; i < num.length; i++) {
if (i != point) {
val = arr1[i + len];
if (num.charAt(i) != "0" || (i==point-1 && point==1) )
strRet += arr3[num.charAt(i)] + val;
else {
lastChar = strRet.substr(strRet.length - 1);
if (val == "亿" || val == "万" || val == "圆" || val == "分") {
if (lastChar == "零")
strRet = strRet.substr(0, strRet.length - 1);

lastChar = strRet.substr(strRet.length - 1);

if (!((val == "万" && lastChar == "亿") || (val == "分" && lastChar == "角") || (val == "角" && lastChar == "圆")))
strRet += val;
} else {
if (lastChar != "零")
strRet += "零";
}
}
}
}

//去分
var ifen = strRet.indexOf("分");

if (ifen >= 0) {
var sffen = strRet.substring(ifen - 1, ifen);

if (sffen == "圆") {
strRet = strRet.substring(0, ifen);
}
}

//加整
var sfyuan = strRet.substring(strRet.length - 1, strRet.length);

if (sfyuan == "圆" || sfyuan == "角") {
strRet = strRet + "整";
}

//加负
if (bfs)
{
strRet="(负数)"+strRet;
}
return strRet;
}

/** 使页面的层<DIV>显示/隐藏<br>
* 要求页面的层<DIV>用如下方法引用:style="display:none"或style="display:"<br>
* 调用方法:showHideLayers("Layer1","show","Layer2","hide"),即:方法成对出现,参数1为层ID,参数2为是否隐藏
*/
function showHideLayers() {
var args = showHideLayers.arguments;

for (var i = 0; i < args.length - 1; i += 2) {
var isShow = (args[i + 1] == "show") ? "''" : "'none'";

var script = args[i] + ".style.display=" + isShow;
eval(script);
}
}
/** 显示/隐藏某一区域(层)
* @param oLayer 区域(层)名,为对象,并非字符串
* @param oImg 图片区域对象名<img id="img_switch" src="img_open">
* @param sImg1 区域显示时的图片
* @param sImg2 区域隐藏时的图片
*/
function switchLayer(oLayer, oImg, sImg1, sImg2) {
var flag = oLayer.style.display;

if (flag == "none") {
oLayer.style.display = "block";

oImg.src = sImg1;
} else {
oLayer.style.display = "none";

oImg.src = sImg2;
}
}

/** 按xml中的某一节点进行对xml排序 类似这种结构(ROOT/ITEM/NODENAME...)
* @param dsoName 数据岛名称
* @param colNodeName 列对应数据结点名称
* @param orderType ture/false 升序/降序
*/
function xmlOrderBy(dsoName, colNodeName, orderType) {
var root = dsoName.documentElement.cloneNode(true);

var rootTemp = dsoName.createNode("element", root.nodeName, "");
var ilen = root.childNodes.length;

//排序
for (var i = 0; i < ilen; i++) {
var node1 = root.childNodes(0);

var value1 = root.childNodes(0).getElementsByTagName(colNodeName)(0).text;
var ilen1 = root.childNodes.length;

for (var j = 0; j < ilen1; j++) {
if (orderType) { //升序
if (root.childNodes(j).getElementsByTagName(colNodeName)(0).text < value1) {
node1 = root.childNodes(j);
}
} else {
//降序
if (root.childNodes(j).getElementsByTagName(colNodeName)(0).text > value1) {
node1 = root.childNodes(j);
}
}
}

rootTemp.appendChild(node1);
}

//替换成排序后的xml
dsoName.removeChild(dsoName.documentElement);
dsoName.appendChild(rootTemp);
}

/** 删除数据窗口中关键数据为空的行
* @param dwid 数据窗口
*/
function deleteNullRow(dwid) {
var iRowNum = dwid.getRowCount();

var iColNum = dwid.getColCount();

for (var i = iRowNum - 1; i >= 0; i--) {
for (var j = 0; j < iColNum; j++) {
if (dwid.col(j).fill == true && dwid.row(i).cell(j).value.toString() == "") {
dwid.deleteRow(i);
break;
}
}
}
}

/** 检查日期时间的合法性 必须格式为“2003-09-09 或 2003-9-09 ”才返回ture,否则返回false
* @param str 要检查的日期字符串。
* @return true/false
*/
function checkDate(str){
var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
return true;
}

/** 检查日期时间的合法性 必须格式为“2003-09-09 08:08:08”才返回ture,否则返回false
* @param str 要检查的日期时间字符串。
* @return true/false
*/
function checkDateTime(str){
var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
if(d.getHours()!=r[4])return false;
if(d.getMinutes()!=r[5])return false;
if(d.getSeconds()!=r[6])return false;
return true;
}

内部协查管理//
///
/**通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @param serviceName 服务名,如:"common.CtaisMasterBndService.commonNsrEntered"
* @param GZBZ 更正标志 //cheys 2004/02/17 added
* @return true/false 成功/失败
*/

function defaultNsrEntry(NSRSBH,YWHJ_DM,MKMC,HDNR,serviceName,GZBZ)
{

var service = new Service(serviceName);
// var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM);
if (GZBZ != null)
{
var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM,"GZBZ",GZBZ);
}
else{
var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM);
}
var rtnCode=service.getRtnCode();
if (rtnCode=="0")
{
var oDoc=loadXml(sArgu);//解析xml
var tbtjts = oDoc.selectSingleNode("//TBTJTS").text;
if(tbtjts != "null"){
showMessage(tbtjts);
}
var isXcExisted = oDoc.selectSingleNode("//DO_XC").text;
var oNode = oDoc.selectSingleNode("//NBXCXX");
if(isXcExisted=="Y"){
return nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR,oNode);
}
}else{
showMessage(service.getMessage());
return false;
}
}

/**通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @param oDoc XML内容
* @return true/false 成功/失败
*/
function nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR,oDoc)
{
var sid = createWorkId();
var service = new Service("jcfz.nx.nx_check.NxCheckBndService.init",sid);
var sArgu=service.doService("NSRSBH",NSRSBH,"YWHJ_DM",YWHJ_DM,"MKMC",MKMC,"HDNR",HDNR,"NBXC","N");
var rtnCode=service.getRtnCode();
if (rtnCode=="1")
{
showMessage("检查该个人内部监控失败!");
return false;
}

var count=oDoc.childNodes.length;
if (count!=0)
{

for (var i=0;i<count ;i++ )
{
var NBXCXH=oDoc.getElementsByTagName("NBXCXH")(i).text;
var scontinue=oDoc.getElementsByTagName("CONTINUE")(i).text;
var write_jkrz=oDoc.getElementsByTagName("WRITEJKRZ")(i).text;
var paraArray = new Array();
paraArray[0]=NBXCXH;
paraArray[1]=scontinue;
//var serviceId = getWorkId();
paraArray[2]=sid;
paraArray[3]=write_jkrz;

var isContinue=showModalDialog(URL_NBXC,paraArray,'dialogWidth=600px;dialogheight=300px;status:no;help:no');
//如果点"关闭"按钮,那么视同终止操作
if(isContinue=="STOP"){
return false;
}
if (isContinue==null)
{
if (write_jkrz=="FALSE")
{
return false;
}
var service = new Service("jcfz.nx.nx_check.NxCheckBndService.saveJkrz",sid);
var sArgu=service.doService("NBXCXH",NBXCXH,"CZFS","STOP");
var rtnCode=service.getRtnCode();
if (rtnCode=="0")
{
showMessage(service.getMessage());
return false;
}else{
showMessage(service.getMessage());
return false;
}
}
}
}

return true;
}


/**不走界面服务流程,直接通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @return true/false 成功/失败
*/
function interface_nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)
{
if(interface_nbxc_check.arguments.length!=4){
showMessage("调用方法参数个数不等于4!")
return false;
}
if (NSRSBH=="")
{
showMessage("个人识别号不能为空!");
return false;
}
if (YWHJ_DM=="")
{
showMessage("业务环节代码不能为空!");
return false;
}
if (MKMC=="")
{
showMessage("模块名称不能为空!");
return false;
}
var service = new Service("jcfz.nx.nx_check.NxCheckBndService.init");
var sArgu=service.doService("NSRSBH",NSRSBH,"YWHJ_DM",YWHJ_DM,"MKMC",MKMC,"HDNR",HDNR,"NBXC","Y");
var rtnCode=service.getRtnCode();
if (rtnCode=="0")
{
var oDoc=loadXml(sArgu);//解析xml
var count=oDoc.documentElement.childNodes.length;
if (count!=0)
{
for (var i=0;i<count ;i++ )
{
var NBXCXH=oDoc.getElementsByTagName("NBXCXH")(i).text;
var scontinue=oDoc.getElementsByTagName("CONTINUE")(i).text;
var write_jkrz=oDoc.getElementsByTagName("WRITEJKRZ")(i).text;
var paraArray = new Array();
paraArray[0]=NBXCXH;
paraArray[1]=scontinue;
var serviceId = getWorkId();
paraArray[2]=serviceId;
paraArray[3]=write_jkrz;

var isContinue=showModalDialog(URL_NBXC,paraArray,'dialogWidth=600px;dialogheight=300px;status:no;help:no');
//如果点"关闭"按钮,那么视同终止操作
if(isContinue=="STOP"){
return false;
}
if (isContinue==null)
{
if (write_jkrz=="FALSE")
{
return false;
}
var service = new Service("jcfz.nx.nx_check.NxCheckBndService.saveJkrz");
var sArgu=service.doService("NBXCXH",NBXCXH,"CZFS","STOP");
var rtnCode=service.getRtnCode();
if (rtnCode=="0")
{
showMessage(service.getMessage());
return false;
}else{
showMessage(service.getMessage());
return false;
}
}

}
}
return true;
}else if (rtnCode=="1")
{
showMessage("检查该个人内部监控失败!");
return false;
}
}
/内部协查管理

/**
*自动更正输入错误
*此函数用于 会计期间或页码输入框 的 onchange事件或onblur 事件中,当用户输入错误的值后,自动更正错误
*@param obj 输入框
*@param minValue 最小值
*@param maxValue 最大值
*/
function gzInput(obj,minValue,maxValue){
var sValue = parseInt(obj.getValue(),10);
if (sValue > maxValue )
{
obj.setValue(maxValue);
}
if (sValue < minValue)
{
obj.setValue(minValue);
}
}

/**
*检查控件的输入值是否在指定的期间内,用于提交请求之前的合法性检查
*@param obj 输入框
*@param minValue 最小值
*@param maxValue 最大值
*@return true|false 正确|错误
*/
function checkInput(obj,minValue,maxValue){
var sValue = parseInt(obj.getValue(),10);
if (sValue > maxValue || sValue <minValue)
{
if (!obj.disabled)// 如果没有被disable,则移焦点过来。
{
obj.select();
obj.focus();
}
return false;
}
return true;
}


/** 调入Web页打印预览页面
* @param pagesize 纸张:目前为:A2,A3,A4,A5,如果纸张超过A2横向将不予调整,如果为null则自动调整
* @param pageori 打印方向:0/1,纵/横,如果为null则自动调整
* @param header 页眉(参考IE的打印设置):&b&b&d
* @param footer 页脚(参考IE的打印设置):&b&p/&P&b
* @param margin 页边距(毫米,参考IE的打印设置):用“|”线分开的4个值,分别代表上右下左四个边距(与CSS的margin等属性规则相同)。
* 如果只有2个值,则上下边取第一个值;左右边取第二个值
* @param fontsize 字号(pt),如果不需要该参数,可将其设为null或者干脆不写该参数
* @param caller 将回调的函数,默认为interface_getHTML(),因为同一页面内可能需要不同的打印接口函数,所以需要能够指定
* @return window对象
*/
function toPrinter(pagesize,pageori,header,footer,margin,fontsize,caller){
var argus = caller == null? "?" : "?caller="+caller+"&";
argus += "pagesize="+pagesize+"&pageori="+pageori
+"&pageheader="+header+"&pagefooter="+footer+"&pagemargin="+margin;
if (fontsize != null && fontsize != "") {
argus += "&fontsize="+fontsize;
}
var wh = "width="+(screen.width-11)+",height="+(screen.height-55);
var param = "toolbar=no,location=no,status=yes,resizable=no,scrollbars=yes,top=0,left=0,"+wh;
return window.open(URL_TO_PRINT+argus,"_blank",param);
}

/** 调入Web页Excel输出
* @return window对象
*/
function toExcel(){
var wh = "width="+(screen.width-11)+",height="+(screen.height-55);
var param = "toolbar=no,location=no,status=yes,resizable=no,scrollbars=yes,top=0,left=0,"+wh;
return window.open(URL_TO_EXCEL,"_blank",param);
}

/** 校验并格式化日期 (用户录入 2003-8-1 ,先进行日期校验 checkData() ,再进行格式化 formatData() 2003-08-01 )
* @param obj 需要校验的日期对象。
*/
function check_format_date(obj) {
vdate=obj.value;
if (!obj.checkData())
{
if (obj.value.length==10)
{
showMessage("录入日期 '"+vdate+"' 非法,请重新录入。");
obj.value="";
return false;
}
obj.value=obj.formatData(obj.value);
}
if (!obj.checkData())//
{
showMessage("录入日期 '"+vdate+"' 非法,请重新录入。");
obj.value="";
return false;
}
return true;
}
//--------------------------------------------------------------------------------------
/** 设置审批意见的值(2003-9-4)//返回带同意和不同意的字符串
*@param obj 审批意见的值 (str)
*@param flag 点击同意或不同意按钮 (同意:Y 、不同意:N)
*/
function setSpyjValue(obj,flag)
{
if (flag=="Y"){
if (obj=="")//如果为空则直接填写“ 同意”
{
obj="同意";
}else{
if (obj.indexOf("不同意")==0) //如果是“ 不同意”则删除不字。
{
var iYjLen=obj.length;
obj = obj.substring(1,iYjLen);
}else if (obj.indexOf("同意")==0)
{

}else{
obj ="同意,"+obj.substring(0,iYjLen);//如果没有“同意”则添加。
}
}
}else if (flag=="N"){
if (obj=="")
{
obj="不同意";
}else{
if (obj.indexOf("同意")==0)
{
var iYjLen=obj.length;
obj = "不"+obj.substring(0,iYjLen);
}else if (obj.indexOf("不同意")==0)
{

}else{
obj ="不同意,"+obj.substring(0,iYjLen);
}
}
}
return obj;
}
//--------------------------------------------------------------------------------------
/**此函数用于把输入的日期变成输入上一个月的最后一天的日期。
* 例如:用户输入"2002-03-03",界面显示为"2002-02-31"; 2003-01-16 界面显示为 2002-12-31
* @param strDate 要格式化日期值,字符型 格式必须为 yyyy-mm-dd
* @return 格式化后的月末值
*/
function formatPeriorMonthLast(strDate) {
var dStr=strDate;
mm=dStr.split('-');
var tempStr="";
if (mm[1]=='01'||mm[1]=='1')
{
dStr=parseInt(dStr.substring(0,4),10)-1+"-12-31";
return dStr;
}else{
if (parseInt(mm[1],10)-1>9)
{
tempStr=parseInt(mm[1],10)-1;
}else{
tempStr=parseInt(mm[1],10)-1;
tempStr="0"+tempStr;
}
tempdate=dStr.substring(0,5)+tempStr+'-01';
dStr=formatMonthLast(tempdate);
return dStr;
}
}


/**此函数用于把输入的日期变成输入上一个月的第一天的日期。
* 例如:用户输入"2002-03-03",界面显示为"2002-02-01"; 2003-01-16 界面显示为 2002-12-01
* @param strDate 要格式化日期值,字符型 格式必须为 yyyy-mm-dd
* @return 格式化后的月初值
*/

function formatPeriorMonthFirst(strDate) {
var dStr=strDate;
mm=dStr.split('-');
var tempStr="";
if (mm[1]=='01'||mm[1]=='1')
{
dStr=parseInt(dStr.substring(0,4),10)-1+"-12-01";
return dStr;
}else{
if (parseInt(mm[1],10)-1>9)
{
tempStr=parseInt(mm[1],10)-1;
}else{
tempStr=parseInt(mm[1],10)-1;
tempStr="0"+tempStr;
}
tempdate=dStr.substring(0,5)+tempStr+'-01';
dStr=formatMonthFirst(tempdate);
return dStr;
}
}


注册表编辑类start//
/**
* 注册表编辑器,封装对注册表的操作
*/
function RegEdit(){
this.shell = new ActiveXObject("WScript.Shell");
this.regRead = regRead;
this.regWrite = regWrite;
this.regDelete = regDelete;
}

/** 返回名为 strName 的注册键或值。
* @param strName 要读取的键或值。如果 strName 以反斜线 (\) 结束,本方法将返回键,而不是值
* @return 名为 strName 的注册键或值
*/
function regRead(strName){
var val = null;
try {
val = this.shell.regRead(strName);
} catch (e) {
//alert(e.message);
}
return val;
}

/** 设置 strName 指定的注册键或值
* @param strName 要写的键或值的名称.如果 strName 以反斜线 (\) 结束,本方法将返回键,而不是值
* @param anyValue 要写入键或注册表值中的值
* @param strType 可选项。要保存到注册表中的值的数据类型REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY
*/
function regWrite(strName,anyValue,strType){
if(strType == null)
strType = "REG_SZ";
this.shell.regWrite(strName,anyValue,strType);
}

/** 从注册表中删除 strName 指定的键或值。
* @param strName 要删除的键或值的名字。如果 strName 以反斜线 (\) 结束,本方法将删除键,而不是值
*/
function regDelete(strName){
this.shell.regDelete(strName);
}

注册表编辑类end//

全局变量管理start///
function setGlobalVar(name,value){
var FRM_RIGHT=getFRM_RIGHT();
if(FRM_RIGHT!=null){
FRM_RIGHT.setGlobalVar(name,value);
}
}
function getGlobalVar(name){
var FRM_RIGHT=getFRM_RIGHT();
if(FRM_RIGHT!=null){
return FRM_RIGHT.getGlobalVar(name);
}
return null;
}
function clearGlobalVar(name){
var FRM_RIGHT=getFRM_RIGHT();
if(FRM_RIGHT!=null){
FRM_RIGHT.clearGlobalVar(name);
}
}
全局变量管理end/


///印章管理,返回当前操作人员使用的印章/
/** 公用函数
*/

var SIGNATUREPATH="c:\\ctais\\signature\\";
function getPicture(zsr_dm){
var sid = createWorkId();
var svc = new Service("util.yzgl.YzInterfaceBndService.init",sid);
var oArg=svc.doService("ZSR_DM",zsr_dm);
if (svc.getCode() != "2000")
{
showMessage(svc.getMessage());
return;
}else{
var oDoc = loadXml(oArg);
if (oDoc.selectSingleNode("ROOT/SIGNATUREID").text == "")
{
return "";
}else{
return SIGNATUREPATH + oDoc.selectSingleNode("ROOT/SIGNATUREID").text+".jpg";
}
}
}

function getWszsr_dm(swws_dm,wspzxh)
{
var sid = createWorkId();
var service = new Service("jcfz.common.wszsr.WszsrBndService.init",sid);
var srAuge = service.doService("SWWS_DM",swws_dm,"WSPZXH",wspzxh);
var msg = service.getMessage();
var code = service.getCode();
if (code=="2000")
{
//解析xml
var oDoc = loadXml(srAuge);
return oDoc.selectSingleNode("ROOT").text;
}
else
{
showMessage(msg);
return "";
}
}

/** 将XML转换到DOT文档模版内
* @param doc XML Document
* @param swws_dm 文书代码
* @param bz 稽查还是违章
*/
function toWord(doc,swws_dm,bz,zsr_dm){
try {
var strTempleteUrl = "http://" + location.host + getSiteRootUrl() +"/work/public/wsmodel"
var ole = new ActiveXObject("Word.Application");
try{
if (typeof(bz)=="undefined"||bz=="")
{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
}else if (bz=="WZ")
{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + "_wz.doc");
}else if (bz=="JC")
{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + "_jc.doc");
}else if (bz=="WS")
{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
}else
{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
}
} catch(e2) {
try{
ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
}catch(e1){
ole.quit();
showMessage("新建Word异常:"+e1.message,0);
}
}
ole.Visible = true;
if(doc==null)
{
ole.run("toWord",null);
}else{
ole.run("toWord",doc.documentElement);
// if (typeof(zsr_dm)=="undefined"||zsr_dm=="")
// {
ole.run("RemoveSignatureLabel");
// }else{
// var picName = getPicture(zsr_dm);
// if(picName != ""){
// ole.run("AddSignature",picName);
// }else{
// showMessage("没有定义机关签章!",0);
// //return;
// }
// }
}
//设置文书的模板为只读
if(bz=="WS")
ole.run("setReadOnly","eo5w3960ie");
} catch (e) {
ole.quit();
showMessage("新建Word异常:"+e.message,0);
}
}

var TZDNODE =null;
/**申报模块加打印通知单功能
*/
function sb_print_wfwztzd(oDoc){
TZDNODE = oDoc;
toPrinter("A4","0",null,null,"20|20|20|20",null,"interface_printTzd");

}

/**toPrinter函数的接口函数
*/
function interface_printTzd(){
var oDoc = loadFile(URL_TZD); //样式表
var oNode =TZDNODE;

if (oNode == null)
{
return null;
}
return oNode.transformNode(oDoc);
}

/** 计算字符串的字节长度
* 一个汉文按两个字节计算
*/
String.prototype.ByteLength = function() {
return this.replace(/[^\x00-\xff]/gi, "xx").length;
}

/** 裁减字符串两端的空格
*/
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}

/** 字符串替换
*/
String.prototype.replaceAll = function(srcText, targetText) {
//String.replace只能替换一次
var str = this;
for(var strTemp=str.replace(srcText, targetText); strTemp!=str; strTemp=str.replace(srcText, targetText) ) {
str = strTemp;
}

return str;
}

/** 获取代码XML
* 与ctais.services.xml的功能相似,不过后者用于jsp中。
* @param tabname 表名
* @param columnNames 列名称数组
* @param hint Oracle Hint
* @param filter 条件
* @return 代码XML。格式为:/ROOT/ITEM
*/
function createDmXml(tableName, columnNames, hint, filter) {
if((tableName != null) && (columnNames instanceof Array) && (columnNames.length > 0)) {
var service = new Service("common.xtservice.island.XmlIslandBndService.init");
var res=service.doService("TABLENAME", tableName
, "COLUMNNAMES", columnNames.join(",")
, "HINT", (hint == null)? "": hint
, "FILTER", (filter == null)? "": filter );
var code=service.getCode();
if(code == "2000"){
return res;
}
else{
return "";
}
}
}


/** 用于格式化xml文件的节点值
* 只针对<><、>、&、'、"、<>数值节点,转换为<><、>、&、'、"、<>
* @param xmlId 页面数据岛的ID
* @param nodeName 要格式化节点的上级节点
* @return 格式化后的xml数据
*/
function formatNodeXML(xmlId, nodeName) {
formatNodeName(xmlId.getElementsByTagName(nodeName));
return xmlId.xml;
}

/** 只针对<><、>、&、'、"、<>数值节点,转换为<><、>、&、'、"、<>
* 不能用在<>sss,ssss,ss<>的节点。
* @param obj 要格式化的xml节点的上级节点。
*
*/
function formatNodeName(obj) {
for (var j = 0; j < obj.length; j++) {
for (var i = 0; i < obj(j).childNodes.length; i++) {
var sValue = obj(j).childNodes(i).text;
if (sValue.indexOf("<") == -1 && sValue.indexOf(">") == -1&& sValue.indexOf("&") == -1&& sValue.indexOf("\'") == -1&& sValue.indexOf("\"") == -1) {
continue;
}
if (sValue.indexOf("<") != -1) {
aValue = sValue.replace("<","<");
}
if (sValue.indexOf(">") != -1) {
aValue = sValue.replace(">",">");
}
if (sValue.indexOf("&") != -1) {
aValue = sValue.replace("&","&");
}
if (sValue.indexOf("\'") != -1) {
aValue = sValue.replace("\'","'");
}
if (sValue.indexOf("\"") != -1) {
aValue = sValue.replace("\"",""");
}
obj(j).childNodes(i).text = aValue;
}//for i
}//for j
}


function getOptionTree(htmlurl) {
newwin=window.open(htmlurl,"window","left=350,top=240,width=350,height=350,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no, resizable=no");
newwin.focus();
return false;
}

function getOptionList(htmlurl) {
newwin=window.open(htmlurl,"homeWin","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=580,height=480,left=250,top=150");
newwin.focus();
return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值