| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- package cn.com.goldenwater.dcproj.utils.export;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Iterator;
- public class DBRow extends ArrayList {
- public DBRow() {
- }
- public DBRow(int size) {
- super(size);
- }
- public DataField getField(String fieldName) {
- DataField field = null;
- int i = 0;
- do {
- if (i >= size()) {
- break;
- }
- Object obj = get(i);
- DataField outField = (DataField) obj;
- if (outField.getFieldID().equalsIgnoreCase(fieldName)) {
- field = outField;
- break;
- }
- i++;
- } while (true);
- return field;
- }
- public DataField getField(String tableID, String fieldName) {
- DataField field = null;
- int i = 0;
- do {
- if (i >= size()) {
- break;
- }
- Object obj = get(i);
- DataField outField = (DataField) obj;
- if (outField.getTableID().trim().equalsIgnoreCase(tableID) && outField.getFieldID().trim().equalsIgnoreCase(fieldName)) {
- field = outField;
- break;
- }
- i++;
- } while (true);
- return field;
- }
- public int getFieldIndex(DataField field) {
- int index = -1;
- int length = size();
- int i = 0;
- do {
- if (i >= length) {
- break;
- }
- DataField field2 = (DataField) get(i);
- if (field2.getTableID().trim().equalsIgnoreCase(field.getTableID()) && field2.getFieldID().trim().equalsIgnoreCase(field.getFieldID())) {
- index = i;
- break;
- }
- i++;
- } while (true);
- return index;
- }
- public void removeField(DataField field) {
- int i = 0;
- do {
- if (i >= size()) {
- break;
- }
- Object obj = get(i);
- DataField outField = (DataField) obj;
- if (outField.getFieldID().trim().equalsIgnoreCase(field.getFieldID().trim()) && outField.getTableID().trim().equalsIgnoreCase(field.getTableID().trim())) {
- remove(i);
- break;
- }
- i++;
- } while (true);
- }
- public void resetField(DataField field) {
- removeField(field);
- add(field);
- }
- public void printRow() {
- DataField field = null;
- for (int i = 0; i < size(); i++) {
- Object obj = get(i);
- DataField outField = (DataField) obj;
- System.out.print("��" + outField.getTableID() + ".");
- System.out.print(outField.getFieldID() + "��=\t");
- System.out.print(outField.getValue() + "\t");
- }
- System.out.println();
- }
- public ArrayList getPrimaryKeys() {
- ArrayList keyFields = new ArrayList();
- Iterator fieldIterator = iterator();
- do {
- if (!fieldIterator.hasNext()) {
- break;
- }
- DataField field = (DataField) fieldIterator.next();
- if (field.isPrimaryKey()) {
- keyFields.add(field);
- }
- } while (true);
- return keyFields;
- }
- private SimpleDateFormat stimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- private SimpleDateFormat sdateFormat = new SimpleDateFormat("yyyy-MM-dd");
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("{");
- for (int i = 0; i < size(); i++) {
- Object obj = get(i);
- DataField outField = (DataField) obj;
- Object value = outField.getValue();
- Object _v;
- if (value != null && value instanceof java.sql.Timestamp) {
- _v = stimeFormat.format(new java.util.Date(((java.sql.Timestamp) value).getTime()));
- } else if (value != null && value instanceof java.sql.Date) {
- _v = sdateFormat.format(value);
- } else {
- _v = value;
- }
- if (i > 0) {
- sb.append(",");
- }
- sb.append("\"" + outField.getFieldID().toUpperCase() + "\":");
- /**
- * 这里要进行转换处理
- */
- String type = outField.getType();
- if ("NUMBER".equals(type)) {
- String _value = outField.getValue() != null ? ((String) outField.getValue()) : (String) outField.getValue();
- sb.append(_value);
- } else {
- String _value = _v != null ? ((String) _v).trim() : (String) _v;
- sb.append(_value);
- }
- }
- sb.append("}\r\n");
- return sb.toString();
- }
- public String toTextString(boolean bdata, String tabCode) {
- DataField field = null;
- StringBuffer sb = new StringBuffer();
- int k = 0;
- for (int i = 0; i < size(); i++) {
- if (i > k){ sb.append("\t");}
- Object obj = get(i);
- DataField outField = (DataField) obj;
- if ("ROWNUM_".equals(outField.getFieldID())) {
- k++;
- continue;
- }
- String value = (String) outField.getValue();
- if (!bdata) {sb.append((value == null) ? "" : value);}
- else {
- sb.append(loadDicValue(value, outField.getFieldID(), tabCode));
- }
- }
- return sb.toString();
- }
- public String toHeadString(boolean bdata, String tabCode) {
- DataField field = null;
- StringBuffer sb = new StringBuffer();
- int k = 0;
- for (int i = 0; i < size(); i++) {
- Object obj = get(i);
- DataField outField = (DataField) obj;
- //这里需要进行可读性质转换
- if ("ROWNUM_".equals(outField.getFieldID())) {
- k++;
- continue;
- }
- if (i > k) {
- sb.append("\t");
- }
- if (!bdata) {
- sb.append(outField.getFieldID());
- } else {
- sb.append(loadHeadValue(outField.getFieldID(), tabCode));
- }
- }
- return sb.toString();
- }
- /**
- * 根据tabcode FieldID value 得到字典的对应类型
- *
- * @param value
- * @param tabCode
- * @param FieldID
- * @return
- */
- public String loadDicValue(String value, String tabCode, String FieldID) {
- return ((value == null) ? "" : value);
- }
- public Object getValue(String FieldID) {
- return getField(FieldID) == null ? null : getField(FieldID).getValue();
- }
- public Object getStringValue(String FieldID) {
- return getField(FieldID) == null ? "" : (String) getField(FieldID).getValue();
- }
- /**
- * 根据tabcode FieldID 得到头部具体的显示字段
- *
- * @param FieldID
- * @param tabCode
- * @return
- */
- public String loadHeadValue(String FieldID, String tabCode) {
- return FieldID;
- }
- }
|