DataSet Edit


데이터 세트로부터 하나 이상의 행을 추가하거나, 기존 행들을 변경 및 삭제하는 방법에 대해 알아본다.

* 영상은 자동 재생되며, 영상화면 왼쪽 윗부분에 재생목록을 클릭해서 원하는 목록을 재생 할 수 있습니다.



- Reset Rows : 테스트를 계속 진행할 수 있도록 행들의 개수를 랜덤으로 초기화한다.
- Change Cell Value : 포커스셀의 값을 변경한다.
- Update Row : 선택한 포커스행의 값들을 수정한다.
- Update Row with Map : 선택한 포커스행의 값들을 Map 형태로 수정한다.
- Update Rows : 선택한 둘 이상의 포커스행의 값들을 수정한다.
- Insert Row : 선택한 포커스행의 윗행에 데이터행 하나를 삽입, 생성한다.
- Insert Row with Map : 선택한 포커스행의 윗행에 Map 데이터행 하나를 삽입, 생성한다.
- Append Row : 마지막 행 아래에 데이터행 하나를 추가, 생성한다.
- Append Row with Map : 마지막 행 아래에 Map 데이터행 하나를 추가, 생성한다.
- Insert Rows : 선택한 포커스행 위치에 여러 데이터행들을 삽입, 생성한다.
- Insert Rows with Map : 선택한 포커스행 위치에 여러 Map 데이터행들을 삽입, 생성한다.
- Append Rows : 마지막 행 아래에 데이터행 여러 개를 추가, 생성한다.
- Append Rows with Map : 마지막 행 아래에 Map 데이터행 여러 개를 추가, 생성한다.
- Delete Row : 선택한 데이터 행을 삭제한다.
- Delete Rows : 선택한 하나 이상의 데이터 행을 삭제한다.
- Delete Added Rows : 새로 Insert 한 상태의 행들을 모두 삭제한다.
- Delete Updated Rows : 새로 Updated 한 상태의 행들을 모두 삭제한다.
- Export to local : 현재 작성된 데이터행을 기반으로 실행시 'excel' 파일의 형태(.xlsx)로 데이터가 그대로 넘어간다.
- Export to email : 현재 작성된 데이터행을 기반으로 실행시 '.excel' 파일이 첨부되며 메일을 통해 원하는 주소로 전송 할 수 있다.
 소스보기
public void run(Context ctx, GridView grid) throws Exception { m_data = new Object[Value.irandom(10, 30)][]; for (int i = 0; i < m_data.length; i++) { Object[] values = new Object[4]; values[0] = "name_" + Value.irandom(10, 100); values[1] = "name_" + Value.irandom(10, 100); values[2] = Value.irandom(1000, 10000); values[3] = "20180" + Value.irandom(10) + "0" + Value.irandom(10); m_data[i] = values; } m_ds.setRows(m_data); }
public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); DataColumn column = grid.focusedDataColumn(); if (row >= 0 && column != null) { int f = column.getDataIndex(); Object v = m_ds.getValue(row, f); Object v2 = changeValue(v); m_ds.setValue(row, f, v2); Utils.toastLong(ctx, v + " => " + v2); } else { Utils.alert(ctx, "값을 변경할 데이터셀을 선택하세요."); } }
public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Object[] values = m_ds.getValues(row); if (values == null) values = m_ds.getEmptyValues(); changeValues(values); m_ds.updateRow(row, values); } else { Utils.alert(grid.getContext(), "수정할 데이터행을 선택하세요."); } } public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Object[] values = m_ds.getValues(row); if (values == null) values = m_ds.getEmptyValues(); changeValues(values); String[] fieldNames = m_ds.getFieldNames(); Map map = new HashMap<>(); int[] flds = Value.irandoms(fieldNames.length, 2); for (int f : flds) { map.put(fieldNames[f], values[f]); } m_ds.updateRow(row, map, null); } else { Utils.alert(grid.getContext(), "수정할 데이터행을 선택하세요."); } } public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { int cnt = Math.min(m_ds.rowCount() - row, Math.max(2, Math.min(5, Value.irandom(m_ds.rowCount() - row)))); Object[][] values = new Object[cnt][]; for (int i = 0; i < values.length; i++) { Object[] vals = m_ds.getValues(row + i); if (vals == null) vals = m_ds.getEmptyValues(); changeValues(vals); values[i] = vals; } m_ds.updateRows(row, cnt, values); } else { Utils.alert(grid.getContext(), "수정할 시작 행을 선택하세요."); } }
public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Object[] vals = new Object[] { "name_" + Value.irandom(100), "addr_" + Value.irandom(100), Value.irandom(10000), "20190303" }; m_ds.insertRow(row, vals); } else { Utils.alert(ctx, "행을 추가할 위치를 선택하세요."); } } public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Map vals = TesterUtils.getMap(new Object[] { "field1", "name_" + Value.irandom(100), "field2", "addr_" + Value.irandom(100), "field3", Value.irandom(10000), "field4", "20190403" }); m_ds.insertRow(row, vals, null); } else { Utils.alert(ctx, "행을 추가할 위치를 선택하세요."); } }
public void run(Context ctx, GridView grid) throws Exception { Object[] vals = new Object[4]; vals[0] = "name_" + Value.irandom(100); vals[1] = "addr_" + Value.irandom(100); vals[2] = Value.irandom(10000); vals[3] = "20190303"; m_ds.appendRow(vals); } public void run(Context ctx, GridView grid) throws Exception { Map vals = TesterUtils.getMap(new Object[] { "field1", "name_" + Value.irandom(100), "field2", "addr_" + Value.irandom(100), "field3", Value.irandom(10000), "field4", "20190403" }); m_ds.appendRow(vals, null); }
public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Object[][] values = new Object[Value.irandom(2, 5)][]; for (int i = 0; i < values.length; i++) { Object[] vals = new Object[4]; vals[0] = "name_" + Value.irandom(100); vals[1] = "addr_" + Value.irandom(100); vals[2] = Value.irandom(10000); vals[3] = "20190" + i + "0" + i; values[i] = vals; } m_ds.insertRows(row, values, false); } else { Utils.alert(ctx, "행들을 추가할 위치를 선택하세요."); } } public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { Object[][] values = new Object[Value.irandom(2, 5)][]; for (int i = 0; i < values.length; i++) { Object[] vals = new Object[8]; vals[0] = "field1"; vals[1] = "name_" + Value.irandom(100); vals[2] = "field2"; vals[3] = "addr_" + Value.irandom(100); vals[4] = "field3"; vals[5] = Value.irandom(10000); vals[7] = "field4"; vals[7] = "20190" + i + "0" + i; values[i] = vals; } Map[] maps = TesterUtils.getMaps(values); m_ds.insertRows(row, maps, null, false); } else { Utils.alert(ctx, "행들을 추가할 위치를 선택하세요."); } }
public void run(Context ctx, GridView grid) throws Exception { Object[][] values = new Object[Value.irandom(2, 5)][]; for (int i = 0; i < values.length; i++) { Object[] vals = new Object[4]; vals[0] = "name_" + Value.irandom(100); vals[1] = "addr_" + Value.irandom(100); vals[2] = Value.irandom(10000); vals[3] = "20190" + i + "0" + i; values[i] = vals; } m_ds.appendRows(values, false); } public void run(Context ctx, GridView grid) throws Exception { Object[][] values = new Object[Value.irandom(2, 5)][]; for (int i = 0; i < values.length; i++) { Object[] vals = new Object[8]; vals[0] = "field1"; vals[1] = "name_" + Value.irandom(100); vals[2] = "field2"; vals[3] = "addr_" + Value.irandom(100); vals[4] = "field3"; vals[5] = Value.irandom(10000); vals[7] = "field4"; vals[7] = "20190" + i + "0" + i; values[i] = vals; } Map[] maps = TesterUtils.getMaps(values); m_ds.appendRows(maps, null, false); }
public void run(Context ctx, GridView grid) throws Exception { int row = grid.focusedDataRow(); if (row >= 0) { m_ds.deleteRow(row); } else { Utils.alert(grid.getContext(), "삭제할 행을 선택하세요."); } } public void run(Context ctx, GridView grid) throws Exception { int[] rows = grid.getSelectedDataRows(); if (rows != null && rows.length > 0) { m_ds.deleteRows(rows); } else { Utils.alert(grid.getContext(), "삭제할 행들을 선택하세요."); } }
public void run(Context ctx, GridView grid) throws Exception { int[] rows = m_ds.getStateRows(DataRowState.CREATED); if (rows != null && rows.length > 0) { m_ds.deleteRows(rows); } else { m_ds.deleteRows(rows); // for check Utils.alert(ctx, "새로 추가된 행이 하나도 없습니다."); } }
public void run(Context ctx, GridView grid) throws Exception { int[] rows = m_ds.getStateRows(DataRowState.UPDATED); if (rows != null && rows.length > 0) { m_ds.deleteRows(rows); } else { m_ds.deleteRows(rows); // for check Utils.alert(ctx, "수정된 행이 하나도 없습니다."); } }