GDL 연습 6: 특수 버전 만들기
운동
연습 5를 사용하여 *PFeature: PaperSize에 대한 *POption의 세 가지 특수 버전을 만듭니다.
첫 번째 버전은 instance 이름이 'Letter', 'Legal' 및 'A4'인 Papersize 옵션용입니다. 이러한 옵션에는 현재 동작이 있습니다.
두 번째 버전은 instance 이름이 'Custom'인 Papersize 옵션용이며 * MinSize 및 *MaxSize의 추가 특성을 인식합니다.
세 번째 버전은 OEM 정의로 간주되고 추가 특성 *OEM_Info 인식할 다른 용지 크기 조정 옵션을 다룹니다.
이전에 정의된 템플릿을 삭제하거나 수정하지 않고 이 변경을 수행합니다. 간단한 GDL 데이터 파일을 만들어 항목의 적절한 템플릿화를 확인합니다.
솔루션
다음 코드 예제에서는 가능한 한 가지 대답을 보여 주세요.
*Template: MIN_SIZE
{
*Name: "*MinSize"
*Type: ATTRIBUTE
*ValueType: PAGE_DIM
}
*Template: MAX_SIZE
{
*Name: "*MaxSize"
*Type: ATTRIBUTE
*ValueType: PAGE_DIM
}
*Template: OEM_INFO
{
*Name: "*OEM_Info"
*Type: ATTRIBUTE
*ValueType: NORMAL_STRING
}
*Template: OEM_PAPERSIZE_OPTION
{
*Inherits: PAPERSIZE_OPTION2
*Members: (OEM_INFO)
*Instances: <ANY>
}
*Template: CUST_PAPERSIZE_OPTION
{
*Inherits: PAPERSIZE_OPTION2
*Members: (MIN_SIZE, MAX_SIZE)
*Instances: Custom
}
*Template: PREDEFINED_PAPERSIZE_OPTION
{
*Inherits: PAPERSIZE_OPTION2
*Instances: (Letter, Legal, A4)
}
다음 코드 예제에서는 확인을 위한 샘플 GDL 데이터 파일을 보여줍니다.
*PFeature: random
{
*Name: "Generic Feature"
*DefaultOption: First
*POption: First
{
*Name: "First Option"
*Command: "Select me"
}
}
*PFeature: PaperSize
{
*Name: "Paper Size"
*DefaultOption: Letter
*POption: Letter
{
*Name: "Letter"
*Command: "Select Letter"
*PaperSize: PAIR(8.5, 11) , inches
}
*POption: Legal
{
*Name: "Legal"
*Command: "Select Legal"
*PaperSize: PAIR(8.5, 14) , inches
}
*POption: A4
{
*Name: "A4"
*Command: "Select A4"
*PaperSize: PAIR(205, 317), mm
}
*POption: OEMName_Special_size
{
*Name: "OEMName size"
*Command: "Select OEMName size"
*PaperSize: PAIR(365, 487), mm
*OEM_Info: "<83 d4 93 ae>"
}
*POption: Custom
{
*Name: "Custom Size"
*Command: "Select Custom"
*MaxSize: PAIR(400, 500), mm
*MinSize: PAIR(100, 150), mm
}
}
*PFeature: InputTray
{
*Name: "Paper Source"
*DefaultOption: Upper
*POption: Upper
{
*Name: "Upper Tray"
*Command: "Select Upper Tray"
*Capacity: 2000 *% sheets
}
*POption: Lower
{
*Name: "Lower Tray"
*Command: "Select Lower Tray"
*Capacity: 500 *% sheets
}
}