| | |
| | | package com.yc.action.grid; |
| | | |
| | | import com.yc.action.BaseAction; |
| | | import com.yc.action.build.DTO; |
| | | import com.yc.exception.ApplicationException; |
| | | import com.yc.factory.FactoryBean; |
| | | import com.yc.multiData.SpObserver; |
| | |
| | | import java.io.File; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.sql.SQLException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.regex.Pattern; |
| | | |
| | | |
| | |
| | | private StringBuilder fillFT(int type, int ft, String sql, TreeGridDTO dto) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | SqlRowSet rst = null; |
| | | String enumMenu=""; |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + dto.dbid); |
| | | rst = gridService.getFTData(ft); |
| | |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | if (!set.wasNull()) { |
| | | enumMenu=getEnumMenu(dto,set,null); |
| | | while (set.next()) { |
| | | id.append("|").append(this.replaceBlank(set.getString(1))); |
| | | value.append("|").append(this.replaceBlank(set.getString(2))); |
| | |
| | | } |
| | | if (!flag) { |
| | | if (!rst.wasNull()) { |
| | | enumMenu=getEnumMenu(dto,rst,"interValue"); |
| | | while (rst.next()) { |
| | | id.append("|").append(this.replaceBlank(rst.getString("interValue"))); |
| | | if(type==46){ |
| | |
| | | rst = null; |
| | | } |
| | | if (type == 31) |
| | | if (ft != 0)//有表号才会有新增选项 |
| | | if (ft != 0) {//有表号才会有新增选项 |
| | | sb.append(" EnumKeys='").append(id.toString() + "|-add-").append("' Enum='").append(value.toString() + "|<<新增>>").append("' "); |
| | | else//当没表号表示不需要新增选项 |
| | | } else {//当没表号表示不需要新增选项 |
| | | sb.append(" EnumKeys='").append(id.toString()).append("' Enum='").append(value.toString()).append("' "); |
| | | if (org.apache.commons.lang3.StringUtils.isNotBlank(id.toString()) && org.apache.commons.lang3.StringUtils.isNotBlank(enumMenu)) { |
| | | sb.append("EnumMenu=\"").append(enumMenu).append("\" "); |
| | | } |
| | | } |
| | | else { |
| | | if (type != 35) { |
| | | sb.append(" EnumKeys='").append(id.toString()).append("' Enum='").append(value.toString()).append("' "); |
| | | if(org.apache.commons.lang3.StringUtils.isNotBlank(id.toString())&&org.apache.commons.lang3.StringUtils.isNotBlank(enumMenu)) { |
| | | sb.append("EnumMenu=\"").append(enumMenu).append("\" "); |
| | | } |
| | | } |
| | | } |
| | | if (type == 35) {//可编辑列表,值与键需要一样 |
| | |
| | | return sb; |
| | | } |
| | | |
| | | /** |
| | | * 生成下拉列表的enumMenu,主要是为了能显示-号的情况 |
| | | * @param dto |
| | | * @param rst |
| | | * @return |
| | | */ |
| | | private String getEnumMenu(TreeGridDTO dto,SqlRowSet rst,String colName){ |
| | | String menu="{Items:[";//{Value:''},{Value:'-',Text:'-'},{Value:'+',Text:'+'} |
| | | StringJoiner joiner=new StringJoiner(","); |
| | | if(dto.isSuppressBlankLineForDropDown==0){ |
| | | //有留白列 |
| | | joiner.add("{Value:'',Text:''}"); |
| | | } |
| | | while (rst.next()) { |
| | | if(colName==null) |
| | | joiner.add("{Value:'"+rst.getString(1)+"',Text:'"+rst.getString(2)+"'}"); |
| | | else |
| | | joiner.add("{Value:'"+rst.getString(colName)+"',Text:'"+rst.getString("dictvalue")+"'}"); |
| | | |
| | | } |
| | | rst.beforeFirst(); |
| | | return menu+=joiner.toString()+"]}"; |
| | | } |
| | | private synchronized String setJsName(TreeGridDTO dto) { |
| | | return "grid_" + dto.formID + "_" + dto.winType + ".xml"; |
| | | } |