681 lines
23 KiB
Plaintext
681 lines
23 KiB
Plaintext
<%@page import="com.amarsoft.are.jbo.*"%>
|
||
<%@page import="com.amarsoft.asquery.*"%>
|
||
<%@page contentType="text/html; charset=GBK"%><%@
|
||
include file="/IncludeBegin.jsp"%><%
|
||
/*
|
||
Content: --以JBO为基础的灵活统计查询主页面
|
||
*/
|
||
//定义变量
|
||
String environmentOrgID = CurOrg.getOrgID();//--当前机构
|
||
String environmentUserID = CurUser.getUserID();//--当前用户
|
||
String environmentOrgName = CurOrg.getOrgName();//--当前机构名称
|
||
//获得组件参数:查询类型
|
||
String queryClass = CurPage.getParameter("queryClass");
|
||
String defaultScheme = CurPage.getParameter("defaultScheme");
|
||
String queryModelName = CurPage.getParameter("queryModelName");
|
||
String sFlag = CurPage.getParameter("Flag");
|
||
|
||
if(queryClass==null) queryClass="";
|
||
if(defaultScheme==null) defaultScheme="";
|
||
if(queryModelName==null) queryModelName="";
|
||
if(sFlag==null) sFlag="";
|
||
|
||
//构造query
|
||
ASQuery query = new ASQuery(queryClass);
|
||
session.setAttribute("AdvanceXQuery",query);
|
||
|
||
String temp[][] ={
|
||
// {"Group","汇总依据列表","none"},{"Display","输出信息项选择",""},{"Summary","合计字段列表","none"},{"Order","排序字段列表",""}
|
||
{"Display","输出信息项",""},{"Order","排序信息项",""}
|
||
};
|
||
|
||
int schemeSize = 8;
|
||
List<BizObject> l = ASQueryScheme.getQuerySchemes(queryClass, environmentUserID, schemeSize);
|
||
String[][] sComboBox = new String[2][l.size()];
|
||
for(int i=0;i<l.size();i++){
|
||
BizObject bo = l.get(i);
|
||
sComboBox[0][i] = bo==null?"":bo.getAttribute(0).getString();
|
||
sComboBox[1][i] = bo==null?"":bo.getAttribute(1).getString();
|
||
}
|
||
%>
|
||
<html>
|
||
<head>
|
||
<title>高级定制查询</title>
|
||
<style>
|
||
select {overflow:scroll;overflow-x:scroll;width:165px}
|
||
.ConditionMapTR{
|
||
background:url("Frame/page/resources/images/strip/tit-bg.gif") repeat-x bottom;
|
||
}
|
||
.ConditionMapSpan{
|
||
cursor: pointer;width: 15px;height: 15px;
|
||
display: inline-block;
|
||
background: url("Frame/page/resources/images/strip/expand.gif") no-repeat center;
|
||
}
|
||
.ConditionMapSpan.collapse{
|
||
background: url("Frame/page/resources/images/strip/collapse.gif") no-repeat center;
|
||
}
|
||
.ConditionDiv{
|
||
border-bottom: #ffffff 1px solid; border-left: #ffffff 1px solid; border-right: #ffffff 1px solid; width: 100%;
|
||
/* display:none; */
|
||
}
|
||
.ConditionTable{
|
||
width: 100%;background-color: #E4E4E4;
|
||
}
|
||
.FieldSelect {
|
||
width: 100%;
|
||
height: auto;
|
||
overflow: hidden;
|
||
margin: 5px;
|
||
border: 1px solid #aaa;
|
||
cursor: pointer;
|
||
min-height: 60px;
|
||
}
|
||
.FieldSelect span {
|
||
display: inline-block;
|
||
margin: 2px 5px;
|
||
width: 300px;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" style ="width:100%;height:100%;overflow-x:hidden;overflow-y:scroll">
|
||
<table style="width: 100%;height: 99%;border: 0;background-color: #FFFFFF;" align="center" cellpadding="0" cellspacing="0">
|
||
<tr valign="top">
|
||
<td>
|
||
<form id="Main" name="Main">
|
||
<input type="hidden" name=CompClientID value="<%=CurComp.getClientID()%>">
|
||
<input type="hidden" name="CurOrgID" value="<%=environmentOrgID%>">
|
||
<input type="hidden" name="CurUserID" value="<%=environmentUserID%>">
|
||
<input type="hidden" id="RelatedClass" name="RelatedClass" >
|
||
<input type="hidden" id="FilterCols" name="FilterCols" >
|
||
<input type="hidden" id="displayNames" name="displayNames" value="" />
|
||
<input type="hidden" id="queryModelName" name="queryModelName" value="<%=queryModelName%>" />
|
||
<div id="SchemeDiv" style="display: none;position:absolute;left:300px;top:20px;border:1px solid #aaa;background:#eee;padding:10px;" >
|
||
<table border="0" bordercolor="black" style="width: 50%;" cellPadding=0 cellSpacing=0>
|
||
<tr>
|
||
<td witdth="5%"><input type='checkBox' id="checkbox1" name="checkbox1" value="" ></td>
|
||
<td align="left" nowrap >保存方案</td>
|
||
<td style="text-align: right;width: 100px;" nowrap><span>查询方案名称:</span></td>
|
||
<td><input type="text" id="QuerySchemeName" name="QuerySchemeName" value=""></td>
|
||
</tr>
|
||
<tr>
|
||
<td witdth="5%"><input type='checkBox' id="checkbox2" name="checkbox2" checked value="" ></td>
|
||
<td align="left" colspan="3" nowrap>异步查询</td>
|
||
</tr>
|
||
<tr valign="top" style="display: none">
|
||
<td style="text-align: right;width: 100px;"><span>是否私有:</span></td>
|
||
<td><span>
|
||
<label style="cursor:pointer;white-space:nowrap;" for="ISPRIVATE_YES" title="是">
|
||
<input style="cursor:pointer;" type="radio" id="ISPRIVATE_YES" name="ISPRIVATE" value="1" checked>是 </label>
|
||
<label style="cursor:pointer;white-space:nowrap;" for="ISPRIVATE_NO" title="否">
|
||
<input style="cursor:pointer;" type="radio" id="ISPRIVATE_NO" name="ISPRIVATE" value="2" >否 </label>
|
||
</span></td>
|
||
</tr>
|
||
<tr><td colspan="4" align="center">
|
||
<br/><br/>
|
||
<%=new Button("确定","","submitAction(1);","","").getHtmlText()%>
|
||
<%=new Button("取消","","$('#SchemeDiv').hide();","","").getHtmlText()%>
|
||
</td></tr>
|
||
</table>
|
||
</div>
|
||
<table align="center" width="100%" border="1" cellspacing="2" cellpadding="0" bgcolor="#FFFFFF" bordercolor="#FFFFFF">
|
||
<tr bordercolor="#FFFFFF">
|
||
<td valign="middle">
|
||
<%=new Button("查询统计","查询当前设置","DataSubmit()","","").getHtmlText()%>
|
||
<% if(sFlag.equals("1")){%>
|
||
<%=new Button("清除条件","清除当前设置","reloadSelf()","","").getHtmlText()%>
|
||
<%}%>
|
||
</td>
|
||
<td nowrap align="left" width=40%> 选择方案:
|
||
<select id="QuerySchemeNo" name="QuerySchemeNo" onchange="javascript:changeScheme(this.value)">
|
||
<option value=''></option>
|
||
<%=HTMLControls.generateDropDownSelect(sComboBox[0], sComboBox[1], defaultScheme)%>
|
||
</select>
|
||
</td>
|
||
</tr>
|
||
<tr class="ConditonTR" bordercolor="#FFFFFF"></tr> <!-- 隐藏行,不能删除,做动态添加查询条件时的定位 -->
|
||
<% for(int i=0; i<temp.length; i++){ %>
|
||
<tr id="<%=temp[i][0]%>Box" style="display:<%=temp[i][2]%>" bordercolor="#CCCCCC">
|
||
<td colspan="2">
|
||
<table cellPadding=0 cellSpacing=0 style="cursor: pointer;width: 100%;border: 0">
|
||
<tbody>
|
||
<tr class="ConditionMapTR" id="<%=temp[i][0]%>SelectTab" valign="middle" height="20">
|
||
<td align=right valign="middle">
|
||
<span id="<%=temp[i][0]%>SelectTab3" onclick="javascript:showHideContent(event,'<%=temp[i][0]%>Select');" class="ConditionMapSpan"></span></td>
|
||
<td align=left height=20 width="100%" valign="middle" onclick="javascript:document.getElementById('<%=temp[i][0]%>SelectTab3').click();">
|
||
<font color=#000000 id="<%=temp[i][0]%>SelectTab2"><span> <%=temp[i][1]%></span></font></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div id="<%=temp[i][0]%>SelectContent" >
|
||
<div onclick="javascript:do<%=temp[i][0]%>Select();" id="<%=temp[i][0]%>NameList" name="<%=temp[i][0]%>NameList;;Other;" readonly
|
||
rows="6" cols="70" class="FieldSelect" ></div>
|
||
<input type="hidden" id="<%=temp[i][0]%>List" name="<%=temp[i][0]%>List;;Other;" value="">
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<% } %>
|
||
<tr bordercolor="#FFFFFF"><td colspan=2 bgcolor="#FFFFFF"> </td></tr>
|
||
<tr bordercolor="#FFFFFF"><td valign="middle">
|
||
<%=new Button("查询统计","查询当前设置","DataSubmit()","","").getHtmlText()%>
|
||
<% if(sFlag.equals("1")){%>
|
||
<%=new Button("清除条件","清除当前设置","reloadSelf()","","").getHtmlText()%>
|
||
<%}%>
|
||
</tr>
|
||
</table>
|
||
</form>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</body>
|
||
<script type="text/javascript">
|
||
var relatedClasses = new Array(); //本次查询的关联对象数组
|
||
var classesForWhere = new Array(); //修改查询条件时选择的关联对象数组
|
||
var classesForDisplay = new Array(); //输出信息项选择的关联对象数组
|
||
var classesForOrder = new Array(); //排序信息项选择的关联对象数组
|
||
var classesForSummary = new Array(); //汇总信息项选择的关联对象数组
|
||
//扩展Array 判断指定值是否存在数组中
|
||
Array.prototype.Exists=function(v){var b=false;for(var i=0;i<this.length;i++){if(this[i]==v){b=true;break;}}return b;};
|
||
function combineArray(arr1, arr2){ //合并数组,重复项只保留一个
|
||
for(var i=0;i<arr2.length;i++){
|
||
if(!arr1.Exists(arr2[i])) arr1.push(arr2[i]);
|
||
}
|
||
}
|
||
|
||
//字符串替换,将字符串a中的b字符替换为c字符
|
||
function replace(a,b,c){
|
||
var result="";
|
||
var t = a.split(b);
|
||
for(var i=0; i<t.length; i++){
|
||
if(i==0){
|
||
result = t[i];
|
||
}else{
|
||
result += c + t[i];
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
//显示显示字段选择框
|
||
function doDisplaySelect(){
|
||
var sInitString = $("#DisplayList").val();
|
||
if(!sInitString || sInitString == "undefined") sInitString = "";
|
||
var style = "dialogWidth:750px;dialogheight:500px;resizable:yes;status:no;center:yes;help:no;minimize:no;maximize:yes;";
|
||
AsDialog.PopPage("/InfoManage/ASQuery/QuerySelect.jsp","initString="+sInitString+"&type=all&nametype=1",style,function(sReturn){
|
||
if(sReturn) setDisplayFeilds(sReturn);
|
||
});
|
||
}
|
||
|
||
//显示排序字段选择框
|
||
function doOrderSelect(){
|
||
var sInitString = $("#OrderList").val();
|
||
var scope = $("#DisplayList").val();
|
||
var style = "dialogWidth:750px;dialogheight:500px;resizable:yes;status:no;center:yes;help:no;minimize:no;maximize:yes;";
|
||
AsDialog.PopPage("/InfoManage/ASQuery/QuerySelect.jsp","initString="+sInitString+"&scope="+scope+"&type=all&nametype=1",style,function(sReturn){
|
||
if(sReturn) doSelect(sReturn, "Order");
|
||
});
|
||
}
|
||
|
||
//显示合计字段选择框
|
||
function doSummarySelect(){
|
||
var sInitString = $("#SummaryList").val();
|
||
var style = "dialogWidth:750px;dialogheight:500px;resizable:yes;status:no;center:yes;help:no;minimize:no;maximize:yes;";
|
||
AsDialog.PopPage("/InfoManage/ASQuery/QuerySelect.jsp","initString="+sInitString+"&type=number&nametype=2",style,function(sReturn){
|
||
if(sReturn) doSelect(sReturn, "Summary");
|
||
});
|
||
}
|
||
|
||
function doSelect(sReturn,type){
|
||
if (sReturn!="" && typeof(sReturn)!="undefined"){
|
||
if(sReturn=="@"){
|
||
$("#"+type+"NameList").html("");
|
||
$("#"+type+"List").val("");
|
||
}else{
|
||
var aReturn = sReturn.split("@");
|
||
if (aReturn.length > 1){
|
||
if(aReturn[1].split(",").length > 10 && type == "Order"){
|
||
alert("排序字段过多!请斟酌!");return;
|
||
}
|
||
$("#"+type+"NameList").html(aReturn[0]);
|
||
$("#"+type+"List").val(aReturn[1]);
|
||
if(aReturn.length==4){ //第4位为jbo类名的字符串
|
||
var jboClassArray = aReturn[3].split(",");
|
||
if(type == "Order") classesForOrder = new Array(); //先清空
|
||
else if(type == "Summary") classesForSummary = new Array(); //先清空
|
||
for(var i=0; i<jboClassArray.length;i++){
|
||
if(jboClassArray[i] == "<%=queryClass%>") continue;
|
||
if(type == "Order") classesForOrder.push(jboClassArray[i]);
|
||
else if(type == "Summary") classesForSummary.push(jboClassArray[i]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//改变查询定义
|
||
function changeScheme(querySchemeNo){
|
||
relatedClasses = new Array(); //全局变量先置空
|
||
$("#RelatedClass").val("");
|
||
$(".ConditonTR:gt(0)").remove(); // remove关联对象的TR
|
||
// 再AJAX获取方案对应的关联对象及参数变量,组装html后输出到前台展示
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/GetSchemeHtml.jsp",
|
||
data : {
|
||
"CompClientID":sCompClientID,
|
||
"querySchemeNo":querySchemeNo
|
||
},
|
||
async:false,
|
||
success: function(result){
|
||
var result = eval("(" + result + ")");
|
||
var relatedClass = result.relatedClass;
|
||
if(relatedClass!=null){
|
||
relatedClasses = relatedClass; //全局变量赋值
|
||
relatedClass=JSON.stringify(relatedClass);
|
||
}
|
||
$("#RelatedClass").val(relatedClass);
|
||
|
||
//先画html,再赋值
|
||
$('.ConditonTR:last').after(result.conditionHtml);
|
||
for(var id in result.queryParams){
|
||
//HTML元素赋值
|
||
$(document.getElementById(id)).val(result.queryParams[id]);
|
||
}
|
||
if(result.displayFieldNames.length == 0){
|
||
addDefaultSelected(); //若没有输出字段,设置默认选择
|
||
}else{
|
||
$("#DisplayNameList").html(result.displayFieldNames);
|
||
}
|
||
$("#OrderNameList").html(result.orderFieldNames);
|
||
}
|
||
});
|
||
}
|
||
|
||
<%/*查询提交*/%>
|
||
function DataSubmit(){
|
||
if(!$("#DisplayList").val() || $("#DisplayList").val() == "undefined"){
|
||
alert("请选择输出信息项!");
|
||
return;
|
||
}
|
||
|
||
//每个查询客户化自己的必输条件(根据主对象判断)
|
||
var flag = true;
|
||
$(":text[required]:visible").each(function(){
|
||
if(this.value) return;
|
||
flag = false;
|
||
alert($(this).attr("msg"));
|
||
return false;
|
||
});
|
||
if(!flag) return;
|
||
|
||
//必须输入一个查询条件
|
||
var obj = $(".platinputbox");//获取所有的查询输入框对象
|
||
var condition = false;
|
||
for(var i=0;i<obj.length;i++){
|
||
if(obj[i].value!=""){//有输入条件
|
||
condition = true;
|
||
break;
|
||
}
|
||
}
|
||
if(!condition){
|
||
alert("请输入查询条件信息项!");
|
||
return;
|
||
}
|
||
|
||
// 合并关联对象到relatedClasses数组,并转为json串填入对应域
|
||
combineArray(relatedClasses, classesForWhere);
|
||
combineArray(relatedClasses, classesForDisplay);
|
||
combineArray(relatedClasses, classesForOrder);
|
||
combineArray(relatedClasses, classesForSummary);
|
||
$("#RelatedClass").val(JSON.stringify(relatedClasses));
|
||
|
||
$("#SchemeDiv").show();
|
||
/* var querySchemeNo = $("#QuerySchemeNo").val();
|
||
if(!querySchemeNo && confirm("是否保存当前查询方案?")){
|
||
$("#SchemeDiv").show();
|
||
}else{
|
||
submitAction(0);//不检查方案
|
||
} */
|
||
}
|
||
//保存之前的检查
|
||
function checkSave(){
|
||
//1.方案名称不能为空;2.同一个用户的方案名称不能重复
|
||
var name = $.trim($("#QuerySchemeName").val());
|
||
var result = AsControl.RunJavaMethod("com.amarsoft.asquery.action.QuerySchemeManager","isExists","schemeName="+name+",userID=<%=CurUser.getUserID()%>");
|
||
return result;
|
||
}
|
||
|
||
function submitAction(flag){
|
||
var cb1 = document.getElementById("checkbox1").checked;
|
||
var cb2 = document.getElementById("checkbox2").checked;
|
||
var cb3 = document.Main.QuerySchemeName.value;
|
||
|
||
//如果选择保存查询方案,查询方案名称必输
|
||
if(cb1 == true && "" == cb3.trim()){
|
||
alert("查询方案名称不能为空!");
|
||
return;
|
||
}
|
||
flag = 0;
|
||
if(cb1==true){
|
||
flag = 1;
|
||
var res = checkSave();
|
||
if(res=="false"){
|
||
alert("方案名已存在!");
|
||
return;
|
||
}
|
||
}
|
||
$('#SchemeDiv').hide();
|
||
var statResult = "2"; //明细查询
|
||
//if(Main.elements["SummaryList;;Other;"].value != "") statResult = "1"; //汇总查询
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/QueryResult.jsp?saveflag="+flag,
|
||
processData: false,
|
||
async:false,
|
||
data:$("#Main",document).serialize(),
|
||
error : function(){
|
||
alert("查询失败!");
|
||
},
|
||
success: function(result){
|
||
//是同步还是异步查询
|
||
if(cb2==true){
|
||
alert("查询结果正在后台导出Excel,请移步至异步查询模块查看!");
|
||
//servlet访问
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/SynchResultQuery?action=synchquery&clazz=<%=queryClass%>&userID=<%=CurUser.getUserID()%>",
|
||
//url: sWebRootPath+"/InfoManage/ASQuery/QueryResultShowExcel.jsp?CompClientID=<%=CurComp.getClientID()%>",
|
||
processData: false,
|
||
async:true,
|
||
data:"",
|
||
success: function(result){
|
||
//alert(result);
|
||
}
|
||
});
|
||
}else{
|
||
AsDialog.PopView("/InfoManage/ASQuery/QueryResultShow.jsp","StatResult="+statResult);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
//用以控制几个条件区的显示或隐藏
|
||
function showHideContent(event,id){
|
||
var bOn = false;
|
||
var oTab = document.getElementById(id+"Tab");
|
||
var oTab2 = document.getElementById(id+"Tab2");
|
||
var oImage = document.getElementById(id+"Tab3");
|
||
var oContent = document.getElementById(id+"Content");
|
||
var oEmptyTag = document.getElementById(id+"EmptyTag");
|
||
|
||
if (!oTab || !oTab2 || !oImage || !oContent)
|
||
return;
|
||
|
||
var obj = event.srcElement || event.target;
|
||
if (obj){
|
||
bOn = (oContent.style.display.toLowerCase() == "none");
|
||
}
|
||
|
||
if (bOn == false){
|
||
$(oContent).slideUp(function(){
|
||
oImage.className = "ConditionMapSpan";
|
||
});
|
||
}else{
|
||
oImage.className = "ConditionMapSpan collapse";
|
||
$(oContent).slideDown();
|
||
}
|
||
}
|
||
|
||
//下拉列表多选项
|
||
function ShowSelect(sInputName,sColName){
|
||
var dialogPara;
|
||
var sSelected=Main.elements[sInputName].value;
|
||
if(sColName.toUpperCase().indexOf("USERID") > -1){
|
||
//打开机构下属人员多选
|
||
dialogPara = "/InfoManage/ASQuery/TreeMultiOrgUserSelecter.jsp&selected="+sSelected;
|
||
}else{
|
||
dialogPara = "/InfoManage/ASQuery/QuerySelectX.jsp&ColName="+sColName+"&selected="+sSelected;
|
||
}
|
||
var dialoginfo = {
|
||
width: "480px",
|
||
height:"550px",
|
||
para: dialogPara,
|
||
title: "请选择:"
|
||
};
|
||
AsDialog.SelectCommonDialog(dialoginfo, function(selectedValue){setSelectedValue(sInputName, selectedValue);});
|
||
}
|
||
function setSelectedValue(sInputName, selectedValue){
|
||
if(!selectedValue || typeof selectedValue != "string") return;
|
||
if(selectedValue == "_CLEAR_"){
|
||
Main.elements["NOTCONDITION_"+sInputName].value="";
|
||
Main.elements[sInputName].value="";
|
||
}else{
|
||
var sTemp1=selectedValue.split("@@");
|
||
var s1="",s2="";
|
||
for(s=0;s<sTemp1.length;s++){
|
||
var sTemp2=sTemp1[s].split("@");
|
||
if(s==0){
|
||
s1=sTemp2[1];
|
||
s2=sTemp2[0];
|
||
}else{
|
||
s1=s1+"@"+sTemp2[1];
|
||
s2=s2+","+sTemp2[0];
|
||
}
|
||
}
|
||
if(s2.length > 16) s2 = s2.substring(0, 16)+"...";
|
||
Main.elements["NOTCONDITION_"+sInputName].value=s2;
|
||
Main.elements[sInputName].value=s1+"@";
|
||
}
|
||
}
|
||
|
||
//下拉列表多选项
|
||
function ShowSelectJbo(sInputName,sColName){
|
||
var sSelected=Main.elements[sInputName].value;
|
||
AsDialog.PopPage("/InfoManage/ASQuery/QuerySelectJBO.jsp","SelectedCol="+sSelected+"&InputName="+sInputName+"&ColName="+sColName+"",
|
||
"dialogWidth=600px;dialogheight=500px;status:no;center:yes;help:no;minimize:no;maximize:no;border:thin;statusbar:no",function(sReturn){
|
||
if(typeof(sReturn) == "undefined"){
|
||
return;
|
||
}else if(sReturn == "_CLEAR_"){
|
||
Main.elements["NOTCONDITION_"+sInputName].value="";
|
||
Main.elements[sInputName].value="";
|
||
}else if(sReturn.length!=0 && sReturn!=""){
|
||
var sTemp1=sReturn.split("@@");
|
||
var s1="",s2="";
|
||
for(s=0;s<sTemp1.length;s++){
|
||
var sTemp2=sTemp1[s].split("@");
|
||
if(s==0){
|
||
s1=sTemp2[1];
|
||
s2=sTemp2[0];
|
||
}else{
|
||
s1=s1+"@"+sTemp2[1];
|
||
s2=s2+","+sTemp2[0];
|
||
}
|
||
}
|
||
Main.elements["NOTCONDITION_"+sInputName].value=s2.substring(0,16);
|
||
Main.elements[sInputName].value=s1+"@";
|
||
}
|
||
});
|
||
}
|
||
|
||
<%/*选择关联对象*/%>
|
||
function addRelatedClass(jboclazz){
|
||
AsDialog.PopView("/InfoManage/ASQuery/SelectRelatedClass.jsp", "QueryClass="+jboclazz,
|
||
{width:"550px",height:"400px",title:"选择关联对象"},function(sReturn){
|
||
if(!sReturn || sReturn.length == 0) return;
|
||
//先清空
|
||
classesForWhere = new Array();
|
||
$('.ConditonTR[id!=<%=queryClass.substring(queryClass.lastIndexOf(".")+1)%>]').remove();
|
||
var filterCols = new Object(); //存储查询条件字段的对象
|
||
|
||
for(var j=0;j<sReturn.length;j++){
|
||
var jboClass = sReturn[j]["clazz"];
|
||
var attrs = sReturn[j]["attrs"];
|
||
var jboClassName = jboClass.substring(jboClass.lastIndexOf(".")+1);
|
||
//查询条件字段
|
||
filterCols[jboClass] = attrs;
|
||
// 加入修改查询条件时选择的关联对象数组
|
||
if(jboClass != "<%=queryClass%>"){
|
||
classesForWhere.push(jboClass);
|
||
}
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/GetConditionHtml.jsp",
|
||
data : {
|
||
"CompClientID":sCompClientID,
|
||
"queryClass":"<%=queryClass%>",
|
||
"jboClass":jboClass,
|
||
"filterCols":attrs
|
||
},
|
||
async:false,
|
||
success: function(shtml){
|
||
if(jboClass == "<%=queryClass%>"){ //主对象的html做替换
|
||
$('#'+jboClassName).replaceWith(shtml);
|
||
}else{ //否则,添加在最后的ConditonTR元素之后
|
||
$('.ConditonTR:last').after(shtml);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
$("#FilterCols").val(JSON.stringify(filterCols));
|
||
});
|
||
}
|
||
<%/*重置条件*/%>
|
||
function Reset(){
|
||
var related = "";
|
||
for(var i=0;i<relatedClasses.length;i++){
|
||
related += relatedClasses[i]+"@";
|
||
}
|
||
if(related.indexOf("@")>0){
|
||
related = related.substring(0,related.length-1);
|
||
//清除关联对象的相关列
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/ClearRelativeObjectComlun.jsp",
|
||
data : {
|
||
"CompClientID":sCompClientID,
|
||
"jboClass":related
|
||
},
|
||
async:false,
|
||
success: function(shtml){
|
||
}
|
||
});
|
||
}
|
||
relatedClasses = new Array(); //全局变量先置空
|
||
Main.reset();
|
||
for(var k=0;k<Main.elements.length;k++){
|
||
try{
|
||
if(Main.elements[k].item(0).id.indexof("_005")<0){//||Main.elements[k].item(0).name!="DisplayNameList"
|
||
Main.elements[k].item(0).text="";
|
||
}
|
||
}catch(e){}
|
||
}
|
||
changeScheme('<%=defaultScheme%>');
|
||
addDefaultcond();
|
||
}
|
||
|
||
//改变查询方式
|
||
function changeResult(sValue){
|
||
if (sValue=="2") {
|
||
DisplayBox.style.display="";
|
||
SummaryBox.style.display="none";
|
||
OrderBox.style.display="none";
|
||
}
|
||
else{
|
||
DisplayBox.style.display="";
|
||
SummaryBox.style.display="none";
|
||
OrderBox.style.display="none";
|
||
}
|
||
}
|
||
//添加默认的查询条件
|
||
function addDefaultcond(){
|
||
var sReturn = AsControl.RunJavaMethod("com.amarsoft.asquery.action.JBOQueryAction","getDefaultCondition","queryClass=<%=queryClass%>");
|
||
if(!sReturn) return;
|
||
var jboClass = sReturn;
|
||
// 加入修改查询条件时选择的关联对象数组
|
||
if(jboClass != "<%=queryClass%>"){
|
||
classesForWhere.push(jboClass);
|
||
}
|
||
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/GetConditionHtml.jsp?style=none",
|
||
data : {
|
||
"CompClientID":sCompClientID,
|
||
"queryClass":"<%=queryClass%>",
|
||
"jboClass":jboClass
|
||
},
|
||
async:false,
|
||
success: function(shtml){
|
||
$('.ConditonTR:last').after(shtml);
|
||
}
|
||
});
|
||
}
|
||
//查询条件显示隐藏处理
|
||
function showHideFilter(value,id){
|
||
var tid = id.replace(".","");
|
||
if(value=="BetweenString"){
|
||
$("#"+tid+"_span").show();
|
||
}else if(value!="BetweenString"){
|
||
var obj = document.getElementById(id.substring(0,id.length-4)+"-End");
|
||
if(obj!=null){
|
||
document.getElementById(id.substring(0,id.length-4)+"-End").value="";
|
||
}
|
||
$("#"+tid+"_span").hide();
|
||
}
|
||
}
|
||
//查询条件显示隐藏处理
|
||
function addDefaultSelected(){
|
||
if($("#DisplayNameList").val()==""){
|
||
$.ajax({
|
||
type: "POST",
|
||
url: sWebRootPath+"/InfoManage/ASQuery/GetDefaultSelected.jsp",
|
||
data : {
|
||
"CompClientID":sCompClientID,
|
||
"queryClass":"<%=queryClass%>",
|
||
"nametype":"1"
|
||
},
|
||
async:false,
|
||
success: function(shtml){
|
||
setDisplayFeilds(shtml);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
//根据返回设置输出字段
|
||
function setDisplayFeilds(shtml){
|
||
if (shtml && typeof shtml == "string"){
|
||
shtml = trim(shtml);
|
||
if(shtml=="@"){
|
||
$("#DisplayList").val("");
|
||
$("#OrderList").val("");
|
||
$("#DisplayNameList").html("");
|
||
$("#OrderNameList").html("");
|
||
}else{
|
||
var array = shtml.split("@");
|
||
if (array.length>0){
|
||
$("#DisplayNameList").html(array[0]);
|
||
$("#DisplayList").val(array[1]);
|
||
$("#displayNames").val(array[2]);
|
||
$("#OrderNameList").html("");
|
||
$("#OrderList").val("");
|
||
if(array.length==4){ //第4位为jbo类名的字符串
|
||
classesForDisplay = new Array(); //先清空
|
||
var jboClassArray = array[3].split(",");
|
||
for(var i=0; i<jboClassArray.length;i++){
|
||
if(jboClassArray[i] != "<%=queryClass%>"){
|
||
classesForDisplay.push(jboClassArray[i]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//默认只显示输出字段,合计和排序不提供给用户
|
||
//changeResult("2");
|
||
changeScheme('<%=defaultScheme%>');
|
||
addDefaultcond();
|
||
</script>
|
||
</html>
|
||
<%@ include file="/IncludeEnd.jsp"%> |