public String createColumnFilter(ReportRequest rrequest, AbsListReportColBean alrcbean) { ReportBean rbean = alrcbean.getOwner().getReportBean(); StringBuffer resultBuf = new StringBuffer(); AbsListReportFilterBean filterbean = alrcbean.getFilterBean(); StringBuffer paramsBuf = new StringBuffer(); paramsBuf.append("{reportguid:\"").append(rbean.getGuid()).append("\""); paramsBuf .append(",property:\"") .append(((ColBean) alrcbean.getOwner()).getProperty()) .append("\""); paramsBuf.append(",webroot:\"").append(Config.webroot).append("\""); paramsBuf.append(",skin:\"").append(rrequest.getPageskin()).append("\""); CacheDataBean cdb = rrequest.getCdb(rbean.getId()); String imgurl = "/webresources/skin/" + rrequest.getPageskin() + "/images/"; paramsBuf.append(",urlParamName:\""); if (filterbean.isConditionRelate()) { paramsBuf.append(filterbean.getConditionname()).append("\""); paramsBuf.append(",multiply:\"false\""); String filtervalue = rrequest.getStringAttribute(filterbean.getConditionname(), ""); if (!filtervalue.equals("")) { imgurl = imgurl + "filter2.jpg"; } else { imgurl = imgurl + "filter1.jpg"; } } else { paramsBuf.append(filterbean.getId()).append("\""); paramsBuf.append(",multiply:\"true\""); String filtervalue = rrequest.getStringAttribute(filterbean.getId(), ""); if (cdb.getFilteredBean() == null || filtervalue.trim().equals("") || !filterbean.equals(cdb.getFilteredBean())) { imgurl = imgurl + "filter1.jpg"; } else { imgurl = imgurl + "filter2.jpg"; } } imgurl = Tools.replaceAll(Config.webroot + imgurl, "//", "/"); // 过滤图片路径 paramsBuf.append(",filterwidth:").append(filterbean.getFilterwidth()); paramsBuf.append(",filtermaxheight:").append(filterbean.getFiltermaxheight()); paramsBuf.append("}"); resultBuf .append("<SPAN class=\"filter_span\"><input type=\"button\" id=\"") .append(rbean.getGuid() + alrcbean.hashCode()) .append("\""); resultBuf.append( " onmouseout=\"try{drag_enabled=true;}catch(e){}\" onmouseover=\"try{drag_enabled=false;this.style.cursor='pointer';}catch(e){}\""); resultBuf .append( " style=\"width:16px;height:17px;background-color:transparent;border:0; background-image: url(") .append(imgurl + ");\""); resultBuf .append(" onclick=\"try{getFilterDataList(this,'") .append(Tools.jsParamEncode(paramsBuf.toString())) .append("');return false;}catch(e){logErrorsAsJsFileLoad(e);}\""); resultBuf.append("/></SPAN>"); return resultBuf.toString(); }
public String getFilterConditionExpression( ReportRequest rrequest, ReportBean rbean, ReportDataSetValueBean datasetbean) { AbsListReportFilterBean filterBean = rrequest.getCdb(rbean.getId()).getFilteredBean(); if (filterBean == null) return null; ColBean cbTmp = (ColBean) filterBean.getOwner(); if (!cbTmp.isMatchDataSet(datasetbean)) return null; String filterval = rrequest.getStringAttribute(filterBean.getId(), ""); if (filterval.equals("")) return null; if (cbTmp.getDatatypeObj() == null || cbTmp.getDatatypeObj() instanceof VarcharType || cbTmp.getDatatypeObj() instanceof AbsDateTimeType) { filterval = Tools.replaceAll(filterval, ";;", "','"); if (!filterval.startsWith("'")) filterval = "'" + filterval; if (filterval.endsWith("','")) filterval = filterval.substring(0, filterval.length() - 3); if (!filterval.endsWith("'")) filterval = filterval + "'"; if (filterval.equals("'")) filterval = ""; } else { filterval = Tools.replaceAll(filterval, ";;", ","); if (filterval.endsWith(",")) filterval = filterval.substring(0, filterval.length() - 1); } String where = null; String column = null; if (filterBean.getFilterColumnExpression() != null && !filterBean.getFilterColumnExpression().trim().equals("")) { column = filterBean.getFilterColumnExpression(); } else { column = cbTmp.getColumn(); } if (!filterval.trim().equals("")) { where = " where " + column + " in (" + filterval + ") "; } return where; }