📄 autobuild.java
字号:
package com.gs.pageBuilder.util;
import java.util.*;
import java.sql.*;
import com.gs.util.*;
import com.gs.pageBuilder.model.*;
import com.gs.pageBuilder.util.PageBuildUtil;
import com.gs.pageBuilder.dao.*;
public class AutoBuild{
public AutoBuild(){}
public static ArrayList autoBuilder(String code,String model,
HashMap strParment,String tableWidth,String pageContext){
HashMap hm = new HashMap();
HashMap hms = new HashMap(); //存放数据库行数据00010001=[field1,fieldn...]
HashMap hmcell = new HashMap(); //存放形成物理表格的每一物理行数据0=[00010001, 00010002],1=[00020001]
HashMap hmlayer = new HashMap(); //存放数据库行数据00010001=[field1,fieldn...]
HashMap elementCode = new HashMap();
HashMap groupResult = new HashMap();
HashMap tableCodeMap = new HashMap();
HashMap inputcode = null;
ReportPageDataModel reportPageDataModel = null;
ArrayList reportList = new ArrayList(); //上报数据
ArrayList autoBuildList = new ArrayList();
ArrayList all = new ArrayList();
ArrayList tableCode = null; //物理表所有数据
ArrayList subCode = new ArrayList(); //每一行元素所有元素
ArrayList tempResult = null;
int uploadrowNum = 0;
int uploadcolNum = 0;
int log = 0;
int k;
int m;
int n;
int i;
int j;
String sql;
String tempStr;
String pageStyle;
String result = "";
String rowcolendpoint = ""; //行结束
String codeIDState;
String combination = ""; //合并后数据传
StringBuffer tableOutStr = new StringBuffer(); //合并所有字符串,最后返回这个值
StringBuffer layerOutStr = new StringBuffer(); //合并所有字符串,最后返回这个值
ArrayList printSetupList;
int printSetup_Left=0;
int printSetup_Top=0;
try{
//获得打印设置
printSetupList=(ArrayList)PageBuildUtil.getPagePrintSetup(strParment,code);
if(printSetupList!=null&&printSetupList.size()>1){
printSetup_Left = Integer.parseInt((String) printSetupList.get(0));
printSetup_Top = Integer.parseInt((String) printSetupList.get(1));
}
if(code == null || model == null || strParment == null){
Debug.println("[AutoBuild]autoBuilder------->>code or model or strParment is null!");
}
PageDefineDAO pageDefineDAO = PageDefineDAOFactory.getDAO();
Debug.println("[AutoBuild]autoBuilder------->>start!");
//获得物理表所有数据
tableCodeMap = pageDefineDAO.getTableCode(code,model);
Debug.println("[AutoBuild]autoBuilder------->>获得物理表所有数据 tableCode' size :" + tableCodeMap.size());
//求页面输出
for(i = 0;i < tableCodeMap.size();i++){
all = (ArrayList) tableCodeMap.get((Object)new Integer(i));
codeIDState = ((String) all.get(0)).substring(0,1);
rowcolendpoint = (String) all.get(12); //行结束
Debug.println("code:" + all.get(0) + " content:" + all.get(2));
//取得当前样式
pageStyle = PageBuildUtil.getPageStyle(all);
//取得样式组 class
if(("0").equals(codeIDState) || ("1").equals(codeIDState) || ("2").equals(codeIDState) || ("3").equals(codeIDState) ||
("4").equals(codeIDState) || ("5").equals(codeIDState) || ("6").equals(codeIDState)){
//是否行结束 hm 存放形成物理表格的每一物理行数据0=[00010001, 00010002],1=[00020001]
//标签样式的文字输出
if(("1").equals(all.get(1)) && ("1").equals(all.get(4))){
result = ((String) all.get(2)).trim();
if(result == null || "".equals(result)){
result = " ";
}
//是否换行
if(log == 1){
log = 0;
uploadrowNum++;
uploadcolNum = 0;
}
if("1".equals(codeIDState)){
log = 1;
}
result = PageBuildUtil.dataTypeConversion(result,(String) all.get(23),(String) all.get(24));
//是否报出
if(("1").equals((String) all.get(28))){
reportPageDataModel = new ReportPageDataModel();
reportPageDataModel.setCode((String) all.get(0));
reportPageDataModel.setPageCode((String) code);
reportPageDataModel.setContent((String) all.get(2));
reportPageDataModel.setTableRow("" + uploadrowNum);
reportPageDataModel.setTableCol("" + uploadcolNum);
if(log == 1){
reportPageDataModel.setRowColEndPoint("1");
} else{
reportPageDataModel.setRowColEndPoint("0");
}
//输出串
tableOutStr.append("<td " + pageStyle + "><div id=x" + uploadcolNum + "y" + uploadrowNum + "$>" + result + "</div></td>");
// Debug.println("标签样式的文字输出 out:----------------->>>ID:" +
// all.get(1) + " result:" + all.get(2));
uploadcolNum++;
reportList.add(reportPageDataModel);
Debug.println("上报数据: uploadrowNum:" + uploadrowNum + " uploadcolNum:" + uploadcolNum + " reportList'size:" + reportList.size());
} else{
//输出串
tableOutStr.append("<td " + pageStyle + ">" + result + "</td>");
// Debug.println("标签样式的文字输出 out:----------------->>>ID:" +
// all.get(1) + " result:" + all.get(2));
}
} else
//生成页面按扭
if(("1").equals(all.get(1)) && ("4").equals(all.get(4))){
sql = (String) all.get(3);
sql = PageBuildUtil.pageFilterPar(strParment,sql);
Debug.println("<!--生成页面按扭-->" + all.get(0));
tableOutStr.append("<td " + pageStyle + "><input type=button name=B" + all.get(0) +
" value=\"" + all.get(2) + "\" " +
sql +
" onmouseover=\"this.className='mouseover textNoPrint'\" onmouseout=\"this.className='button textNoPrint'\"></td>");
} else
//查询条件输入页面的文本框输出
if(("1").equals(all.get(1)) && ("2").equals(all.get(4))){
sql = (String) all.get(3);
sql = PageBuildUtil.pageFilterPar(strParment,sql);
Debug.println("<!--查询条件输入页面的文本框输出-->" + all.get(0) + " " + sql);
tableOutStr.append("<td " + pageStyle + "> <input type=text style=\"WIDTH: 95%;\" name=" +
all.get(2) + " " + sql + " ></td>");
} else
//从数据库中提出的业务值输出
if(("2").equals(all.get(1))){
//是否为组输出
result = "";
//获得组逻辑结果串
tempResult = (ArrayList) PageBuildUtil.getGroupResult(code,
(String) all.get(0),strParment,uploadrowNum,uploadcolNum,reportList,(String) all.get(2));
if(tempResult != null && tempResult.size() > 0){
uploadrowNum = Integer.parseInt((String)
tempResult.get(0));
uploadcolNum = Integer.parseInt((String)
tempResult.get(1));
result = (String) tempResult.get(2);
reportList = (ArrayList) tempResult.get(3);
}
if(!result.equals("")){
//输出串
//如果替换输出形式
// Debug.println((String) all.get(2));
if("*".equals((String) all.get(2))){
//tableOutStr.append("</tr>" + result + "<tr>");
if(result.length()>5)result=result.substring(4,result.length()-5);
tableOutStr.append(result);
} else{
tableOutStr.append("<td " + pageStyle + ">" + result + "</td>");
}
//.println("al.get(2):" + all.get(2));
// Debug.println("逻辑组输出 不做报出处理 upload out:----------------->>>ID:" + all.get(0) + all.get(1) + " all.get(2):" + all.get(2));
} else{
//单逻辑为sql变量负值
sql = (String) all.get(2);
Debug.println(sql);
//过滤页面参数,替换
sql = PageBuildUtil.pageFilterPar(strParment,sql);
Debug.println(sql);
//获得单逻辑结果
if(sql != null && !"".equals(sql) && !"*".equals(sql)){
result = pageDefineDAO.getLogicResult(sql);
}
if(result == null || "".equals(result.trim())){
result = " ";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -