FieldMultiBrowserAjax.jsp 5.56 KB
<%@page import="com.greenpineyu.fel.parser.FelParser.selector_return"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.util.StringHelper"%>
<%@ page import="weaver.servicefiles.DataSourceXML"%>
<%@ page import="net.sf.json.JSONArray"%>
<%@ page import="weaver.general.SplitPageUtil"%>
<%@ page import="java.net.URLDecoder"%>
<%@ page import="weaver.conn.RecordSet"%>
<%@ page import="weaver.systeminfo.SystemEnv"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.formmode.virtualform.VirtualFormHandler"%>
<%@ page import="weaver.formmode.service.CommonConstant"%>
<%@ page import="weaver.formmode.customjavacode.CustomJavaCodeRun"%>
<%@ page import="weaver.formmode.service.BrowserInfoService"%>
<%@ page import="weaver.hrm.HrmUserVarify"%>
<%@ page import="weaver.general.SplitPageParaBean"%>
<%@ page import="net.sf.json.JSONObject"%>
<%@ page import="weaver.general.StaticObj" %>
<%@ page import="weaver.interfaces.workflow.browser.Browser" %>
<%@ page import="weaver.interfaces.workflow.browser.BrowserBean" %>
<%@page import="weaver.formmode.tree.CustomTreeData"%>
<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rsm" class="weaver.conn.RecordSet" scope="page" />

<%
request.setCharacterEncoding("UTF-8");
String src = Util.null2String(request.getParameter("src"));
String formid = Util.null2String(request.getParameter("formid"));
String formtype = Util.null2String(request.getParameter("formtype"));
String selectids = Util.null2String(request.getParameter("selectids"));
int perpage = Util.getIntValue(request.getParameter("pageSize"),10) ;
int pagenum = Util.getIntValue(request.getParameter("currentPage") , 1) ;
if(perpage <1) perpage=10;
User user = HrmUserVarify.getUser(request,response);
String convertsql = "";
//处理兼容性  concat  cast函数   zwbo
if(rs.getDBType().equalsIgnoreCase("oracle")) {
	convertsql = " ','||t2.fieldids||',' like '%,' || t1.id || ',%' ";
}else if(rs.getDBType().equalsIgnoreCase("mysql")) {
	convertsql = " CONCAT(',',t2.fieldids,',') like CONCAT('%,',t1.id,',%') ";
} else{
	convertsql = " ','+convert(varchar,t2.fieldids)+ ',' like '%,' + convert(varchar, t1.id) + ',%' ";
}

String backfields = " t1.id, t1.fieldlabel, t1.viewtype, t1.dsporder, t1.detailtable, t1.fieldhtmltype, t1.type";
String fromSql = " from workflow_billfield t1 left join modeformverify t2 on "+convertsql;
String sqlwhere = " billid="+formid;
String orderby = " t1.viewtype asc ";
String sqlprimarykey = " t1.id ";
String vdatasource = "";
if(formtype.equals("maintable")) {
    if(rs.getDBType().equalsIgnoreCase("oracle")){
        sqlwhere+=" and t1.detailtable is null ";
    }else{
        sqlwhere+=" and t1.detailtable ='' ";
    }
	
} else if(!formtype.equals("0")){
	sqlwhere+=" and t1.detailtable  =  '"+formtype+"' ";
}
if("dest".equalsIgnoreCase(src)){
	if(StringHelper.isEmpty(selectids)) {
		sqlwhere += " and 1=2 ";
	} else {
		sqlwhere += " and t1.id in ("+selectids+") ";
	}
} else if("src".equalsIgnoreCase(src)){
	sqlwhere +=" and  t2.id is null ";
}
SplitPageParaBean spp = new SplitPageParaBean();
spp.setBackFields(backfields);
spp.setSqlFrom(fromSql);
spp.setSqlWhere(sqlwhere);
spp.setSqlOrderBy(orderby);
spp.setPrimaryKey(sqlprimarykey);
spp.setPoolname(vdatasource);
spp.setDistinct(false);
spp.setSortWay(spp.DESC);
SplitPageUtil spu = new SplitPageUtil();
spu.setSpp(spp);


int totalPage=0;
if("dest".equalsIgnoreCase(src)){
	pagenum=1;
	totalPage=1;
	rs=spu.getAllRs();
}else if("src".equalsIgnoreCase(src)){
	int RecordSetCounts=0;
	RecordSetCounts = spu.getRecordCount();
	totalPage = RecordSetCounts/perpage;
	if(totalPage%perpage>0||totalPage==0){
		totalPage++;
	}
	rs = spu.getCurrentPageRs(pagenum, perpage);
}
RecordSet rs1 = new RecordSet();
JSONArray jsonArr = new JSONArray();
String mainOption = "";
Hashtable detailOption = new Hashtable();
while(rs.next()) {
	//重复验证只支持:单行文本类型、浏览框类型、选择框类型,
	String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype"));
	if(!("1".equals(fieldhtmltype) || "3".equals(fieldhtmltype) || "5".equals(fieldhtmltype))){
		continue;
	}
	JSONObject tmp = new JSONObject();
	
	String fieldlablename = "";
	String fieldid = Util.null2String(rs.getString("id"));
	fieldlablename = SystemEnv.getHtmlLabelName(rs.getInt("fieldlabel"),user.getLanguage());
	String tempoption = ","+mainOption;
	String isdetail = Util.null2String(rs.getString("viewtype"));
	if(isdetail.equals("1")){
		String optionkey = Util.null2String(rs.getString("detailtable"));
		if(!optionkey.equals("")) tempoption = ","+(String)detailOption.get(optionkey);
	}
	tempoption += ",";
	String tabletypestr = "";
	int detailindex = 0 ;
	if(isdetail.equals("1")) {
		String tempsql = "select t.orderid from workflow_billfield b ,workflow_billdetailtable t where b.viewtype=1 and b.detailtable=t.tablename and b.id="+fieldid;
		rs1.executeSql(tempsql);
		if(rs1.next()){
			int groupid = Util.getIntValue(rs1.getString(1));
			detailindex = groupid ;
			tabletypestr = SystemEnv.getHtmlLabelName(19325, user.getLanguage())+groupid;
		} 
	} else {
		tabletypestr = SystemEnv.getHtmlLabelName(21778, user.getLanguage()) ;
	}
	
	tmp.put("fieldlablename", tabletypestr+"."+fieldlablename);
	tmp.put("fieldid", fieldid);
	jsonArr.add(tmp);
}

JSONObject json = new JSONObject();
json.put("currentPage", pagenum);
json.put("totalPage", totalPage);
json.put("mapList",jsonArr.toString());

out.println(json.toString());
%>