apzl_leasing/calc/com/tenwa/reckon/product/ASDataWindowSeUtil.java
2018-06-03 22:26:41 +08:00

131 lines
6.2 KiB
Java
Raw Blame History

package com.tenwa.reckon.product;
import java.util.Hashtable;
import java.util.Vector;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.lang.StringX;
import com.amarsoft.awe.dw.ASDataObject;
import com.amarsoft.awe.dw.ASDataWindow;
import com.amarsoft.awe.dw.handler.BusinessProcessData;
import com.amarsoft.awe.dw.ui.htmlfactory.BaseInfoGenerator;
import com.amarsoft.awe.dw.ui.htmlfactory.InfoHtmlGenerator;
import com.amarsoft.awe.dw.ui.htmlfactory.InfoHtmlWithASDataObjectGenerator;
import com.amarsoft.awe.dw.ui.htmlfactory.imp.DefaultInfoHtmlGenerator;
import com.amarsoft.awe.dw.ui.invoke.GenHtmlInvoker;
import com.amarsoft.awe.dw.ui.invoke.GenHtmlInvokerFilter;
import com.amarsoft.awe.dw.ui.keyfilter.jsgenerate.IKeyFilterBuilder;
import com.amarsoft.awe.dw.ui.keyfilter.jsgenerate.KeyFilterBuilder;
import com.amarsoft.awe.dw.ui.util.Const;
import com.amarsoft.awe.dw.ui.validator.client.IVaildateJSCode;
import com.amarsoft.awe.dw.ui.validator.client.JQueryForm;
import com.amarsoft.awe.util.ObjectConverts;
public class ASDataWindowSeUtil {
public static Vector<String> genHTMLDataWindow(ASObjectWindowCalc datawindow,String sArgsValue, BusinessProcessData bpData, int iMyMaxRows)
throws Exception {
ASDataObject asObj = datawindow.getDataObject();
asObj.setInitParameters(datawindow.getParameters());
asObj.setParameters(datawindow.getParameters());
String dataQueryClass = asObj.getDataQueryClass();
if (datawindow.Style.equals("2")) {
asObj.setHtmlEvent("", "onfocus", "showItemTips", "this");
asObj.setHtmlEvent("", "onblur", "hideItemTips", "this");
if (datawindow.ReadOnly.equals("-1"))
datawindow.ReadOnly = "0";
else if (datawindow.ReadOnly.equals("2"))
datawindow.ReadOnly = "-2";
if (!StringX.isSpace(sArgsValue)&& (!sArgsValue.startsWith("{") || !sArgsValue.endsWith("}")))
sArgsValue = ASDataWindow.getTrueParams(asObj.getJboWhere(),sArgsValue);
InfoHtmlGenerator generator = null;
if (StringX.isEmpty(dataQueryClass)) {
generator = new DefaultInfoHtmlGenerator(asObj, sArgsValue,datawindow.getWebRootPath(), datawindow.getRequest());
} else {
InfoHtmlWithASDataObjectGenerator generator2 = (InfoHtmlWithASDataObjectGenerator) Class.forName(dataQueryClass).newInstance();
generator2.initBasicParams(asObj, sArgsValue,datawindow.getWebRootPath(), datawindow.getRequest());
generator = generator2;
}
if (datawindow.ReadOnly.equals("1"))
generator.setInputStatus(2);
else if (datawindow.ReadOnly.equals("-2"))
generator.setInputStatus(-2);
generator.run(bpData);
Vector<String> vTemp = new Vector<String>();
if (StringX.isEmpty(dataQueryClass)) {
vTemp.add(getHtmlResult(datawindow,asObj,(DefaultInfoHtmlGenerator)generator,asObj.getStyleId()));
}else{
vTemp.add(getHtmlResult(datawindow,asObj,(InfoHtmlWithASDataObjectGenerator)generator,asObj.getStyleId()));
}
datawindow.CurPage.getCurComp().saveDataObject(asObj);
return vTemp;
}
return null;
}
public static String getHtmlResult(ASObjectWindowCalc datawindow,ASDataObject asObj,BaseInfoGenerator generator,String styleId) throws Exception{
BizObject bizObj=generator.getBizObj();
Hashtable virtualFieldValues=generator.getVirtualFieldValues();
datawindow.setData(virtualFieldValues);
int inputStatus=generator.getInputStatus();
String webRootPath=generator.getWebRootPath();
String formName="myiframe0";
Vector rules=generator.getRules();
String serializedJBO=ObjectConverts.getString(bizObj);
String serializedASD=asObj.getSerializableName();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GenHtmlInvoker invoker = new GenHtmlInvokerCalc(datawindow);
asObj.setNeedFillDefaultValue(bizObj.getState() == 2);
//<2F><><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD>
String sResult = invoker.generate(asObj, styleId, bizObj,virtualFieldValues, inputStatus, false, webRootPath);
if (bizObj.getState() != 2)
sResult = sResult.replaceAll("\\{dwrowcount\\}", "1");
else
sResult = sResult.replaceAll("\\{dwrowcount\\}", "0");
IVaildateJSCode validCode = new JQueryForm(asObj,asObj.getValidateTagList());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
sResult = (new StringBuilder()).append(sResult).append("<script> _user_validator[").append(formName.substring(8)).append("] = ").append(validCode.generate(webRootPath, formName, rules)).toString();
IKeyFilterBuilder keyFilter = new KeyFilterBuilder();
sResult = (new StringBuilder()).append(sResult).append(keyFilter.getResult((new StringBuilder()).append(Const.getDWControlPath(webRootPath)).append("/AutoComplete.jsp").toString(),asObj.getDONO())).append("</script>").toString();
sResult = sResult.replaceAll("\\{SERIALIZED_JBO\\}", serializedJBO);
sResult = sResult.replaceAll("\\{SERIALIZED_ASD\\}", serializedASD);
String[] displayFields = invoker.getDisplayFields();
StringBuffer sCode = new StringBuffer();
if (displayFields != null) {
for (int i = 0; i < displayFields.length; i++)
{
sCode.append((new StringBuilder()).append(",'").append(displayFields[i]).append("'").toString());
}
}
sResult = (new StringBuilder()).append(sResult).append("\n<script>DisplayFields[").append(formName.substring(8)).append("] = [").append(sCode.substring(1)).append("];\nDisplayDONO='").append(asObj.getDONO()).append("';\n</script>").toString();
return sResult;
}
public static String getHtmlResult(ASObjectWindowCalc datawindow,ASDataObject asObj,InfoHtmlWithASDataObjectGenerator generator,String styleId) throws Exception{
GenHtmlInvoker invoker = new GenHtmlInvokerCalc(datawindow);
Hashtable data=generator.getData();
datawindow.setData(data);
int inputStatus=-2;
String sResult = invoker.generate(asObj, styleId, data, inputStatus,false, datawindow.getWebRootPath());
sResult = sResult.replaceAll("\\{dwrowcount\\}", "0");
String displayFields[] = invoker.getDisplayFields();
StringBuffer sCode = new StringBuffer();
if (displayFields != null) {
for (int i = 0; i < displayFields.length; i++)
{
sCode.append((new StringBuilder()).append(",'").append(displayFields[i]).append("'").toString());
}
}
sResult = (new StringBuilder()).append(sResult).append("\n<script>DisplayFields[0] = [").append(sCode.substring(1)).append("];\nDisplayDONO='").append(asObj.getDONO()).append("';\n</script>").toString();
return sResult;
}
}