在最简单的情况下,模板由两个文件组成:一个模板文件(具有.tpl
扩展名)和一个特殊文件info.xml
. 该
info.xml
文件包含有关模板的重要元数据。第三个文件是可选的,它是预览图像文件。此预览文件提供了一个缩略图图像,说明生成的报告的外观。
创建自定义模板的最简单方法之一是复制任何现有模板。
例如,以下过程描述了如何基于模板制作自定义Text Basic
模板。
导航到存储模板的文件夹。假设 MySQL Workbench 已安装到 Windows 上的默认位置,这是
C:\Program Files\MySQL\MySQL Workbench 8.0 SE\modules\data\wb_model_reporting
.复制
Text_Basic.tpl
文件夹。该副本可以被赋予任何合适的名称;例如,Custom_Basic.tpl
。-
编辑
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 模型报告向导主页中的模板的信息。 -
更改文件中使用的对象 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
相应地编辑文件。 编辑
TemplateInfo
和TemplateStyleInfo
对象的文本信息以反映自定义模板的用途。-
修改后的文件现在看起来像下面这样:
<?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>
-
创建新的模板文件。根据您的要求,这也可以通过编辑现有模板来最好地实现。在此示例中,模板文件
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
此模板显示模型中所有模式的详细信息。
-
可以按照您喜欢的任何方式编辑前面的模板文件,添加新标记,并根据需要删除现有标记。对于自定义模板示例,您可能希望创建一个更简单的模板,例如以下模板:
+--------------------------------------------+ | 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}}
变量的结果。 然后可以测试自定义模板。启动 MySQL Workbench,加载模型以生成报告,选择 Model、DBDOC - Model Reporting菜单项。然后从可用模板列表中选择新的自定义模板,选择一个输出目录,然后单击“完成”以生成报告。最后,导航到输出目录以查看完成的报告。