<%@page import="com.amarsoft.awe.dw.ui.datamodel.MDataBuilder"%> <%@page import="java.util.Date"%> <%@page import="com.amarsoft.dict.als.cache.AWEDataWindowCache"%> <%@ page contentType="text/html; charset=GBK"%> <%@ include file="/Frame/resources/include/include_begin_info.jspf"%> <%! private ASColumn[] getSortColumn(Vector columns){ class SortColumn implements Comparable { public ASColumn column; public SortColumn(ASColumn column){ this.column = column; } public int compareTo(SortColumn o) { return column.getAttribute("SortNo").compareTo(o.column.getAttribute("SortNo")); } } SortColumn[] cols = new SortColumn[columns.size()]; for(int i = 0; i < columns.size(); i++){ cols[i] = new SortColumn((ASColumn)columns.get(i)); } Arrays.sort(cols); ASColumn[] result = new ASColumn[cols.length]; for(int i = 0; i < cols.length; i++){ result[i] = cols[i].column; } return result; } %> <% String sDoNo = CurPage.getParameter("DoNo"); String sTime = CurPage.getParameter("Time"); ASObjectModel doTemp = null; if(sTime == null){ doTemp = new ASObjectModel(sDoNo, "1=1"); doTemp.setJboWhere("1=2"); sTime = String.valueOf(new Date().getTime()); }else{ doTemp = (ASObjectModel)ObjectConverts.getObject(new File(Component.getDWTmpPath("Visualization_"+CurUser.getUserID()+"_"+sTime))); String sMethodType = CurPage.getParameter("MethodType"); if("save".equals(sMethodType)){ // 保存 BizObjectManager m = JBOFactory.getFactory().getManager("jbo.ui.system.DATAOBJECT_LIBRARY"); BizObjectQuery q = m.createQuery("DoNo = :DoNo"); q.setParameter("DoNo", sDoNo); @SuppressWarnings("unchecked") List bos = q.getResultList(true); for(BizObject bo : bos){ ASColumn col = doTemp.getColumn(bo.getAttribute("ColName").getString()); if(col == null) continue; for (int i = 0; i < MDataBuilder.ColumnsEN.length; i++) { String sAttrName = MDataBuilder.ColumnsEN[i]; if(sAttrName.equalsIgnoreCase("COLTIPS")) sAttrName = "TIPS"; bo.setAttributeValue(sAttrName, col.getAttribute(MDataBuilder.ColumnsEN[i])); } m.saveObject(bo); } }else{ // 拖拽 String src = CurPage.getParameter("src"); String target = CurPage.getParameter("target"); String group = CurPage.getParameter("group"); if(target != null){ boolean before = "true".equals(CurPage.getParameter("before")); DecimalFormat format = new DecimalFormat("0000"); int n = 0; ASColumn srcCol = null; String sSrcSortNo = null, sSrcGroupId = null; ASColumn[] cols = getSortColumn(doTemp.Columns); for(int i = 0; i < cols.length; i++){ String sColIndex = cols[i].getAttribute("ColIndex"); if(src.equals(sColIndex)){ srcCol = cols[i]; continue; } String sSortNo = format.format(++n*10); if(target.equals(sColIndex)){ sSrcGroupId = cols[i].getAttribute("GroupId"); if(before){ sSrcSortNo = sSortNo; sSortNo = format.format(++n*10); }else{ sSrcSortNo = format.format(++n*10); } } cols[i].setAttribute("SortNo", sSortNo); } srcCol.setAttribute("SortNo", sSrcSortNo); srcCol.setAttribute("GroupId", sSrcGroupId); }else if(group != null){ for(int i = 0; i < doTemp.Columns.size(); i++){ ASColumn col = (ASColumn)doTemp.Columns.get(i); if(src.equals(col.getAttribute("ColIndex"))){ col.setAttribute("GroupId", group); col.setAttribute("ColVisible", "1"); break; } } }else{ for(int i = 0; i < doTemp.Columns.size(); i++){ ASColumn col = (ASColumn)doTemp.Columns.get(i); if(src.equals(col.getAttribute("ColIndex"))){ col.setAttribute("ColVisible", "0"); break; } } } } } ObjectConverts.saveObject(new File(Component.getDWTmpPath("Visualization_"+CurUser.getUserID()+"_"+sTime)), doTemp); CurComp.getParentComponent().addDW("Visualization_"+CurUser.getUserID()+"_"+sTime); ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request); dwTemp.Style = "2"; // freeform dwTemp.ReadOnly = "1"; // 只读模式 dwTemp.genHTMLObjectWindow(""); String sButtons[][] = { {"true","All","Button","保存所有元素调整","保存所有修改","saveRecord()","","","",""}, {"true","All","Button","重新加载","重新加载原始模型","reloadModel()","","","",""}, }; %><%@ include file="/Frame/resources/include/ui/include_info.jspf"%> <%@ include file="/Frame/resources/include/include_end.jspf"%>