GDL 练习 6:创建专用版本
运动
使用 练习 5 为 *PFeature: PaperSize 创建三个专用版本的 *POption。
第一个版本适用于具有“Letter”、“Legal”和“A4”实例名称的 Papersize 选项。 这些选项将具有其当前行为。
第二个版本适用于具有实例名称为“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
}
}