Exemple #1
0
  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();
  }
Exemple #2
0
 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;
 }