DataProviderBase
LocalDataProvider 와 LocalTreeDataProvider 의 기반 클래스
Signature:
export declare abstract class DataProviderBase Remarks
DataProviderBase 의 모든 속성과 method 는 이를 상속한 하위 클래스들에서만 호출할 수 있다.
[하위 클래스]
Properties
| Property | Type | Description |
|---|---|---|
| amText | string | 데이터에서 오전에 해당하는 문자열 |
| baseYear | number | 데이터의 년도가 2자리일때 기준으로 하는 년도 |
| booleanFormat | string | 데이터에서 Boolean으로 Parsing 하기 위한 포맷 |
| checkStates | boolean | 행 상태 관리 활성화 여부 |
| commitBeforeDataEdit | boolean | |
| datetimeFormat | string | text형식의 날짜 데이터를 datetime 값으로 Parsing하기위한 포맷 |
| deletable | boolean | 행 삭제 가능 여부 |
| deleteCreated | boolean | 추가된 행을 삭제 시 실제로 삭제할지의 여부 |
| insertable | boolean | 행 삽입 가능 여부 |
| pmText | string | 데이터에서 오후에 해당하는 문자열 |
| restoreMode | RestoreMode | 복원 모드 |
| softDeleting | boolean | 행 삭제 시 실제로 삭제하지 않고 RowState 만 변경할지의 여부 |
| strictRestore | boolean | 복원시 undefined, null, 빈 문자열을 다른 값으로 인식할지의 여부 |
| subTypeEnabled | boolean | DataField 의 subType 속성의 활성화 여부 |
| undoable | boolean | undo/redo 사용 여부 |
| updatable | boolean | 행 수정 가능 여부 |
| valuesCallback | ObjectToValuesCallback | json 형태의 data를 dataProvider에 입력할때 각 행별로 호출되는 콜백 |
Methods
| Method | Type | Description |
|---|---|---|
| addField(field, resetFields, calculateData) | addField(field: DataFieldInput, resetFields?: boolean, calculateData?: boolean): DataField; | 필드를 추가로 생성한다. |
| beginUpdate() | beginUpdate(): void; | 일괄 갱신의 시작점을 지정한다. |
| checkRowStates(value) | checkRowStates(value: boolean): void; | 행 상태 기록 여부를 지정한다. |
| clearCommandStack() | clearCommandStack(): void; | Command Stack 을 초기화한다. |
| clearRowStates(deleteRows, rowEvents) | clearRowStates(deleteRows: boolean, rowEvents?: boolean): void; | 모든 행의 상태를 제거한다. |
| clearSavePoints() | clearSavePoints(): void; | 모든 복구시점을 제거한다. |
| destroy() | destroy(): any; | DataProvider 객체를 메모리에서 해제한다. |
| endUpdate(refresh) | endUpdate(refresh?: boolean): void; | 일괄 갱신의 완료점을 지정한다. |
| exportToCsv(options) | exportToCsv(options: DataExportOptions): void; | 데이터 셋을 CSV파일로 내보낸다. |
| fieldByName(name) | fieldByName(name: string): DataField; | 이름에 해당하는 필드를 반환한다. |
| getAllStateRows() | getAllStateRows(): RowStateList; | 상태값을 갖는 모든 행의 인덱스를 반환한다. |
| getDataRowId(dataRow) | getDataRowId(dataRow: number): number; | 내부에서 관리되는 dataRowId를 가져온다. |
| getDistinctValues(field, maxCount, sortDir) | getDistinctValues(field: string | number, maxCount?: number, sortDir?: SortDirection): any[]; | 필드의 중복되지 않은 값들을 반환한다. |
| getFieldCount() | getFieldCount(): number; | 현재 구성된 필드셋의 갯수를 반환한다. |
| getFieldIndex(fieldName) | getFieldIndex(fieldName: string): number; | 필드명에 해당하는 인덱스를 반환한다. |
| getFieldName(fieldIndex) | getFieldName(fieldIndex: number): string; | 특정 인덱스의 필드의 이름을 반환한다. |
| getFieldNames() | getFieldNames(): string[]; | 필드들의 이름을 반환한다. |
| getFields() | getFields(): DataField[]; | DataField 객체들을 반환한다. |
| getOptions() | getOptions(): DataOptions; | 설정 정보를 반환한다. |
| getOrgFieldName(fieldIndex) | getOrgFieldName(fieldIndex: number): string; | 특정 인덱스의 필드의 원래 이름을 반환한다. |
| getOrgFieldNames() | getOrgFieldNames(): string[]; | 필드들의 원래의 이름을 반환한다. |
| getRowState(row) | getRowState(row: number): RowState; | 지정한 행의 상태를 반환한다. |
| getRowStateCount(states) | getRowStateCount(states: string | RowState | RowState[]): number; | 상태별 데이터 행 개수를 반환한다. |
| getSavePoints() | getSavePoints(): number[]; | 모든 복구시점들을 반환한다. |
| getStateRows(rowState) | getStateRows(rowState?: RowState): number[]; | 특정 상태를 갖는 데이터 행 인덱스들을 반환한다. |
| getUpdatedCells(rows) | getUpdatedCells(rows: number[]): UpdatedRow[]; | 지정한 행들의 변경된 셀정보를 반환한다 |
| getValues(row) | getValues(row: number): RowValues; | 행의 값들을 반환한다. |
| hasData(row) | hasData(row: number): boolean; | 행에 값이 채워져씼는지 여부를 반환한다. |
| redo() | redo(): void; | 되돌린 내용을 취소한다. |
| removeField(field, resetFields) | removeField(field: DataFieldInput, resetFields?: boolean): void; | 필드를 제거한다. |
| restoreUpdatedRows(rows) | restoreUpdatedRows(rows: number | number[]): void; | 지정한 행들의 값과 상태를 복원한다. |
| restoreUpdatedStates(rows) | restoreUpdatedStates(rows: number[]): void; | 지정한 행들의 상태를 복원한다. |
| revertDeletedStates(rows) | revertDeletedStates(rows: number | number[]): void; | DataOptions.softDeleting이 true인 경우, 상태가 RowState.DELETED로 표시된 행을 원래 상태로 복원한다. |
| rollback(savePoint) | rollback(savePoint?: number): void; | 데이터 셋을 복원한다 |
| savePoint(saveStates) | savePoint(saveStates?: boolean): number; | 데이터 셋의 복구 시점을 기록한다. |
| setDataComparer(field, comparer) | setDataComparer(field: string | number, comparer: CompareFunction): void; | 특정 필드의 정렬 함수를 설정한다. |
| setFields(fields) | setFields(fields: DataFieldInput[]): void; | 필드셋을 설정한다 |
| setOptions(options) | setOptions(options: DataOptions): void; | 설정정보를 변경한다. |
| setRowState(row, state, force) | setRowState(row: number, state?: RowState, force?: boolean): void; | 특정 행의 상태를 변경한다. |
| setRowStates(rows, state, force, rowEvents) | setRowStates(rows: number[], state?: RowState, force?: boolean, rowEvents?: boolean): void; | 복수의 행의 상태를 일괄 변경한다. |
| undo() | undo(): void; | 이전에 수정한 내용을 되돌린다. |
Properties Desc
amText
데이터에서 오전에 해당하는 문자열
Type - string
Example:
ds.amText = "오전";baseYear
데이터의 년도가 2자리일때 기준으로 하는 년도
Type - number
Example:
ds.baseYear = 1000;booleanFormat
데이터에서 Boolean으로 Parsing 하기 위한 포맷
Type - string
Example:
ds.booleanFormat = 'No: Yeah';checkStates
행 상태 관리 활성화 여부
Type - boolean
Example:
ds.checkStates = false;commitBeforeDataEdit
Warning: This API is now obsolete.
편집 상태일 때 다른 행에 대한 변경 함수(
setValue()등) 호출 시 이전 편집 자동 커밋 여부
Type - boolean
Example:
ds.commitBeforeDataEdit = true;datetimeFormat
text형식의 날짜 데이터를 datetime 값으로 Parsing하기위한 포맷
Type - string
Example:
ds.datetimeFormat = 'yyyy-MM-dd';deletable
행 삭제 가능 여부
Type - boolean
Example:
ds.deletable = false;deleteCreated
추가된 행을 삭제 시 실제로 삭제할지의 여부
Type - boolean
Example:
ds.deleteCreated = false;insertable
행 삽입 가능 여부
Type - boolean
Example:
ds.insertable = false;pmText
데이터에서 오후에 해당하는 문자열
Type - string
Example:
ds.pmText = "오후";restoreMode
복원 모드
Type - RestoreMode
Example:
ds.restoreMode = 'explicit';softDeleting
행 삭제 시 실제로 삭제하지 않고 RowState 만 변경할지의 여부
Type - boolean
Example:
ds.softDeleting = false;strictRestore
복원시 undefined, null, 빈 문자열을 다른 값으로 인식할지의 여부
Type - boolean
Example:
ds.strictRestore = true;subTypeEnabled
DataField 의 subType 속성의 활성화 여부
Type - boolean
Example:
ds.subTypeEndabled = false;undoable
undo/redo 사용 여부
Type - boolean
Example:
ds.undoable = true;updatable
행 수정 가능 여부
Type - boolean
Example:
ds.updatable = false;valuesCallback
json 형태의 data를 dataProvider에 입력할때 각 행별로 호출되는 콜백
Type - ObjectToValuesCallback
Remarks:
Methods Desc
addField
필드를 추가로 생성한다.
[매개변수 목록]
field - DataFieldInput
생성할 데이터 필드의 정보값, 문자열일 경우 fieldName으로 설정
resetFields - boolean
데이터 컬럼에 binding된 필드 정보 갱신여부
calculateData - boolean
calculated 필드를 다시 계산할지의 여부
[반환값] - DataField
Remarks:
DataField 객체를 생성하여 기존 필드셋에 추가한다.
Example:
// string
ds.addField('fieldnName');
// model
let fields = ds.getFields();
ds2.addField(fields);
// config
ds.addField({
fieldName: 'OrderID',
dataType: 'text',
});beginUpdate
일괄 갱신의 시작점을 지정한다.
Remarks:
DataProvider에서 변경 작업이 발생하면 이를 View에 이벤트를 전달하여 처리하는데 일괄처리를 할때는 이벤트가 빈번히 발생하여 성능이 저하 될 수 있다. beginUpdate()를 호출하면 endUpdate() 가 호출 되기전까지 이벤트가 발생하지 않고 endUpdate()가 호출될 때 일괄 발생한다. beginUpdate ~ endUpdate는 중첩될 수 있는데 반드시 쌍으로 호출되어야 하고 마지막 쌍의 endUpdate가 호출될때 이벤트가 View에 전달된다.
Example:
dataProvider.beginUpdate();
try {
for (var i = 0; i < 10; i++) {
var values = gridView.getValues(i);
dataProvider.addRow(values);
}
} finally {
dataProvider.endUpdate();
}checkRowStates
행 상태 기록 여부를 지정한다.
[매개변수 목록]
value - boolean
행 상태 기록 여부
[반환값] - void
Remarks:
행 추가/수정/삭제 상태가 변경될 때 상태를 기록할지를 결정한다. 기록 되지 않으면 softDeleting 이 true여도 무시하고 삭제 된다.
Example:
let checkState = ds.checkRowStates(true);clearCommandStack
Command Stack 을 초기화한다.
Example:
ds.clearCommandStack();clearRowStates
모든 행의 상태를 제거한다.
[매개변수 목록]
deleteRows - boolean
행 상태가 삭제인 행을 실제로 삭제할지의 여부, true이면 데이터 셋에서 제거되고 false이면 행 상태를 리셋하고 데이터를 보존한다.
rowEvents - boolean
상태가 제거된 행에 대해 onRowStateChanged 등의 상태변경 콜백을 발생시킬지의 여부
[반환값] - void
Remarks:
모든 데이터 행의 상태를 RowState.NONE 으로 초기화한다.
Example:
ds.clearRowState(true);clearSavePoints
모든 복구시점을 제거한다.
Remarks:
모든 복구 시점과 관련 저장한 데이터및 상태를 삭제한다.
Example:
ds.clearSavePoints();destroy
DataProvider 객체를 메모리에서 해제한다.
Remarks:
DataProvider내부에서 사용된 객체와 데이터등을 제거하고 가비지 콜렉팅이 되도록 한다.
Example:
ds.destroy();endUpdate
일괄 갱신의 완료점을 지정한다.
Remarks:
DataProvider에서 변경 작업이 발생하면 이를 View에 이벤트를 전달하여 처리하는데 일괄처리를 할때는 이벤트가 빈번히 발생하여 성능이 저하 될 수 있다. beginUpdate() 를 호출하면 endUpdate()가 호출될 되기전까지 이벤트를 발생하지 않고 endUpdate()가 호출될대 일괄 발생한다. beginUpdate ~ endUpdate는 중첩될 수 있는데 반드시 쌍으로 호출되어야 하고 마지막 쌍의 endUpdate가 호출될때 이벤트가 View에 전달된다.
Example:
dataProvider.beginUpdate();
try {
for (var i = 0; i < 10; i++) {
var values = gridView.getValues(i);
dataProvider.addRow(values);
}
} finally {
dataProvider.endUpdate();
}exportToCsv
데이터 셋을 CSV파일로 내보낸다.
[매개변수 목록]
options - DataExportOptions
내보내기 설정
[반환값] - void
Remarks:
options의 설정에 따라 데이터 셋에 저장된 데이터를 CSV파일로 내보낸다.
이는 데이터 수준에서의 내보내기이므로 View 에서 설정하는 상태와는 무관하게 진행된다.
Example:
ds.exportToCsv();fieldByName
이름에 해당하는 필드를 반환한다.
[매개변수 목록]
name - string
필드의 fieldName에 해당하는 값
[반환값] - DataField
Example:
let field = ds.fieldByName('Fruits');getAllStateRows
상태값을 갖는 모든 행의 인덱스를 반환한다.
Remarks:
RowState.NONE 이 아닌 행들의 번호를 상태별로 배열로 만들어 Object 형태로 반환한다.
Example:
let rows = ds.getAllStateRows();getDataRowId
내부에서 관리되는 dataRowId를 가져온다.
[매개변수 목록]
dataRow - number
dataRow
[반환값] - number
Remarks:
행을 추가/삭제해도 변경되지 않는 내부 dataRowId
getDistinctValues
필드의 중복되지 않은 값들을 반환한다.
[매개변수 목록]
field - string | number
필드 명 또는 필드 인덱스
maxCount - number
최대 건수, 정렬한 상태에서 위에부터 건수만큼 잘라서 반환한다. 기본값: -1
sortDir - SortDirection
정렬 방법, 기본값: SortDirection.ASCENDING
[반환값] - any[]
Remarks:
데이터 셋에서 지정된 필드에 해당하는 값들을 중복을 배제하여 정렬상태로 반환한다,
Example:
ds.getDistinctValues('field1');getFieldCount
현재 구성된 필드셋의 갯수를 반환한다.
Example:
let fCount = ds.getFieldCount();getFieldIndex
필드명에 해당하는 인덱스를 반환한다.
[매개변수 목록]
fieldName - string
필드명, 대소문자를 구분하지 않는다.
[반환값] - number
Example:
let index = ds.getFieldIndex('fieldName');getFieldName
특정 인덱스의 필드의 이름을 반환한다.
[매개변수 목록]
fieldIndex - number
필드 인덱스
[반환값] - string
Remarks:
필드셋에서 fieldIndex에 위치된 필드의 fieldName속성을 반환한다.
fieldName은 내부적으로 대문자로 저장되므로 대문자 문자열로 출력된다.
설정시의 fieldName으로 가져오려면 getOrgFieldName() 을 사용한다.
Example:
let fieldName = ds.getFieldName(3);getFieldNames
필드들의 이름을 반환한다.
Remarks:
필드셋에서 필드의 fieldName 속성들을 배열로 반환한다.
fieldName은 내부적으로 대문자로 저장되므로 대문자 문자열로 출력된다.
설정시의 fieldName으로 가져오려면 getOrgFieldNames() 를 사용한다.
Example:
let fieldNames = ds.getFieldNames();getFields
DataField 객체들을 반환한다.
Remarks:
현재 DataProvider에 설정된 DataField 객체를 배열로 반환한다.
Example:
let fields = ds.getFields();
ds2.setFields(fields);getOptions
설정 정보를 반환한다.
Remarks:
설정정보를 DataOptions 형태로 반환한다.
Example:
let options = ds.getOptions();
options.undoable = true;
ds.setOptions(options);getOrgFieldName
특정 인덱스의 필드의 원래 이름을 반환한다.
[매개변수 목록]
fieldIndex - number
필드의 인덱스
[반환값] - string
Example:
let fieldName = ds.getOrgFieldName(3);getOrgFieldNames
필드들의 원래의 이름을 반환한다.
Example:
let orgFieldNames = ds.getOrgFieldNames();getRowState
지정한 행의 상태를 반환한다.
[매개변수 목록]
row - number
데이터 셋의 행 고유 번호
[반환값] - RowState
Example:
let rowState = ds.getRowState(4);getRowStateCount
상태별 데이터 행 개수를 반환한다.
[매개변수 목록]
states - string | RowState | RowState[]
행의 상태, 복수일때는 상태의 배열, 모든 상태를 알고싶은 경우 'all' 또는 '*' 문자열을 사용한다.
[반환값] - number
Remarks:
지정한 상태 배열 또는 문자열에 따라 포함된 상태별 행 건수를 반환한다.
'*', 'all' 입력 시 모두 반환한다.
Example:
var allStateCount = dataProvider.getRowStateCount('all');
var updateCount = dataProvider.getRowStateCount(RealGrid.RowState.UPDATED);getSavePoints
모든 복구시점들을 반환한다.
Remarks:
저장된 모든 복구시점들의 인덱스를 배열로 반환한다.
Example:
ds.getSavePoints([0, 1, 2]);getStateRows
특정 상태를 갖는 데이터 행 인덱스들을 반환한다.
[매개변수 목록]
rowState - RowState
행 상태, RowState 모델
[반환값] - number[]
Remarks:
지정된 rowState 값을 상태로 갖는 행들의 인덱스를 배열로 반환한다.
Example:
let rows = ds.getStateRows('c');getUpdatedCells
지정한 행들의 변경된 셀정보를 반환한다
[매개변수 목록]
rows - number[]
변경된 셀의 정보를 가져올 행의 배열, null일 경우 상태가 RowState.UPDATED인 전체 행의 정보를 반환한다.
[반환값] - UpdatedRow[]
Remarks:
restoreMode속성이 RestoreMode.EXPLICIT 또는 AUTO일 때, 지정된 행들 각각의 값이 변경된 셀의 정보를 반환한다.
Example:
let cells = ds.getUpdatedCells([1]);
// 변환 데이터 예)
[
{
__rowId: 1,
updatedCells: [
{
fieldName: 'OrderID',
oldValue: '1002',
newValue: '1003',
},
{
fieldName: 'OrderCount',
oldValue: 20,
newValue: 30
}
]
}
]getValues
행의 값들을 반환한다.
[매개변수 목록]
row - number
데이터 셋의 행 고유번호
[반환값] - RowValues
Remarks:
해당 데이터 행의 값들을 배열로 반환한다.
Example:
let val = ds.getValeus(5);hasData
행에 값이 채워져씼는지 여부를 반환한다.
[매개변수 목록]
row - number
데이터셋의 행 고유번호
[반환값] - boolean
Remarks:
지정한 데이터행이 값이 채워져있는지 빈 행인지 여부를 반환한다.
Example:
let has = ds.hasData(5);redo
되돌린 내용을 취소한다.
Example:
ds.redo();removeField
필드를 제거한다.
[매개변수 목록]
field - DataFieldInput
제거할 필드의 이름 또는 DataField 객체
resetFields - boolean
데이터 컬럼에 binding된 필드 정보 갱신여부
[반환값] - void
restoreUpdatedRows
지정한 행들의 값과 상태를 복원한다.
[매개변수 목록]
rows - number | number[]
복원하려는 행의 인덱스 또는 인덱스 배열
[반환값] - void
Remarks:
restoreMode속성이 RestoreMode.EXPLICIT 또는 AUTO일 때, 지정된 행들의 변경내용과 상태를 원래대로 복원한다.
Example:
ds.restoreUpdatedRows([2, 4]);restoreUpdatedStates
지정한 행들의 상태를 복원한다.
[매개변수 목록]
rows - number[]
상태를 원복하려는 데이터행 인덱스의 배열
[반환값] - void
Remarks:
restoreMode속성이 RestoreMode.EXPLICIT일 때 값이 변경되었다가 원복된 행의 상태를 복원한다. 예를들어 상태가 RowState.NONE 인 행을 편집하여 RowState.UPDATED 상태가 되었을때 행의 값이 원래대로 돌아간후 호출하면 상태가 RowState.NONE으로 원복된다. restoreMode가 AUTO일 땐 행 값에 따라 자동으로 복원된다.
Example:
ds.restoreUpdatedStates([2, 4]);revertDeletedStates
DataOptions.softDeleting이 true인 경우, 상태가 RowState.DELETED로 표시된 행을 원래 상태로 복원한다.
[매개변수 목록]
rows - number | number[]
원복하려는 데이터행 인덱스의 배열
[반환값] - void
Example:
ds.revertDeletedStates([0, 1]);rollback
데이터 셋을 복원한다
[매개변수 목록]
savePoint - number
복구 포인트의 인덱스, 기본값: 0
[반환값] - void
Remarks:
데이터 셋의 데이터및 상태를 해당 포인트 시점으로 되돌린다.
Example:
ds.rollback();savePoint
데이터 셋의 복구 시점을 기록한다.
[매개변수 목록]
saveStates - boolean
상태 기록 여부
[반환값] - number
Remarks:
데이터 셋의 데이터및 상태를 복제하여 저장하고 포인트의 인덱스를 반환한다. 이 후 rollback() 함수를 통해 특정 포인트로 돌아갈 수 있다.
Example:
ds.savePoint([2, 4]);setDataComparer
특정 필드의 정렬 함수를 설정한다.
[매개변수 목록]
field - string | number
정렬방식을 지정할 필드의 이름 또는 인덱스
comparer - CompareFunction
사용자 정의 정렬 함수
[반환값] - void
Remarks:
해당 필드의 정렬이 발생시 기본적으로 사용는 정렬 함수가 아닌 사용자 정의 정렬 함수를 설정한다. 정렬 함수는 자바스크립트 Array.prototype.sort()의 compareFunction과 동일하다.
Example:
dataProvider.setDataComparer('OrderID', function(field, row1, row2) {
var val1 = dataProvider.getValue(row1, field);
var val2 = dataProvider.getValue(row2, field);
return val1 == val2 ? 0 : val1 > val2 ? 1 : -1;
}setFields
필드셋을 설정한다
[매개변수 목록]
fields - DataFieldInput[]
생성할 DataField의 정보 배열
[반환값] - void
Remarks:
기존 필드 정보와 binding된 데이터를 삭제하고 전달받은 필드 정보 배열로 부터 새로운 필드셋을 구성한다. fields의 갯수만큼 DataField 객체를 생성, 요소가 문자열일경우 fieldName으로, DataField 인 경우 복제, DataFieldObject 인 경우 속성값 기준으로 생성한다.
Example:
// string
ds.setFields('fieldnName');
// model
let fields = ds.getFields();
ds.setFields(fields);
// config
ds.setFields({
fieldName: 'OrderID',
dataType: 'text',
});setOptions
설정정보를 변경한다.
[매개변수 목록]
options - DataOptions
DataOptions 설정정보 객체
[반환값] - void
Remarks:
options 에 기입하지 않은 설정은 원래의 값을 유지한다.
Example:
let options = {
insertable: true,
updatable: true,
softDeleting: false
};
ds.setOptions(options);setRowState
특정 행의 상태를 변경한다.
[매개변수 목록]
row - number
상태를 변경할 데이터 행 인덱스
state - RowState
변경할 상태, 기본값: RowState.NONE
force - boolean
DataProvider의 상태 관리에 관계없이 적용 여부, 기본값: false
[반환값] - void
Example:
ds.setRowState(5, 'updated');setRowStates
복수의 행의 상태를 일괄 변경한다.
[매개변수 목록]
rows - number[]
상태를 변경할 데이터 행 인덱스의 배열
state - RowState
변경할 상태
force - boolean
DataProvider의 상태 관리에 관계없이 적용 여부
rowEvents - boolean
true이면 각각의 데이터 행의 상태 변경 이벤트 발생, false면 하나의 이벤트로 묶어서 발생
[반환값] - void
Remarks:
배열로 전달된 데이터 행들의 상태를 일괄적으로 변경한다.
Example:
ds.setRowStates([1,3,5], "updated");undo
이전에 수정한 내용을 되돌린다.
Example:
ds.undo();