📄 wdscyhswdscblh.java
字号:
repStr = " ";
}
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
} else {
repStr = " ";
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
}
} else {
repStr = " ";
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
}
lP = lP + repStr.length();
lP++;
if (lP > loopTempBuffer.length()) {
break;
}
} //end elseif (zb.indexOf...
} //end while
lP = 0;
} //end if vTemp
loopResultBuffer.append(loopTempBuffer);
} //end loop
iLenResult = loopResultBuffer.length();
break;
}
buffer = buffer.replace(loopLeftPos,
loopRightPos + rightKey.length(),
loopResultBuffer.toString());
loopLeftPos += iLenResult;
loopLeftPos++;
loopRightPos = loopLeftPos;
if (loopLeftPos > buffer.length()) {
break;
}
}
} catch (Exception e) {
String err = e.getMessage();
System.out.println("replaceLoopStringByKey()=" + err);
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21305";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21305";
}
}
} else {
err = "YCWDSC21305";
}
throw new Exception(err); //替换指标失败e.getMessage());
}
list.add(buffer);
list.add(vvNewTempZb);
return list;
}
/*
//将buffer中的loop标记置换msg中的内容,不实现loop嵌套
//return:size()>=2 ,first=StringBuffer, second=vvNewTempZb
//public StringBuffer replaceLoopString(StringBuffer buffer, Vector vZb) throws
public List replaceLoopString(StringBuffer buffer, Vector vZb) throws
Exception {
List list = new ArrayList();
StringBuffer loopBuffer = new StringBuffer(),
loopResultBuffer = new StringBuffer(),
loopTempBuffer = null;
Vector vvNewTempZb = new Vector();//存放求和结果构造成的指标
if (vZb == null) {
return null;
}
String loopString = "";
Vector vCurrZb = null, vTemp = null;
int loopLeftPos = 0, loopRightPos = 0, loop = 0, iCurrZb = 0;
int iLenResult = 0;
int lP = 0, ivTemp = 0;
String repStr = "", zb = "";
try {
WDSCwdmbzbDAO wdzb = null, tempmbzb = null;//存放循环部分指标
while ((loopLeftPos = buffer.indexOf(WDSCconstant.loopLeft, loopLeftPos)) >= 0) {
while ((loopRightPos = buffer.indexOf(WDSCconstant.loopRight, loopLeftPos)) >=
0) {
loopString = buffer.toString().substring(loopLeftPos,
loopRightPos);
loopString = loopString.substring(WDSCconstant.loopLeft.length(),
loopRightPos - loopLeftPos);
loopResultBuffer.delete(0, loopResultBuffer.length());
loopBuffer.delete(0, loopBuffer.length());
loopBuffer.append(loopString);
//System.out.println("getLoopZb(loopBuffer) begin");
//得到循环部分中的指标
vTemp = getLoopZb(loopBuffer);
//得到:1.最大循环数,即行数 2. 循环指标 3.系统指标(求和)
List listLoopZbMsg = getLoopZbMsg(vTemp, vZb);
Integer integer = (Integer)listLoopZbMsg.get(0);//注该函数不允许返回空,并且size()至少为3
loop = integer.intValue();
vTemp = (Vector)listLoopZbMsg.get(1);
ivTemp = vTemp.size();
vvNewTempZb.add((Vector)listLoopZbMsg.get(2));
//开始替换
loopTempBuffer = new StringBuffer();
for (int i = 0; i < loop; i++) {
loopTempBuffer.delete(0, loopTempBuffer.length());
loopTempBuffer.append(loopBuffer);
if (ivTemp <= 0) {
break;
}
for (int j = 0; j < ivTemp; j++) {
//modify by zch 2005-11-22
//增加对指标的求和(纵向)
//求和:在需要求和的指标前有sum:标记,文档指标应为{sum:xxx},其中xxx为指标
tempmbzb = (WDSCwdmbzbDAO)vTemp.get(j);
zb = tempmbzb.getZB_DM();
//查找指标,并更换
while ((lP = loopTempBuffer.indexOf(WDSCconstant.flagLeft + tempmbzb.getOPER_KEY() + zb +
WDSCconstant.flagRight, lP)) >= 0) {
if (zb.indexOf(WDSCconstant.sysflag) >= 0) {
//当指标为系统参数时进行替换
//@todo 查找指标字段为 zb.substring(zb.indexOf(sysflag) + sysflag.length() + flagLeft.length())
repStr = "当指标为系统参数时进行替换(loop中带有sys:标记)";
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.length() +
WDSCconstant.flagRight.length()) +
zb.length(), repStr);
//处理完毕后,置换下一个指标
lP = lP + repStr.length();
lP++;
if (lP > loopTempBuffer.length()) {
break;
}
} else {
vCurrZb = tempmbzb.getZB_NR();
if (vCurrZb != null) {
if (vCurrZb.size() > i) {
repStr = (String) vCurrZb.get(i);
if (repStr == null) {
repStr = " ";
}
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
} else {
repStr = " ";
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
}
} else {
repStr = " ";
loopTempBuffer.replace(lP,
lP +
(WDSCconstant.flagLeft.
length() +
tempmbzb.getOPER_KEY().
length() +
WDSCconstant.flagRight.
length()) +
zb.length(), repStr);
}
lP = lP + repStr.length();
lP++;
if (lP > loopTempBuffer.length()) {
break;
}
} //end elseif (zb.indexOf...
} //end while
} //end if vTemp
loopResultBuffer.append(loopTempBuffer);
} //end loop
iLenResult = loopResultBuffer.length();
break;
}
buffer = buffer.replace(loopLeftPos,
loopRightPos + WDSCconstant.loopRight.length(),
loopResultBuffer.toString());
loopLeftPos += iLenResult;
loopLeftPos++;
loopRightPos = loopLeftPos;
if (loopLeftPos > buffer.length()) {
break;
}
}
} catch (Exception e) {
String err = e.getMessage();
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21305";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21305";
}
}
} else {
err = "YCWDSC21305";
}
throw new Exception(err); //替换指标失败e.getMessage());
}
list.add(buffer);
list.add(vvNewTempZb);
return list;
}
*/
//vTemp:循环部分的指标
//vZbMsg:整个指标信息
//返回:List, 其中:list第一个存放最大循环次数,第二个存放循环部分指标数据, 第三个存放所有指标信息
public List getLoopZbMsg(Vector vTemp, Vector vZbMsg) throws Exception {
int loop = 0, ii=0;
List list = new ArrayList();
WDSCwdmbzbDAO wdzb = null, tempWdzb = null, newWdzb = null;
String zb = "", zbRes = "";
Vector vCurrZb = null, vLoopZb = new Vector(), vNewZbMsg = new Vector(), vT = null;
int iZb = 0, iTemp = 0;
try {
iTemp = vTemp.size();
for (int i = 0; i < iTemp; i++) {
tempWdzb = (WDSCwdmbzbDAO)vTemp.get(i);
zb = tempWdzb.getZB_DM();
iZb = vZbMsg.size();
for (int z = 0; z < iZb; z++) {
wdzb = (WDSCwdmbzbDAO) vZbMsg.get(z);
if (wdzb.getZB_DM().equals(zb)) {
vCurrZb = (Vector) wdzb.getZB_NR();
double sum = 0.0, tempSum = 0.00;
StringBuffer sb = new StringBuffer("");
if (vCurrZb != null) {
ii = vCurrZb.size();
loop = java.lang.Math.max(ii, loop);
if (tempWdzb.getOPER_TYPE().equals(constant.
OPER_TYPE_SUM)) {
newWdzb = new WDSCwdmbzbDAO();
vT = new Vector();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -