다보리 파라메터의 개념
다보리 파라메터란?
다보리 파라메터란?
다보리 컴포저블에서는 모든 구성요소들을 파라메터를 통해 관리, 구성하고 있습니다. 다보리 파라메터를 통해 다음과 같이 구현이 가능합니다. 몇가지 예시를 소개합니다.는
고객입력창 구현을 위한 파라메터
{
    "General": {
        "Title": "고객입력",
        "PickApi": "slip-form-book",
        "ActApi": "company-act"
    },
    "QueryVars": {
        "QueryName": "pos/customer"
    },
    "PrintVars": {
        "QueryName": "opticalpos::federated/crystal/adjustment",
        "ReportPath": "standard/adjustment/adjustment.rpt",
        "ExportFmt": "PDF",
        "ServerPrinter": "",
        "CustomCode": "adjustment"
    },
    "PrintVars2": {
        "QueryName": "opticalpos::adjustment",
        "PageApi": "adjust-page"
    },
    "SelectButtonOptions": [
        {
            "Value": "new",
            "Caption": "새 레코드"
        },
        {
            "Value": "del",
            "Caption": "레코드 삭제"
        },
        {
            "Value": "copy",
            "Caption": "레코드 복사"
        },
        {
            "Value": "rpt-print-pdf",
            "Caption": "연말정산(pdf)"
        },
        {
            "Value": "rpt-print-paper",
            "Caption": "연말정산(종이)"
        }
    ],
    "//FormVars": "ListVars[0]-Caption",
    "FormVars": [
        {
            "SaveButton": "저장",
            "CompanyName": "고객번호(자동채번)*",
            "MainContact": "고객명* / 성별",
            "MobileNo": "휴대전화*",
            "TelNo": "유선전화",
            "BirthDate": "생년월일*",
            "Email": "이메일*",
            "CgroupId": "고객분류*",
            "ZipCode": "우편번호*",
            "Addr1": "주소*",
            "Addr2": "주소상세",
            "IsOkText": "문자발송",
            "IsOkEmail": "이메일발송",
            "IsOkDm": "디엠발송",
            "Remarks": "관리자메모",
            "UserCredit": "적립금",
            "CurrUserCredit": "현재 적립금",
            "AvailUserCredit": "가용 적립금(적용-버튼)"
        },
        {
            "SaveButton": "",
            "CompanyName": "left",
            "MainContact": "left",
            "MobileNo": "left",
            "TelNo": "left",
            "BirthDate": "left",
            "Email": "left",
            "CgroupId": "left",
            "ZipCode": "left",
            "Addr1": "left",
            "Addr2": "left",
            "IsOkText": "left",
            "IsOkEmail": "left",
            "IsOkDm": "left",
            "Remarks": "left",
            "UserCredit": "left",
            "CurrUserCredit": "left",
            "AvailUserCredit": "left"
        },
        {
            "SaveButton": "0",
            "CompanyName": "20",
            "MainContact": "20",
            "MobileNo": "20",
            "TelNo": "20",
            "BirthDate": "20",
            "Email": "20",
            "CgroupId": "20",
            "ZipCode": "20",
            "Addr1": "20",
            "Addr2": "100",
            "IsOkText": "20",
            "IsOkEmail": "20",
            "IsOkDm": "20",
            "Remarks": "",
            "UserCredit": "20",
            "CurrUserCredit": "20",
            "AvailUserCredit": "20"
        },
        {
            "SaveButton": "",
            "CompanyName": "required",
            "MainContact": "required",
            "MobileNo": "required",
            "TelNo": "",
            "BirthDate": "required",
            "Email": "required",
            "CgroupId": "required",
            "ZipCode": "required",
            "Addr1": "required",
            "Addr2": "",
            "IsOkText": "",
            "IsOkEmail": "",
            "IsOkDm": "",
            "Remarks": "",
            "UserCredit": "",
            "CurrUserCredit": "",
            "AvailUserCredit": ""
        }
    ]
}품목찾기 모달창 구현을 위한 파라메터
ㅁㅇㄴ
{
    "General": {
        "Title": "품목 찾기",
        "PageApi": "item-search-page"
    },
    "QueryVars": {
        "QueryName": "master/item",
        "FilterName": "is_material",
        "FilterValue": "0"
    },
    "//FormVars": "ListVars[0]-Caption, ListVars[0]-format",
    "FormVars": [
        {
            "SelectButton": "",
            "ItemCode": "품목코드",
            "ItemName": "품명",
            "SubName": "서브명",
            "CountUnit": "수량단위",
            "CurrStockQty": "현재고",
            "PurchPrc": "표준매입가",
            "SalesPrc": "표준매출가",
            "ItemDesc": "품목설명",
            "FilterOption": "검색조건",
            "SimpleOption": "상태별 검색"
        },
        {
            "SelectButton": "left",
            "ItemCode": "left",
            "ItemName": "left",
            "SubName": "left",
            "CountUnit": "left",
            "CurrStockQty": "decimal('stock_qty')",
            "PurchPrc": "decimal('purch_prc')",
            "SalesPrc": "decimal('sales_prc')",
            "ItemDesc": "left",
            "FilterOption": "left",
            "SimpleOption": "left"
        }
    ],
    "// OrderByOptions": "OrderBy Options//첫번째 Value가 Default, 필수(Required)",
    "OrderByOptions": [
        {
            "Value": "item_code asc",
            "Caption": "품목코드 정렬"
        },
        {
            "Value": "item_name asc",
            "Caption": "품명 정렬"
        },
        {
            "Value": "sub_name asc",
            "Caption": "서브명 정렬"
        }
    ],
    "FilterSelectOptions": [
        {
            "Value": "",
            "Caption": "=검색 조건="
        },
        {
            "Value": "mx.item_code",
            "Caption": "품목코드"
        },
        {
            "Value": "mx.item_name",
            "Caption": "품명"
        },
        {
            "Value": "mx.sub_name",
            "Caption": "서브명"
        }
    ],
    "SimpleSelectOptions": [
        {
            "Value": "mx.expose_type='0'",
            "Caption": "온라인 게시"
        },
        {
            "Value": "mx.expose_type='1'",
            "Caption": "온라인 누락"
        },
        {
            "Value": "mx.expose_type='2'",
            "Caption": "쿠폰신청 상품"
        },
        {
            "Value": "",
            "Caption": "전체"
        }
    ],
    "// ListVars": "ListVars[0]-caption, ListVars[1]-size(%), ListVars[2]-align",
    "// Price": "Prices show with comma and truncate numbers under decimal !!",
    "ListVars": [
        {
            "$Radio": "$Radio",
            "$Check": "",
            "No": "번호",
            "ItemCode": "품목 코드",
            "ItemName": "품명",
            "SubName": "서브명",
            "IgroupName": "품목구분",
            "SalesPrc": "매출가",
            "PurchPrc": "매입가",
            "MoreInfo": "추가정보"
        },
        {
            "$Radio": "3",
            "$Check": "3",
            "No": "10",
            "ItemCode": "15",
            "ItemName": "12",
            "SubName": "12",
            "IgroupName": "13",
            "SalesPrc": "10",
            "PurchPrc": "10",
            "MoreInfo": "10"
        },
        {
            "$Radio": "center",
            "$Check": "center",
            "No": "center",
            "ItemCode": "left",
            "ItemName": "left",
            "SubName": "left",
            "IgroupName": "left",
            "SalesPrc": "decimal('sales_qty')",
            "PurchPrc": "decimal('purch_prc')",
            "MoreInfo": "left"
        }
    ]
}
쿼리를 호출하여 내가 필요한 데이터를 불러오긴 위한 여러 요소들이 압축되어 있는 json 파일입니다.
이 파라메터를 다양한 구조로 구성하여 쿼리를 호출할 수 있습니다.  또한 view 페이지의 css적인 요소나 boolean 요소 등등 다양한 것들을 지정할 수 있습니다.
 
다보리 컴포저블에서는 모든 데이터에 대한 접근을 이 파라메터를 통해 이루어지고 있으며  통상적으로 사용하는 표준 para가 있고 theme에서 사용되는 para가 있습니다.
para의 경로는 프로젝트 '/' 경로를 기준으로 다음과 같습니다.
표준 pra : /dabory/para/ko_KR/{$type}/{$filePath}.json json 
테마 para : /dabory/themes/$theme/$theme_type/para/ko_KR/{$type}/{$filePath}.json
$theme = 테마명
$theme_type= pro or erp
$type = request or response
$filePath = 세부경로 + 파일명
표준이던 테마던 모두 큰 틀에서 같은 구조를 가지고 있기 때문에 이 파라메터의 구조를 파악하는 것이 중요합니다.
파라메터의 구조
{
}
각각의 요소에 대한 설명
1. General
Title : 타이틀명
PageApi : page api명, 해당 list-type-1 데이터를 페이지네이션하여 요청할 수 있습니다
ActApi : act api명, 해당 list-type-1 데이터를 insert, update, delete 할 수 있습니다.
이부분이 이해가 안가신다면 아래 링크를 통해 PAP API에 대해 이해하고 오시면 좀 더 빠른 파악이 가능합니다.
PAP api
2. QueryVars -> 쿼리 제어 파라메터
해당 파라메터를 통해 초기설정된 db 서버에 접근하여
QueryName과 일치하는 경로의 쿼리를 실행하여 결과를 반환할 수 있습니다.
QueryName : sql 파일명
FilterName : 쿼리의 기준 컬럼명
FilterValue : FilterName에서 입력한 컬럼의 입력할 값
FilterDate : 정렬 기준 날짜 데이터 혹은 기준 날짜 컬럼
-> WHERE FilterName like '%FilterValue%' 과 같은 형태로 쿼리에 추가됩니다.
-> WHERE column = 'value' 와 같은 형태로 쿼리를 조회하고 싶다면
SimpleFilter : "column='value'"를 사용하시면 됩니다.
3. 명칭 + Options -> 각 option별 key : value 형식
        
Value : option의 value값
Caption : option명
4. FormVars -> 폼 제어 파라메터
-> 해당 폼에 직접적으로 보여지는 부분입니다.
FormVars[0]-caption, FormVars[1]-format",
7. ListType1RangeVars -> ListType1 제어변수
[0]-filter, [1]-component, [2]-parameterFirstRange
FirstRange :  
SecondRange :  
ThirdRange :  
FourthRange :  
12. DisplayVars DisplayVars    -> 디스플레이 제어 파라메터
DisplayVars DisplayVars    이부분도 LT1을 구성하는데 굉장히 중요한 요소입니다.
IsListFirst : 첫번째 리스트인지 여부
IsExcelColumn : 엑셀컬럼인지 여부
InitLines : 호출한 라인인지 여부
HeadHeight : 헤드의 높이
InitDateRange :   날짜범위 호출여부
IsC1Popup :   C1 팝업 여부
BodyHeight : 바디의 높이
* diplay의 형식에 따라 다른 파라메터를 사용
13. ListVars -> 리스트 제어 파라메터
ListVars[0] - > caption(메뉴명)
ListVars[1] -> size(px)  
ListVars[2] -> align->right or left or center
