RealGrid2 API
Class
DataProviderBase

DataProviderBase

LocalDataProviderLocalTreeDataProvider 의 기반 클래스

Signature:

export declare abstract class DataProviderBase 

Remarks

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

[하위 클래스]

LocalDataProvider

LocalTreeDataProvider

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;상태값을 갖는 모든 행의 인덱스를 반환한다.
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;지정한 행들의 상태를 복원한다.
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

편집 상태일 때 다른 행에 대한 변경 함수(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();

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

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