50 lines
2.8 KiB
Plaintext
50 lines
2.8 KiB
Plaintext
<%@page import="com.amarsoft.are.util.json.*"%>
|
||
<%@page import="com.amarsoft.are.jbo.*"%>
|
||
<%@page import="com.amarsoft.asquery.ASQuery"%>
|
||
<%@page import="com.amarsoft.asquery.action.JBOQueryAction"%>
|
||
<%@page contentType="text/html; charset=GBK"%><%@ include file="/IncludeBeginMDAJAX.jsp"%><%
|
||
/*
|
||
Content: 获取查询方案对应的关联对象及参数变量,组装html
|
||
*/
|
||
String querySchemeNo = CurPage.getParameter("querySchemeNo"); //查询方案编号
|
||
if(querySchemeNo==null) querySchemeNo="";
|
||
|
||
ASQuery query = (ASQuery)session.getAttribute("AdvanceXQuery");
|
||
String queryClass = query.queryClass;
|
||
|
||
BizObjectQuery bq = JBOFactory.createBizObjectQuery("jbo.awe.AWE_QUERY_INFO", "QuerySchemeNo=:SchemeNo").setParameter("SchemeNo", querySchemeNo);
|
||
BizObject bo = bq.getSingleResult(false);
|
||
String relatedClass="",queryParams="",displayItems="",orderItems="",filterCols="";
|
||
if(bo!=null){
|
||
relatedClass = bo.getAttribute("RELATEDCLASS").getString();
|
||
queryParams = bo.getAttribute("QUERYPARAMS").getString();
|
||
displayItems = bo.getAttribute("DISPLAYITEMS").getString();
|
||
orderItems = bo.getAttribute("ORDERITEMS").getString();
|
||
filterCols = bo.getAttribute("FilterCols").getString();
|
||
}
|
||
if(StringX.isEmpty(relatedClass)) relatedClass = null;
|
||
if(StringX.isEmpty(queryParams)) queryParams = null;
|
||
|
||
JBOQueryAction action = new JBOQueryAction();
|
||
action.setQueryClass(query.queryClass);
|
||
String sDefaultCondition = action.getDefaultCondition();
|
||
|
||
StringBuffer sb = new StringBuffer();
|
||
//取查询条件字段的JSON对象
|
||
JSONObject filterColJSON = JSONDecoder.decode(filterCols);
|
||
//获取主对象的html
|
||
sb.append(query.getConditionHtml(queryClass, StringX.isEmpty(filterCols)?null:filterColJSON.getValue(queryClass).toString()));
|
||
//获取关联对象的html
|
||
if(!StringX.isEmpty(relatedClass)){
|
||
JSONObject relaArray = JSONDecoder.decode(relatedClass);
|
||
for(int i=0;i<relaArray.size();i++){
|
||
String jboClass = relaArray.get(i).getValue().toString();
|
||
if(jboClass.equals(sDefaultCondition)) continue;
|
||
String jboClassFilterCols = (filterColJSON.getValue(jboClass)==null)?null:filterColJSON.getValue(jboClass).toString();
|
||
sb.append(query.getConditionHtml(jboClass, StringX.isEmpty(filterCols)?null:jboClassFilterCols));
|
||
}
|
||
}
|
||
|
||
//System.out.print("{relatedClass:"+relatedClass+",queryParams:"+queryParams+",conditionHtml:"+JSONEncoder.encode(sb.toString())+",displayFieldNames:"+JSONEncoder.encode(query.getFieldNames(displayItems))+",orderFieldNames:"+JSONEncoder.encode(query.getFieldNames(orderItems))+"}");
|
||
out.print("{relatedClass:"+relatedClass+",queryParams:"+queryParams+",conditionHtml:"+JSONEncoder.encode(sb.toString())+",displayFieldNames:"+JSONEncoder.encode(query.getFieldNames(displayItems))+",orderFieldNames:"+JSONEncoder.encode(query.getFieldNames(orderItems))+"}");
|
||
%><%@ include file="/IncludeEndAJAX.jsp"%> |