前页 后页

如何定义自定义SQL片段

您可以创建模板片段以从SQL查询返回数据。为此,您可以在模板片段的“文档选项”中定义一个SQL查询,然后在模板片段的“自定义”部分中添加引用SQL查询返回的列的字段。该查询取决于DBMS,因此可能会因所使用的DBMS而异。

创建一个SQL查询片段

行动

也可以看看

1个

在文档模板编辑器中打开或创建模板片段。

文件范本 创建模板片段

2

在文档模板编辑器中,右键单击模板背景,然后单击图标。

显示“文档选项”对话框。

3

选择“自定义查询”页面。

4

在“模板片段类型”面板中,选择“自定义SQL”单选按钮。

5

在选项卡上的主文本字段中,键入要在模型上运行的SQL查询。

您可以将#<macro> #s用作字符串替换,就像其他SQL搜索查询一样。

您的查询必须返回一或多个列;例如:

SELECT DocName AS TemplateName 作者AS TemplateLocation

来自t_document

DocType = 'SSDOCSTYLE'和 IsActive = 1

SQL查询可以使用#OBJECTID#,#DIAGRAMID#或#PACKAGEID#宏来引用文档模板当前正在处理的元素,图或包的ID。例如:

SELECT Count Object_Type AS CountOfActors

来自t_object

WHERE Object_Type = “演员”,而Package_ID = #PACKAGEID#

您还可以使列条目成为到生成文档中元素条目的超链接。列标题字段(在模板文本本身的“自定义”面板中)必须包含后缀“ Hyperlink”;例如:

.eap(JET)存储库的{Elements-Hyperlink},或其他类型的存储库的{Elements.Hyperlink}

列条目或值必须具有以下格式:

{ guid }标签

在这种格式中,{guid}是要链接到的元素的GUID,LABEL是超链接文本(例如元素名称),可以手动插入或从另一个命令返回。例如:

{123-456-7890} 2级

在生成的报告中,该字段显示为“ Class2”,它链接到文档中Class2的描述。

此示例返回当前正在报告的元素的每个基本(父)类的超链接名称:

SELECT #Concat t_object。 ea_guid, t_object。名称#

AS [ BaseClassName - Hyperlink ] (用于.eap文件;对于其他存储库,请使用     AS [ BaseClassName.Hyperlink ])

t_object, t_connector

t_connector。 Start_Object_ID = #OBJECTID#

AND t_object。 Object_ID = t_connector。 End_Object_ID

AND t_connector。 Connector_Type = '通用化'

该查询可能返回多个条目,在这种情况下,每行报告一个条目。如果需要,您可以具有多个用逗号分隔的超链接查询语句。您可以超链接到报告的元素,属性,操作,图表和包。

通过提供以下格式的列,可以强制将字段处理为超链接或格式化的注释:

定制>

{名称}

<fieldname> .Formatted(或<fieldname> .Hyperlink)(对于所有存储库, .eap除外

<自定义

在您的自定义SQL Query语句中,必须使用与模板字段名称匹配的别名。例如(在MySQL中):

从t_object中选择ea_guid AS CLASSGUID,Object_Type AS CLASSTYPE,名称,注释为“ Note.Formatted”

其中Object_ID =#OBJECTID#

创建搜索定义

6

单击确定按钮以关闭“文档选项”对话框。

7

在“文档模板编辑器”的“部分”面板中,选中“自定义”复选框以生成“自定义”部分。

设置报告部分

8

在“自定义”部分中,右键单击并选择“插入自定义字段”选项。

出现提示,提示要创建的字段名称。

9

根据提示,键入查询所返回的列的名称。例如,CountOfActors。

单击确定按钮。

10

对于要包括在报告中的每一列重复步骤8和9。

将所需的任何其他格式和内容添加到模板片段。

11

保存模板片段,并将其添加到普通文档模板中。

将片段添加到文档模板

笔记

  • 元素过滤器将不适用于模板片段中的“自定义”部分
  • 在您的SQL语句中,您可以使用以下方法引用模型详细信息:
    -#OBJECTID#返回文档模板当前正在处理的元素的ID
    -#PACKAGEID#和#Package#返回当前正在使用的软件包的ID
    由文档模板处理
    -#Author#从“常规”页面的“作者”字段中获取用户名
    “首选项”对话框,因此可以对创建的对象执行定义的搜索
    由该用户(可以在“首选项”对话框中手动重置此值)
  • 您可以在“在项目中查找”窗口中使用SQL编辑器来测试SQL查询。

学到更多