RealGrid2 API
Class
DataProviderBase

DataProviderBase

LocalDataProviderLocalTreeDataProvider 의 기반 클래스

Signature:

export declare abstract class DataProviderBase 

Remarks

DataProviderBase 의 모든 속성과 method 는 이를 상속한 하위 클래스들에서만 호출할 수 있다.

[하위 클래스]

LocalDataProvider

LocalTreeDataProvider

Constructors

ConstructorModifiersDescription
(constructor)(undoable)Constructs a new instance of the DataProviderBase class

Properties

PropertyTypeDescription
amTextstring데이터에서 오전에 해당하는 문자열
baseYearnumber데이터의 년도가 2자리일때 기준으로 하는 년도
booleanFormatstring데이터에서 Boolean으로 Parsing 하기 위한 포맷
checkStatesboolean행 상태 관리 활성화 여부
commitBeforeDataEditboolean편집 상태일 때 다른 행에 대한 변경 함수(setValue() 등) 호출 시 이전 편집 자동 커밋 여부
datetimeFormatstringtext형식의 날짜 데이터를 datetime 값으로 Parsing하기위한 포맷
deletableboolean행 삭제 가능 여부
deleteCreatedboolean추가된 행을 삭제 시 실제로 삭제할지의 여부
insertableboolean행 삽입 가능 여부
pmTextstring데이터에서 오후에 해당하는 문자열
restoreModeRestoreMode복원 모드
softDeletingboolean행 삭제 시 실제로 삭제하지 않고 RowState 만 변경할지의 여부
strictRestoreboolean복원시 undefined, null, 빈 문자열을 다른 값으로 인식할지의 여부
subTypeEnabledbooleanDataField 의 subType 속성의 활성화 여부
undoablebooleanundo/redo 사용 여부
updatableboolean행 수정 가능 여부
valuesCallbackObjectToValuesCallbackjson 형태의 data를 dataProvider에 입력할때 각 행별로 호출되는 콜백

Methods

MethodTypeDescription
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:

행 추가/수정/삭제 상태가 변경될 때 상태를 기록할지를 결정한다. 기록 되지 않으면 softDeletingtrue여도 무시하고 삭제 된다.

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();