文件首頁
MySQL Workbench 手冊
相關文件 下載本手冊

9.7.2 建立自訂範本

在最簡單的情況下,範本包含兩個檔案:一個範本檔案 (副檔名為 .tpl) 和一個特殊檔案 info.xmlinfo.xml 檔案包含關於範本的重要中繼資料。第三個檔案是選用的,即預覽影像檔案。此預覽檔案提供縮圖影像,說明產生的報表外觀。

建立自訂範本最簡單的方法之一,是複製任何現有的範本。

例如,以下程序說明如何根據 Text Basic 範本建立自訂範本。

  1. 瀏覽至儲存範本的資料夾。假設 MySQL Workbench 已安裝至 Windows 的預設位置,則此位置為 C:\Program Files\MySQL\MySQL Workbench 8.0 SE\modules\data\wb_model_reporting

  2. 複製 Text_Basic.tpl 資料夾。此副本可以命名為任何合適的名稱,例如 Custom_Basic.tpl

  3. 編輯 info.xml 檔案以反映您的自訂範本。此案例中未編輯的檔案如下所示

    <?xml version="1.0"?>
    <data>
      <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
      id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}" struct-checksum="0xb46b524d">
        <value type="string" key="description">
          A basic TEXT report listing schemata and objects.
        </value>
        <value type="string" key="name">HTML Basic Frame Report</value>
        <value type="list" content-type="object"
        content-struct-name="workbench.model.reporting.TemplateStyleInfo"
        key="styles">
          <value type="object" struct-name="workbench.model.reporting.TemplateStyleInfo"
          id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}" struct-checksum="0xab08451b">
            <value type="string" key="description">
              Designed to be viewed with a fixed sized font.
            </value>
            <value type="string" key="name">Fixed Size Font</value>
            <value type="string" key="previewImageFileName">
              preview_basic.png
            </value>
            <value type="string" key="styleTagValue">fixed</value>
          </value>
        </value>
        <value type="string" key="mainFileName">report.txt</value>
      </value>
    </data>

    此檔案定義了兩個物件:TemplateInfo 物件和 TemplateStyleInfo 物件。這些物件包含有關範本的資訊,這些資訊將顯示在 DBDoc 模型報表精靈的主頁中。

  4. 變更檔案中使用的物件 GUID。在此範例中,有兩個需要取代

    id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}"
    ...
    id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}"

    產生兩個新的 GUID。這可以使用合適的命令列工具完成,並且也有免費的線上工具可以產生 GUID。MySQL 的 UUID() 函數也會產生 GUID

    mysql> SELECT UUID();
    +--------------------------------------+
    | UUID()                               |
    +--------------------------------------+
    | 648f4240-7d7a-11e0-870b-89c43de3bd0a |
    +--------------------------------------+

    取得新的 GUID 值之後,請據此編輯 info.xml 檔案。

  5. 編輯 TemplateInfoTemplateStyleInfo 物件的文字資訊,以反映自訂範本的目的。

  6. 修改後的檔案現在看起來會像下列範例

    <?xml version="1.0"?>
    <data>
      <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
      id="{cac9ba3f-ee2a-49f0-b5f6-32580fab1640}" struct-checksum="0xb46b524d">
        <value type="string"
        key="description">
          Custom basic TEXT report listing schemata and objects.
        </value>
        <value type="string" key="name">Custom Basic text report</value>
        <value type="list" content-type="object"
        content-struct-name="workbench.model.reporting.TemplateStyleInfo" key="styles">
          <value type="object"
          struct-name="workbench.model.reporting.TemplateStyleInfo"
          id="{39e3b767-a832-4016-8753-b4cb93aa2dd6}" struct-checksum="0xab08451b">
            <value type="string" key="description">
              Designed to be viewed with a fixed sized font.
            </value>
            <value type="string" key="name">Fixed Size Font</value>
            <value type="string" key="previewImageFileName">preview_basic.png</value>
            <value type="string" key="styleTagValue">fixed</value>
          </value>
        </value>
        <value type="string" key="mainFileName">custom_report.txt</value>
      </value>
    </data>
  7. 建立新的範本檔案。根據您的需求,這也可能最好透過編輯現有的範本來完成。在此範例中,範本檔案 report.txt.tpl 如下所示

    +--------------------------------------------+
    | MySQL Workbench Report                     |
    +--------------------------------------------+
    
    Total number of Schemas: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    {{SCHEMA_NR}}. Schema: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    {{#TABLES}}{{TABLE_NR_FMT}}. Table: {{TABLE_NAME}}
    {{#COLUMNS_LISTING}}## Columns ##
    Key  Column  Name  Datatype  Not Null  Default  Comment
    {{#COLUMNS}}{{COLUMN_KEY}}{{COLUMN_NAME}}{{COLUMN_DATATYPE}} »
    {{COLUMN_NOTNULL}}{{COLUMN_DEFAULTVALUE}}{{COLUMN_COMMENT}}
    {{/COLUMNS}}{{/COLUMNS_LISTING}}
    {{#INDICES_LISTING}}## Indices ##
    Index  Name  Columns  Primary  Unique  Type  Kind  Comment
    {{#INDICES}}{{INDEX_NAME}}{{#INDICES_COLUMNS}}{{INDEX_COLUMN_NAME}} »
    {{INDEX_COLUMN_ORDER}}{{INDEX_COLUMN_COMMENT}}{{/INDICES_COLUMNS}} »
    {{INDEX_PRIMARY}}{{INDEX_UNIQUE}}{{INDEX_TYPE}}{{INDEX_KIND}}{{INDEX_COMMENT}}
    {{/INDICES}}{{/INDICES_LISTING}}
    {{#REL_LISTING}}## Relationships ##
    Relationship  Name  Relationship  Type  Parent Table  Child Table Cardinality
    {{#REL}}{{REL_NAME}}{{REL_TYPE}}{{REL_PARENTTABLE}}{{REL_CHILDTABLE}}{{REL_CARD}}
    {{/REL}}{{/REL_LISTING}}
    ---------------------------------------------
    
    {{/TABLES}}
    {{/SCHEMATA}}
    =============================================
    End of MySQL Workbench Report

    此範本顯示模型中所有綱要的詳細資訊。

  8. 您可以隨意編輯上述範本檔案,並在需要時新增新的標記,並移除現有的標記。對於自訂範本範例,您可能想要建立更簡單的範本,例如以下範例

    +--------------------------------------------+
    | MySQL Workbench Custom Report              |
    +--------------------------------------------+
    
    Total number of Schemata: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    Schema Name: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    
    {{#TABLES}}
    Table Name: {{TABLE_NAME}}
    {{/TABLES}}
    {{/SCHEMATA}}
    
    Report Generated On: {{GENERATED}}
    =============================================
    End of MySQL Workbench Custom Report

    此簡化的報表僅列出模型中的綱要和表格。由於使用了 {{GENERATED}} 變數,報表產生的日期和時間也會顯示。

  9. 接著可以測試自訂範本。啟動 MySQL Workbench,載入要產生報表的模型,選取 模型DBDOC - 模型報表選單項目。然後從可用範本清單中選取新的自訂範本,選取輸出目錄,然後按一下 完成 以產生報表。最後,瀏覽至輸出目錄以檢視完成的報表。