3.3. 实体列表报表

报表向导允许为实体实例列表创建两种类型的报表:

  1. 手动选择特定实体实例的报表

  2. 由特定请求筛选的实体实例报表。

来看看第一种报表类型。假设想要获取图书馆中所有书籍实例(library$BookInstance 实体)的列表,列表项中包含书籍的名称和所属类目。

第一步,指定报表详细信息:

  • Entity - 报表实体 - library$BookInstance.

  • Template type - 输出格式 - XSLX.

  • Report name - 报表名称 - Book items location.

然后,选择报表的类型(Report for list of entities),然后单击 Next

list of entities step 1
Figure 11. 实体列表报表:第一步

按任务要求,在属性选择窗口中选择 BookItem.Publication.Book.NameBookItem.LibraryDepartment.Name

list of entities attributes
Figure 12. 实体列表报表:选择实体属性

单击 ОК 并进入第二步,进行报表带区编辑。

用于实体列表的报表模板被限制为只能有一个以表格形式显示数据的区域。虽然不允许添加新区域,但可以通过单击包含属性列表的链接来编辑现有数据集,或者删除现有区域并重新创建。

目前,不需要进行任何更改。单击 NextSave 保存报表。该报表在报表编辑界面中显示如下:

list of entities editor
Figure 13. 报表数据构成

一旦报表被保存,就可以从通用报表浏览器运行报表。

此外,可以添加一个按钮来从书籍条目浏览界面运行报表,通过单击出版物浏览界面中的 Show items 按钮打开该界面。为此,将书籍实例表格的 multiselect 属性设置为 true,以便能够为报表指定一组记录,然后声明一个标准的 ListPrintFormAction

<groupTable id="bookInstancesTable"
            multiselect="true"
                        ...>
    <actions>
        <action id="create" type="create"/>
                <!-- -->
        <action id="list" type="listPrintForm" caption="msg://printList"/>
    <columns>
        <!-- -->
    </columns>
    <rowsCount/>
    <buttonsPanel id="buttonsPanel"
                  alwaysVisible="true">
        <button id="createBtn" action="bookInstancesTable.create"/>
        <!-- -->
        <button id="listBtn" action="bookInstancesTable.list"/>
    </buttonsPanel>
</groupTable>

然后我们需要将 Book items location 报表和书籍浏览界面相关联。打开报表编辑器,切换到 Roles and Screens 标签页从界面下拉列表选择 library$BookInstance.browse 并添加 至表格中:

list of entities screens
Figure 14. 添加界面

现在,可以从书籍条目浏览界面运行。如需获取报表中的条目列表,首先切换到 Library → Accession Register 界面,然后从下拉列表选择书籍生成条目。然后切换至 Library → Publications 界面,选择之前生成过条目的书籍,点击 Show items 按钮。在 BookInstances 界面选择表格中需要生成报表的条目然后点击 Print list 按钮。Print selected 选项会导出选中的条目,Print all 会导出当前过滤器选中的所有实例。

list of entities running
Figure 15. 打印选中的

输出如下:

list of entities result
Figure 16. 报表输出