CreateBrowserOperation.jsp 7.78 KB
<%@page import="weaver.formmode.virtualform.VirtualFormHandler"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.formmode.browser.ResetFormmodeBrowserCache"%>
<%@ page import="weaver.formmode.excel.ModeCacheManager"%>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="FormmodeBrowserXML" class="weaver.formmode.browser.FormmodeBrowserXML" scope="page" />
<%
if (!HrmUserVarify.checkUserRight("FORMMODEAPP:ALL", user)) {
	response.sendRedirect("/notice/noright.jsp");
	return;
}

String browserid = Util.null2String(request.getParameter("browserid"));
String customid = Util.null2String(request.getParameter("customid"));
String dataid = Util.null2String(request.getParameter("dataid"));
String type = Util.null2String(request.getParameter("type"));
String objid = Util.null2String(request.getParameter("objid"));
if(!browserid.equals("")&&!customid.equals("")&&!type.equals("")){
	String modeid = "";
	String formid = "";
	String titlefieldid = "";
	String titlename = "";
	String titleviewtype="";
	String tablename = "";
	String pkfield = "";
	String detailtable = "";
	
	String sql = "select a.modeid,a.customname,a.customdesc,a.formid,a.modeid,a.detailtable from mode_custombrowser a where a.id="+customid;
	rs.executeSql(sql);
	if(rs.next()){
		formid = Util.null2String(rs.getString("formid"));	
		modeid = Util.null2String(rs.getString("modeid"));
		detailtable = Util.null2String(rs.getString("detailtable"));
	}
	
	sql = "select tablename from workflow_bill where id = " + formid;
	rs.executeSql(sql);
	while(rs.next()){
		tablename = Util.null2String(rs.getString("tablename"));
	}
	
	
	sql = "select b.id,b.fieldname,a.istitle,b.viewtype from mode_CustomBrowserDspField a,workflow_billfield b where a.fieldid = b.id and a.customid = "+customid+" and (a.istitle = '1' or a.istitle='2')";
	rs.executeSql(sql);
	int istitle=0;
	while(rs.next()){
		titlefieldid = Util.null2String(rs.getString("id"));
		titlename = Util.null2String(rs.getString("fieldname"));
		istitle = Util.getIntValue(Util.null2String(rs.getString("istitle")),0);
		titleviewtype = Util.null2String(rs.getString("viewtype"));
	}
	sql = "select b.fieldname,a.ispk from mode_CustomBrowserDspField a,workflow_billfield b where a.fieldid = b.id and a.customid = "+customid+" and a.ispk = '1'";
	rs.executeSql(sql);
	while(rs.next()){
		pkfield = Util.null2String(rs.getString("fieldname"));
	}
	if("".equals(pkfield)){
		pkfield = "id";
	}
    boolean isVirtualForm = VirtualFormHandler.isVirtualForm(formid);
    if(isVirtualForm){
    	tablename = VirtualFormHandler.getRealFromName(tablename);
    }
    String searchById = "";
    String search = "";
    String searchByName = "";
    if(isVirtualForm){
    	rs.executeSql("select vprimarykey from ModeFormExtend where formid="+formid);
    	String vprimarykey = "";
    	if(rs.next()){
    		vprimarykey = Util.null2String(rs.getString("vprimarykey"));
    	}
    	searchById = "select "+titlename+","+titlename+" from "+tablename+" where "+vprimarykey+"=?";
    	search = "select "+vprimarykey+","+titlename+","+titlename+" from "+tablename;
    	searchByName = "select "+vprimarykey+","+titlename+","+titlename+" from "+tablename + " where " + titlename + " like ?";
    }else{
    	if(!"".equals(detailtable)){//选择了明细表
   			searchById = "select d1."+titlename+",d1."+titlename+" from "+tablename+" t1 inner join  "+detailtable+" d1 on t1.id=d1.mainid where d1."+pkfield+"=?";
    		search = "select d1."+pkfield+",d1."+titlename+",d1."+titlename+" from "+tablename+" t1 inner join  "+detailtable+" d1 on t1.id=d1.mainid ";
   			searchByName = "select d1."+pkfield+",d1."+titlename+",d1."+titlename+" from "+tablename + " t1 inner join  "+detailtable+" d1 on t1.id=d1.mainid where d1." + titlename + " like ?";
    	}else{//未选择明细表
    		searchById = "select "+titlename+","+titlename+" from "+tablename+" where "+pkfield+"=?";
    		search = "select "+pkfield+","+titlename+","+titlename+" from "+tablename;
    		searchByName = "select "+pkfield+","+titlename+","+titlename+" from "+tablename + " where " + titlename + " like ?";
    	}
    	
    }
    
    String outPageURL = "/formmode/browser/CommonSingleBrowser.jsp?customid="+customid;
    String from = "1";
    String href = "";
   	if(detailtable.equals("")){
   	 	if("id".equals(pkfield)||"".equals(pkfield)){
	   		href = "/formmode/view/AddFormMode.jsp?type=0&modeId="+modeid+"&formId="+formid+"&billid=";
	    }else{
	    	href = "/formmode/view/AddFormMode.jsp?type=0&modeId="+modeid+"&pkfield="+pkfield+"&formId="+formid+"&billid=";
	    }
   	}else{
   		href = "/formmode/view/AddFormMode.jsp?type=0&modeId="+modeid+"&pkfield="+pkfield+"&detailtable="+detailtable+"&formId="+formid+"&detailbillid=";
   	}
    if(istitle==2)
    	href="";
    if(type.equals("2")){
    	outPageURL = "/formmode/browser/CommonMultiBrowser.jsp?customid="+customid;
    }
    String ds = "";
    String nameHeader = "";
    String descriptionHeader = "";

    Hashtable dataHST = new Hashtable();
    dataHST.put("customid",customid);
    dataHST.put("ds",ds);
    dataHST.put("search",search);
	dataHST.put("sqltext1",searchById);
    dataHST.put("sqltext2",searchByName);
    dataHST.put("searchById",searchById);
    dataHST.put("searchByName",searchByName);
    dataHST.put("nameHeader",nameHeader);
    dataHST.put("descriptionHeader",descriptionHeader);
    dataHST.put("outPageURL",outPageURL);
    dataHST.put("from",from);
    dataHST.put("href",href);
	if(isVirtualForm){
		Map<String,Object> vFormInfo =  VirtualFormHandler.getVFormInfo(formid);
		dataHST.put("ds","datasource."+vFormInfo.get("vdatasource"));
	}
    String method = Util.null2String(request.getParameter("method"));
    if(method.equals("initData")){//初始化已经存在的配置信息--更新操作
    	//String tempsql = "select * from (select showname from datashowset union all select showname from mode_browser)a where a.showname='"+browserid+"'";	
    	String tempsql = "select * from mode_browser a where a.showname='"+browserid+"'";	
    	rs.executeSql(tempsql);
    	int counts = rs.getColCounts();
        if(counts > 0){
    		dataHST.put("name",browserid);
    		FormmodeBrowserXML.writeToBrowserXMLAdd(browserid,dataHST,"update");
			ResetFormmodeBrowserCache.resetCache();
			ModeCacheManager.getInstance().reloadBrowser(browserid);
        	%>
        	<script type="text/javascript">
				location.href = "/formmode/setup/browsersetinfo.jsp?customid=<%=customid%>&id=<%=browserid%>&browserid=<%=browserid%>&dataid=<%=dataid%>&objid=<%=objid%>";
			</script>
        	<%
    	}
    }else{
    String tempsql = "select * from (select showname from datashowset union all select showname from mode_browser)a where a.showname='"+browserid+"'";	
    rs.executeSql(tempsql);
	int counts = rs.getColCounts();
    if(counts > 0){
%>
		<script type="text/javascript">
			parent.location.href = "/formmode/browser/CreateBrowser.jsp?customid=<%=customid%>&browserid=<%=browserid%>&type=<%=type%>&flag=1";
		</script>
<%
    }else{
    	FormmodeBrowserXML.writeToBrowserXMLAdd(browserid,dataHST,"update");
		ResetFormmodeBrowserCache.resetCache();
		ModeCacheManager.getInstance().reloadBrowser(browserid);
%>
		<script type="text/javascript">
			window.top.Dialog.alert("<%=SystemEnv.getHtmlLabelName(18758,user.getLanguage())%>");//保存成功
			var parentWin = parent.parent.parent.getParentWindow(parent.parent);
			var dialog = parent.parent.parent.getDialog(parent.parent);
			dialog.close();
			parentWin.location.href = parentWin.location.href;
		</script>
<%
    }
	}
}else{
%>
	<script type="text/javascript">
		parent.location.href = "/formmode/browser/CreateBrowser.jsp?customid=<%=customid%>&browserid=<%=browserid%>&type=<%=type%>&flag=2";
	</script>
<%
}
%>