IBSheet8 에서 하나의 데이터(혹은 레코드)를 여러 행으로 표시하는 기능을 멀티레코드(MultiRecord)라고 합니다.
이러한 멀티레코드(MultiRecord)기능을 사용할 때, IBSheet8의 셀(Cell)을 병합하는 방법을 알아봅니다.
멀티레코드 기능을 사용하면 자동 병합 기능(DataMerge, HeaderMerge)이 지원되지 않기 때문에 (Col)RecordColSpan, (Col) RecordRowSpan속성을 이용하여 병합할 영역을 지정해 주어야 합니다.
options.Cfg = {
MultiRecord: true // 멀티레코드 기능 사용
...
};
// 멀티레코드 기능 사용시 열(Column) 설정(1차원 배열 -> 2차원 배열)
options.Cols = [
//첫번째 단위데이터행(DataRow)
[
{Header: "이름", Name: "colA", Type: "Text", Align: "Center", Width: 100},
{Header: "사진", Name: "colB", Type: "Img", Width: 120, RecordRowSpan: 3},
{Header: "나이", Name: "colC", Type: "Int", Width: 120},
{Header: "경력", Name: "colD", Type: "Float", Width: 120, Format:"0.# 년"}
],
//두번째 단위데이터행(DataRow)
[
{Header: "사번", Name: "colE", Type: "Text", Align: "Center"},
{Header: "사진"},
{Header: "성별", Name: "colF", Type: "Enum", Enum:"|남|여", EnumKeys:"|M|F"},
{Header: "입사일", Name: "colG", Extend:IB_Preset.YMD}
],
//세번째 단위데이터행(DataRow)
[
{Header: "직급", Name: "colH", Type: "Text", Align: "Center"},
{Header: "사진"},
{Header: "주소", Name: "colJ", Type: "Text", RecordColSpan: 2},
{Header: "주소"},
]
];
만약 데이터 영역은 병합하지 않고 헤더 영역만 병합하고 싶은 경우 (Col)Header속성에 (Col)RecordRowSpan, (Col) RecordColSpan 값을 넣으면 헤더 영역에서만 병합됩니다.
단 이렇게 헤더만 병합되어 헤더와 데이터의 병합 모양을 다르게 설정하는 경우, 헤더를 클릭하여 데이터를 정렬 할 수 없습니다.
options.Cfg = {
MultiRecord: true // 멀티레코드 사용
...
};
// 멀티레코드 기능 사용시 열(Column) 설정(1차원 배열 -> 2차원 배열)
options.Cols = [
//첫번째 단위데이터행(DataRow)
[
{Header: "A", Name: "colA", Type: "Text", Width: 100},
{Header: { Value: "B", RecordRowSpan: 3 }, Name: "colB", Type: "Img", Width: 100},
{Header: "C", Name: "colC", Type: "Int", Width: 100},
{Header: "D", Name: "colD", Type: "Float", Width: 100}
],
//두번째 단위데이터행(DataRow)
[
{Header: "E", Name: "colE", Type: "Text", Width: 100},
{Header: "F", Name: "colF", Type: "Text", Width: 100},
{Header: "G", Name: "colG", Type: "Enum", Width: 100},
{Header: "H", Name: "colH", Type: "Date", Width: 100}
],
//세번째 단위데이터행(DataRow)
[
{Header: "I", Name: "colI", Type: "Text", Width: 100},
{Header: "J", Name: "colJ", Type: "Text", Width: 100},
{Header: "K", Name: "colk", Type: "Text", Width: 100},
{Header: "L", Name: "colL", Type: "Text", Width: 100},
]
];
(Col)RecordColSpan, (Col)RecordRowSpan은 병합하게 되는 첫 번째 셀(좌측/상단 셀)에만 설정해야 합니다.
다른 셀에 중복해서 설정하는 경우 오류가 발생 할 수 있습니다.