[]
리포트 시트(ReportSheet)는 데이터 매니저와의 통합을 통해 데이터 입력을 지원합니다. 이를 위해 템플릿 시트(TemplateSheet)의 데이터 입력 설정에서 특정 셀, 열, 테이블 간의 연관 관계를 구성해야 합니다.
템플릿 시트에서 데이터 입력 설정을 구성하려면 아래 단계를 따르세요:
데이터 매니저에 테이블 추가하기
추가된 테이블에 대한 원격(remote) 정보를 구성하여 연결 설정하기
요구 사항에 맞게 템플릿 시트를 디자인하고, 데이터 입력에 필요한 셀을 포함하기
템플릿 시트 클래스에서 TemplateCell 정보를 설정하기
새로 추가된 레코드에 기본값을 생성하려면 TemplateCell에 defaultValue
속성을 설정할 수 있습니다.
defaultValue
는 수식(Formula)입니다.
템플릿 시트 클래스의 setDataEntrySetting
메서드를 사용하여 데이터 입력 설정 구성하기
쓰기(write-back) 규칙에서 기본 키 필드(primary key)를 설정하기
다음 코드 샘플은 데이터 입력 설정을 구성하고, 새로 추가되는 레코드에 대해 기본값을 생성하는 방법을 보여줍니다:
const columns = ['Id', 'Region', 'Salesman', 'Product', 'Sales'];
columns.forEach((columnName, i) => {
templateSheet.setTemplateCell(3, i, {
type: "List",
binding: `Sales[${columnName}]`,
// "Id" 열에 새 행이 추가될 때 무작위 UUID를 생성함
defaultValue: i === 0 ? '=SJS.UUID()' : undefined // 기본값
})
})
// 데이터 입력 설정 구성
const salesRule = {
name: "test1", // string
tableName: "Sales", // string
fields: [ // {formula, dbColumnName, isPrimary}
{ formula: 'A4', dbColumnName: 'Id', isPrimary: true },
{ formula: 'B4', dbColumnName: 'Region' },
{ formula: 'C4', dbColumnName: 'Salesman' },
{ formula: 'D4', dbColumnName: 'Product' },
{ formula: 'E4', dbColumnName: 'Sales' }
],
skipRecordWithEmptyValue: true,
includeUnmodified: true
}
// setDataEntrySetting(dataEntrySetting: GC.Spread.Report.DataEntrySetting)
templateSheet.setDataEntrySetting([salesRule]);
reportSheet.refresh();