| | |
| | | |
| | | private void getFirstField(TreeGridDTO dto) { |
| | | //1先读表关键功能,如果没有相关的再读表结构 |
| | | |
| | | String keyfields = null; |
| | | List<String> keys = null; |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + dto.dbid); |
| | | String taleName=dto.table; |
| | | if(dto.winType==18||dto.winType==19){ |
| | | taleName=dto.table.split("\\|")[0]; |
| | | } |
| | | keyfields = gridService.getTableKeyFields(taleName); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | if (keyfields == null || "".equalsIgnoreCase(keyfields)) { |
| | | //2只取主表,主从表情况 |
| | | List<String> keys = null; |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + dto.dbid); |
| | | try { |
| | | keys = gridService.getPrimaryKey(dto.table); |
| | | } catch (SQLException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | if (keys != null) { |
| | | keys = gridService.getPrimaryKey(taleName); |
| | | if(keys!=null) { |
| | | for (String str : keys) { |
| | | if (dto.field == "") |
| | | if ("".equals(dto.field)) |
| | | dto.field += str; |
| | | else |
| | | dto.field += ";" + str; |
| | | } |
| | | keys = null; |
| | | } |
| | | } else { |
| | | String[] arry = keyfields.split(";"); |
| | | for (int i = 0; i < arry.length; i++) { |
| | | if ("".equals(dto.field)) |
| | | dto.field += arry[i].toLowerCase(); |
| | | else |
| | | dto.field += ";" + arry[i].toLowerCase(); |
| | | |
| | | } |
| | | arry = null; |
| | | dto.primeKey = dto.field; |
| | | }catch (SQLException e){ |
| | | throw new ApplicationException(e.getMessage()); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | dto.primeKey = dto.field; |
| | | |
| | | } |
| | | |
| | | public void getTableName(int formid, String winType, TreeGridDTO dto) { |