GDL 演習 6: 特殊なバージョンを作成する
演習
演習 5 を使用して、*PFeature: PaperSize 用の *POption の 3 つの特殊なバージョンを作成します。
最初のバージョンは、'Letter'、'Legal'、および 'A4' のインスタンス名を持つ Papersize オプション用です。 これらのオプションには、現在の動作があります。
2 番目のバージョンは、'Custom' のインスタンス名を持つ Papersize オプション用であり、*MinSize および *MaxSize という追加の属性を認識します。
3 番目のバージョンでは、OEM 定義と見なされ、追加の属性 *OEM_Info を認識する他の papersize オプションについて説明します。
この変更は、以前に定義したテンプレートを削除または変更せずに行います。 エントリの適切なテンプレート化を確認する単純な GDL データ ファイルを作成します。
ソリューション
次のコード例は、考えられる答えの 1 つを示しています。
*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
}
}