DataProviderBase
LocalDataProvider 와 LocalTreeDataProvider 의 기반 클래스
Signature:
export declare abstract class DataProviderBase
Remarks
DataProviderBase 의 모든 속성과 method 는 이를 상속한 하위 클래스들에서만 호출할 수 있다.
[하위 클래스]
Constructors
Constructor | Modifiers | Description |
---|---|---|
(constructor)(undoable) | Constructs a new instance of the DataProviderBase class |
Properties
Property | Type | Description |
---|---|---|
amText | string | 데이터에서 오전에 해당하는 문자열 |
baseYear | number | 데이터의 년도가 2자리일때 기준으로 하는 년도 |
booleanFormat | string | 데이터에서 Boolean으로 Parsing 하기 위한 포맷 |
checkStates | boolean | 행 상태 관리 활성화 여부 |
commitBeforeDataEdit | boolean | 편집 상태일 때 다른 행에 대한 변경 함수(setValue() 등) 호출 시 이전 편집 자동 커밋 여부 |
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; | 상태값을 갖는 모든 행의 인덱스를 반환한다. |
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; | 지정한 행들의 상태를 복원한다. |
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; | 이전에 수정한 내용을 되돌린다. |
Construct Desc
(constructor)
Constructs a new instance of the DataProviderBase
class
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
편집 상태일 때 다른 행에 대한 변경 함수(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();
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]);
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();