131 lines
6.2 KiB
Java
131 lines
6.2 KiB
Java
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;
|
||
|
||
}
|
||
|
||
}
|