시트에서 한 건의 데이터(레코드)를 여러 줄로 표시하는 기능입니다.
일반적인 시트는 헤더가 여러 줄이더라도 데이터는 조회된 데이터(레코드)마다 하나의 행으로 표현되는데 이를 여러 행으로 표시되도록 하는 기능입니다.
컬럼 정의(Col)에 지정한 셀 병합(RecordRowSpan/RecordColSpan)이 헤더와 데이터에 함께 적용되어, 헤더와 데이터가 같은 형태로 병합됩니다.
헤더만 데이터와 다르게 병합하려면RecordHColSpan/RecordHColTitle또는Header.RecordRowSpan/Header.RecordColSpan을 사용합니다. (두 방식은 함께 사용할 수 없습니다.)
기본 시트와 동작은 동일하나, 다음과 같은 기능 제약이 있습니다.
| 구분 | 제약 내용 |
|---|---|
| 사용 불가 기능 | 소계, 그룹, 트리, SelectionSummary 필터 다이얼로그( UseFilterDialog), 컬럼페이징(ColPage) |
| 병합 | 자동 병합(setAutoMerge / setAutoMergeCancel) 함수 사용 불가동적 영역 병합( setMergeRange / setMergeCancel) 함수 사용 불가병합은 생성 시 RecordRowSpan / RecordColSpan으로만 지정 (헤더 전용은 Header.RecordRowSpan / Header.RecordColSpan) |
| 열 제어 | 열 이동 불가hideCol / showCol 불가동적 열 추가/삭제 불가 생성 시 Visible 사용 주의(마지막 열 배치 권장)셀/열 단위 선택/복사 불가(행 단위만 가능) |
| 출력 | 엑셀 다운로드/업로드, 행 복사/붙여넣기, doPrint, down2Pdf 시모든 열이 일렬로 처리되어 화면 모양이 유지되지 않음 ( down2Excel은 MultiRecordShape:1로 화면 모양 유지 가능, 단 머지 많으면 느림) |
| 너비 | 최상단 헤더행 기준으로 Width 적용(그 외 행의 Width/RelWidth 불가)RecordColSpan 더미컬럼은 RelWidth 미동작 |
| 기타 | Def.Header.SortIcons:1 사용 불가LeftCols / RightCols와 Type:"Lines" 병용 불가 |
Header.RecordRowSpan / Header.RecordColSpan 사용 시 제약:
| 구분 | 제약 내용 |
|---|---|
| Header Hover | 사용 불가 (HoverScope:1과 같이 동작) |
| Header Sort | 사용 불가 |
| 헤더 병합 | 데이터와 헤더 별도 병합 지원 (Header.RecordRowSpan / Header.RecordColSpan) |
RecordHColSpan / RecordHColTitle |
사용 불가 |
number
| Value | Description |
|---|---|
0 |
멀티레코드 기능 비활성화 (default) |
1 |
멀티레코드 기능 활성화 |
options.Cfg = {
SearchMode: 2,
MultiRecord: 1, // 멀티레코드 전용 시트로 설정
FitWidth: true
};
// 멀티레코드는 열 정의(Cols)를 2차원 배열로 구성 (각 원소가 한 레코드의 단위데이터행)
options.Cols = [
// 첫번째 단위데이터행
[
{ Header: "선택", Type: "CheckBox", Name: "CHK", Align: "Center", Width: 60 },
{ Header: "이미지", Type: "Img", Name: "sProductImage", Align: "Center", Width: 100, RecordRowSpan: 2 },
{ Header: "종류", Type: "Text", Name: "sCategory", Align: "Center", Width: 160 },
{ Header: "특징", Type: "Lines", Name: "sSpec", Align: "Left", Width: 300, RecordRowSpan: 2, Wrap: 1 },
{ Header: "가격", Type: "Int", Name: "sPrice", Align: "Right", Width: 120, RecordRowSpan: 2 }
],
// 두번째 단위데이터행 (RecordRowSpan으로 병합된 열은 헤더만 두고 Name 없이 비웁니다)
[
{ Header: "순번", Type: "Text", Name: "SEQ", Align: "Center" },
{ Header: "이미지" },
{ Header: "제품명", Type: "Text", Name: "sProductName", Align: "Center" },
{ Header: "특징" },
{ Header: "가격" }
]
];
// 데이터는 일반 시트와 동일하게 레코드당 객체 하나
var data = [
{ CHK: 0, sProductImage: "|/imgs/1.jpg|60|60|||", sCategory: "가전 > TV > LED TV",
sSpec: "LED TV / 106cm(42인치) / 풀HD / 60Hz 스캔 / HDMI 2개", sPrice: 663000,
SEQ: 1, sProductName: "LG전자 42LN5400" },
{ CHK: 0, sProductImage: "|/imgs/2.jpg|60|60|||", sCategory: "가전 > TV > LED TV",
sSpec: "LED TV / 80cm(32인치) / HD / 스포츠모드 / 타임머신 / HDMI 2개", sPrice: 410000,
SEQ: 2, sProductName: "LG전자 32LB555B" }
];
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.0.0.4 | 엑셀 업로드/다운로드 다이얼로그 대응 |