화면 구성 — 고급
기본 화면 문법은 화면 구성 (기본)을 참조하세요.
전표/문서 화면 — screenType: "document"
적합 대상: 견적서, 수주서, 발주서, 출하지시서 등 헤더 + 행 항목 + 합계가 필요한 비즈니스 문서
screenType: "document"는 두 가지 렌더링 모드를 지원합니다:
| renderMode | 설명 | 적합 대상 |
|---|---|---|
"split" (기본) | 좌측 목록 + 우측 헤더/라인아이템 분할 화면 | 간단한 전표, 빠른 문서 탐색 |
"full-page" | 목록 → 전체 화면 폼 → 목록 전환 (SAP Fiori 패턴) | 견적서, 수주서, 발주서 등 복잡한 전표 |
renderMode 선택 가이드
- 헤더 필드 5개 이하 + 라인아이템 단순 →
"split"적합 - 헤더 필드 6개 이상 + 라인아이템 + 합계 + 상태 워크플로우 →
"full-page"권장 - 미지정 시
"split"으로 폴백 → 모든 기존 프리셋이 수정 없이 동작
기본 구조 — split 모드 (기본)
{
"refId": "screen_quotations",
"label": "견적서 관리",
"screenType": "document",
"menuIcon": "SolutionOutlined",
"menuOrder": 1,
"boundTableRef": "quotations",
"parentMenuRef": "menu_quotation",
"listConfig": { "...": "좌측 문서 목록 컬럼/필터/정렬 설정" },
"formConfig": { "...": "우측 헤더 폼 섹션/필드 설정" },
"documentConfig": {
"lineItems": [
{
"title": "견적항목",
"boundTableRef": "quotation_items",
"foreignKeyColumn": "qt_id",
"sortColumn": "line_no",
"columns": [
{ "columnName": "line_no", "label": "순번", "width": 60 },
{ "columnName": "item_id", "label": "품목", "width": 150 },
{ "columnName": "quantity", "label": "수량", "width": 100, "render": "number" },
{ "columnName": "unit_price", "label": "단가", "width": 120, "render": "currency" },
{ "columnName": "discount_rate", "label": "할인율(%)", "width": 100 },
{ "columnName": "amount", "label": "금액", "width": 120, "render": "currency" }
],
"addable": true,
"deletable": true,
"itemLookupRef": "items",
"itemFkColumn": "item_id",
"itemAutoFillMappings": [
{ "sourceColumn": "unit_price", "targetColumn": "unit_price" }
]
}
],
"footerSummary": {
"summaryFields": [
{ "label": "합계금액", "sourceColumn": "amount", "aggregation": "SUM", "targetHeaderColumn": "total_amount", "format": "currency" },
{ "label": "부가세액", "targetHeaderColumn": "vat_amount", "format": "currency" },
{ "label": "총합계", "targetHeaderColumn": "grand_total", "format": "currency" }
]
},
"documentNumbering": {
"prefix": "QT",
"dateFormat": "YYYYMM",
"sequenceDigits": 4,
"resetPeriod": "yearly",
"targetColumn": "qt_number"
},
"statusFlow": {
"statusColumn": "status",
"initialStatus": "작성",
"finalStatuses": ["수주전환", "실주", "