Skip to main content

다보리 파라메터의 개념

다보리 파라메터란?

다보리 컴포저블에서는 모든 구성요소들을 파라메터를 통해 관리, 구성하고 있습니다. 다보리 파라메터를 통해 다음과 같이 구현이 가능합니다. 몇가지 예시를 소개합니다.

고객입력창 구현을 위한 파라메터

{
    "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 = 세부경로 + 파일명

표준이던 테마던 모두 큰 틀에서 같은 구조를 가지고 있기 때문에 이 파라메터의 구조를 파악하는 것이 중요합니다.

파라메터의 구조

{
      "//list-type-1": "simple and plain list by query of table join",

      "General": {
              "Title": "Crawling Domains",
              "PageApi": "list-type1-page",
              "ActApi": "domain-act"
      },

      "QueryVars": {
              "QueryName": "pro/my-app/dbr-main/domain-input",
              "FilterName": "",
              "FilterValue": "",
              "FilterDate": "domain_date"
      },

      "HeadSelectOptions": [
              {
                      "Value": "new",
                      "Caption": "레코드 추가"
              },
              {
                      "Value": "multi-delete",
                      "Caption": "일괄 삭제"
              },
              {
                      "Value": "clear-all-filter",
                      "Caption": "초기화"
              }
      ],

      "//FormVars": "FormVars[0]-caption, FormVars[1]-searchPopup",
      "FormVars": [
              {
                      "ListButton": "조회",
                      "DateRange": "",
                      "DateNavi": "일자방향(오늘)",
                      "Date": "날짜",
                      "From": "부터",
                      "To": "까지",
                      "FirstRange": "",
                      "SecondRange": "",
                      "ThirdRange": "",
                      "FourthRange": "",
                      "AddTotalLine": "",
                      "SelectPopup": "",
                      "MultiPopup": "",
                      "ChartPopup": "",
                      "DownloadList": "",
                      "ShowOnlyClosed": "",
                      "Balance": "",
                      "OrderBy": "표시 순서",
                      "FilterOption": "검색조건",
                      "SimpleOption": "상태별 검색"
              }
      ],

      "FilterSelectOptions": [
              {
                      "Value": "",
                      "Caption": "=검색 조건="
              },
              {
                      "Value": "mx.domain_url",
                      "Caption": "Domain URL"
              },
              {
                      "Value": "mx.solution_code",
                      "Caption": "Solution Code"
              },
              {
                      "Value": "mx.search_tool",
                      "Caption": "Search Tool"
              }
      ],

      "SimpleSelectOptions": [
              {
                      "Value": "",
                      "Caption": "전체"
              },
              {
                      "Value": "mx.status='0'",
                      "Caption": "Waiting"
              },
              {
                      "Value": "mx.status='1'",
                      "Caption": "Confirmed"
              },
              {
                      "Value": "mx.status='2'",
                      "Caption": "GivingUp"
              },
              {
                      "Value": "mx.status='9'",
                      "Caption": "Exception"
              }
      ],

      "//ListType1RangeVars": "[0]-filter, [1]-component, [2]-parameter",
      "ListType1RangeVars": [
              {
                      "FirstRange": "",
                      "SecondRange": "",
                      "ThirdRange": "",
                      "FourthRange": ""
              },
              {
                      "FirstRange": "",
                      "SecondRange": "",
                      "ThirdRange": "",
                      "FourthRange": ""
              },
              {
                      "FirstRange": "",
                      "SecondRange": "",
                      "ThirdRange": "",
                      "FourthRange": ""
              }
      ],

      "// DateRangeOptions": "월:현재월의 1~30, 분기: 현재분기의 첫째월 1일 ~ 마지막월의 말일, 반기/년 동일한 컨셉,전체:1990~3000",
      "DateRangeOptions": [
      ],

      "DateNaviOptions": [
              {
                      "Value": "day",
                      "Caption": "일"
              },
              {
                      "Value": "week",
                      "Caption": "주"
              },
              {
                      "Value": "month",
                      "Caption": "월"
              },
              {
                      "Value": "quarterly",
                      "Caption": "분기"
              },
              {
                      "Value": "year",
                      "Caption": "년"
              },
              {
                      "Value": "all",
                      "Caption": "전체"
              }
      ],

      "SelectPopupOptions": [

      ],

      "// OrderByOptions": "OrderBy Options//첫번째 Value가 Default",
      "OrderByOptions": [
              {
                      "Value": "mx.domain_url asc",
                      "Caption": "도메인 순서"
              },
              {
                      "Value": "mx.solution_code asc",
                      "Caption": "솔루션 순서"
              }
      ],

      "//BalanceOptions": "Show OnlyBalaceRemained or All",
      "BalanceOptions": [
              {
                      "Value": "",
                      "Caption": "전체 보기"
              },
              {
                      "Value": "c10 > 0",
                      "Caption": "잔량있는 것만"
              }
      ],

      "DisplayVars": {
              "IsListFirst" : true,
              "IsExcelColumn" : false,
              "InitLines" : 15,
              "HeadHeight": "130",
              "InitDateRange" : "all",
              "IsC1Popup": "1",
              "BodyHeight": "680"
      },

      "// ListVars": "ListVars[0]-caption, ListVars[1]-size(px), ListVars[2]-align->right(number) left(left)",
      "ListVars": [
              {
                      "$Radio": "$Radio",
                      "$Check": "$Check",
                      "No": "No",
                      "C1": "Domain URL*",
                      "C2": "Host Hash",
                      "C3": "Domain Date",
                      "C4": "Owner Name",
                      "C5": "Solution Code",
                      "C6": "OwnerFile",
                      "C7": "EncryptKey",
                      "C8": "DbrHub URLs",
                      "C9": "TimeZone",
                      "C10": "크롤링 상태",
                      "C11": "Aggreg Hash",
                      "C12": "Status"
              },
              {
                      "$Radio": "5",
                      "$Check": "5",
                      "No": "5",
                      "C1": "20",
                      "C2": "15",
                      "C3": "15",
                      "C4": "20",
                      "C5": "15",
                      "C6": "10",
                      "C7": "10",
                      "C8": "10",
                      "C9": "10",
                      "C10": "10",
                      "C11": "10",
                      "C12": "10"
              },
              {
                      "$Radio": "center",
                      "$Check": "center",
                      "No": "center",
                      "C1": "left",
                      "C2": "center",
                      "C3": "center",
                      "C4": "center",
                      "C5": "center",
                      "C6": "center",
                      "C7": "center",
                      "C8": "center",
                      "C9": "center",
                      "C10": "status('crawled')",
                      "C11": "center",
                      "C12": "status('domain')"
              }
      ]
}

각각의 요소에 대한 설명
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",
"key" : "value" 형

7. ListType1RangeVars -> ListType1 제어변수
[0]-filter, [1]-component, [2]-parameterFirstRange
FirstRange :  
SecondRange :  
ThirdRange :  
FourthRange :  
          

12. DisplayVars DisplayVars    -> 디스플레이 제어 파라메터
IsListFirst : 첫번째 리스트인지 여부
IsExcelColumn : 엑셀컬럼인지 여부
InitLines : 호출한 라인인지 여부
HeadHeight : 헤드의 높이
InitDateRange :   날짜범위 호출여부
IsC1Popup :   C1 팝업 여부
BodyHeight : 바디의 높이

DisplayVars DisplayVars    이부분도 LT1을 구성하는데 굉장히 중요한 요소입니다.
* diplay의 형식에 따라 다른 파라메터를 사용


13. ListVars -> 리스트 제어 파라메터
ListVars[0] - > caption(메뉴명)
ListVars[1] -> size(px)  
ListVars[2] -> align->right or left or center