Ejemplo n.º 1
0
  public void add() {
    String hCode = $V("hCode");
    boolean update = false;
    int FieldCount =
        new QueryBuilder(
                "select count(*) from ZDMemberField where SiteID = ?",
                ApplicationPage.getCurrentSiteID())
            .executeInt();
    ZDMemberFieldSchema field = new ZDMemberFieldSchema();
    field.setCode($V("Code").trim());
    field.setSiteID(ApplicationPage.getCurrentSiteID());
    if ((XString.isEmpty(hCode)) && (field.fill())) {
      this.response.setLogInfo(0, "已有相同字段");
      return;
    }
    if ((XString.isNotEmpty(hCode)) && (field.fill())) {
      update = true;
    }
    if (!update) {
      if (FieldCount < 20) {
        int index = 1;
        for (int i = 1; i <= 20; i++) {
          if (new QueryBuilder(
                      "select count(*) from ZDMemberField where SiteID = ? and RealField = 'Prop"
                          + i
                          + "'",
                      ApplicationPage.getCurrentSiteID())
                  .executeInt()
              == 0) {
            index = i;
            break;
          }
        }
        field.setRealField("Prop" + index);
      } else {
        this.response.setLogInfo(0, "达到扩展字段上限");
        return;
      }
    }
    field.setValue(this.request);
    field.setName($V("Name"));
    field.setCode($V("Code"));
    field.setAddUser(User.getUserName());
    field.setAddTime(new Date());

    String defaultValue = field.getDefaultValue();
    defaultValue = defaultValue.replaceAll("  ", ",");
    defaultValue = defaultValue.replaceAll(" ", ",");
    defaultValue = defaultValue.replaceAll("  ", ",");
    defaultValue = defaultValue.replaceAll(" ", ",");
    defaultValue = defaultValue.replaceAll(",,", ",");
    defaultValue = defaultValue.replaceAll(",,", ",");
    defaultValue = defaultValue.replaceAll(",", ",");
    if (XString.isEmpty(defaultValue)) {
      defaultValue = "";
    }
    field.setDefaultValue(defaultValue);

    if (Input.equals(field.getInputType())) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setListOption("");
    } else if (Text.equals(field.getInputType())) {
      field.setListOption("");
    } else if (Selecter.equals(field.getInputType())) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if (Radio.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if (Checkbox.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setVerifyType(STRING);
    } else if ((DateInput.equals(field.getInputType()))
        || (TimeInput.equals(field.getInputType()))) {
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setListOption("");
      field.setVerifyType(STRING);
    } else if (HTMLInput.equals(field.getInputType())) {
      field.setIsMandatory("N");
      field.setColSize(null);
      field.setRowSize(null);
      field.setMaxLength(null);
      field.setListOption("");
      field.setVerifyType(STRING);
    }

    Transaction trans = new Transaction();
    if (update) trans.add(field, OperateType.UPDATE);
    else {
      trans.add(field, OperateType.INSERT);
    }
    if (trans.commit()) this.response.setLogInfo(1, "保存会员扩展字段成功!");
    else this.response.setLogInfo(0, "发生错误!");
  }