ADF 数据可视化组件简介 — 图形、计量器、地图、数据透视表和甘特图

在本教程中,您将使用 Oracle ADF 中的 DVT(数据可视化工具)组件构建数据的某些图形表示,如条形图、计量器、甘特图和地理地图。您还将探究数据透视表的使用。

45 分钟

主题

本教程包括以下主题:

创建一个主从订单页面

添加条形图

添加计量器
添加地理地图
创建数据透视表
创建甘特图

将光标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

概述

ADF 数据可视化组件是一组丰富的交互式 ADF Faces 组件,可以为数据分析提供重要的图形和表格化功能。执行完前提条件部分后,本教程将向您演示如何使用 ADF DVT 组件以图形方式表示数据。

返回主题列表

构建主从页面之后,您将向应用程序中添加图形数据以试验某些高级特性。您将向该页面中添加新的选项卡并使用专用的 ADF DVT 组件。您将使用一个基于 ADF 业务组件的预定义应用程序模型。

返回主题列表

前提条件

开始本教程的任何部分之前,您应该:

返回主题列表

下载所需的组件并启动 JDeveloper 11g

在以下步骤中,您将下载 JDeveloper 11g 和本教程所需的其他文件。

1.

可以访问或已安装 Oracle JDeveloper 11g 产品。可以从 Oracle 技术网下载它。

2.

从 OTN 下载 FOD 模式 zip 文件,或者右键单击以下链接并从上下文菜单中选择 Save Target As... FOD_11.zip 文件下载到您选择的本地目录中。

3.

FOD_11.zip 文件解压缩到您选择的本地目录(即 temp)。

4.

选择 Start > All Programs > Oracle Fusion Middleware > JDeveloper Studio 11.1.1.0.0 启动 JDeveloper。

如果 Migrate User Settings 对话框打开,请单击 NO

如果系统提示您选择一个用户角色,则选择 Default

关闭 Tip of the Day 窗口。

5.

现在应显示 JDeveloper IDE。

返回主题

返回主题列表

安装数据库模式

在本部分中,您将使用 JDeveloper 应用程序安装数据库模式并使用相应的数据填充 FOD 模式。

1.

单击 Open Application 链接,或从工具菜单中选择 File | Open

在解压缩 FOD_11.zip 文件的目录中找到工作区 infrastructure.jws,该目录为d:\temp\Infrastructure

单击 Open如果提示您迁移项目,请按照迁移向导中的步骤继续操作。

2.

在 Application Navigator 中,展开 MasterBuildScript | Resources 节点并双击 build.properties 在编辑器中打开它。

3.

设置 build.properties 文件中的相应值(jdeveloper.home 以及所有 jdbc.* 和 db.* 设置)。相关的设置为:

jdeveloper.home 安装 JDeveloper 的位置,即 c:/middleware/jdeveloper
jdbc.urlBase 数据库的基本 URI,即 jdbc:oracle:thin:@localhost
jdbc.port 数据库的端口号,即 1521
jdbc.sid 数据库实例名,即 XEORCL
db.adminUser 具管理员权限的数据库用户,即 system
db.demoUser 要创建的数据库用户和模式的名称,即 fod
db.demoUser.password 要创建的数据库用户的口令,即 fusion
db.demoUser.tablespace 用户表空间的名称,即 USERS
db.demoUser.tempTablespace 临时表空间的名称,即 TEMP

4.

在 MasterBuildScript 项目中,选择 build.xml 文件。

5.

在 Structure 窗口中,右键单击 refreshSchema 目标并选择 Run Target "refreshSchema"

出现提示后,输入数据库系统用户口令。

单击 Continue。

6.

确认 Log 窗口没有报告任何主要错误。应如下所示:

7.

单击 Infrastructure 应用程序名称旁边的向下箭头 并选择 Close Application

8.

在 Confirm Close Application 对话框中,选择 Close application and remove it from IDE

单击 OK

返回主题

返回主题列表

上载启动应用程序

在创建任何组件之前,您必须先打开启动应用程序。为此,执行以下步骤:

1.

下载 Gantt.zip 文件。右键单击以下链接并从上下文菜单中选择 Save Target As...,将 Gantt.zip 文件下载到您选择的本地目录。

2.

Gantt.zip 文件解压缩到您选择的本地目录(即 temp)。

3.

在 Application Navigator 中,单击 Open Application 链接。

找到工作区 c:\temp\BrowseEditApp\BrowseEditApp.jws

单击 Open如果提示您迁移项目,单击 Yes 确认。

4.

该应用程序加载到 JDeveloper 中。

返回主题

返回主题列表

创建数据库连接

您需要创建一个到 FOD 模式的数据库连接。为此,执行以下步骤:

1.

从菜单栏中选择 View | Database Navigator

2.

在 Database Navigator 中,右键单击 BrowseEditApp 并从上下文菜单中选择 New Connection

3.

输入连接名称,选择连接类型并输入用户名和口令。在本示例中,连接名称为 FOD,用户名为 fod,口令为 fusion

4.

单击 Test Connection 确认您可以连接。

如果连接成功,单击 OK

5.

在 Application Navigator 中,单击 Application Resources 打开该面板。

6.

在 Application Navigator 中,展开 Application Resources 面板中的 Connections 和 Database 节点以查看您刚刚创建的 FOD 连接。您可以展开 FOD 节点以查看数据库对象。

返回主题

返回主题列表

探究启动应用程序

启动应用程序使用 Orders、OrderItems 和 ProductsBase 实体对象和它们对应的视图对象。它还在需要时使用您发现的其他视图对象。

1.

打开 Application Navigator 并展开 Model 项目节点。您会看到现有的实体、视图、链接对象和 FODModule。

Model 项目包含应用程序所需的所有必需组件。

2.

右键单击 Model 项目节点,并从上下文菜单中选择 Project Properties

3.

在 Project Properties 对话框中,选择 Business Components 节点并从 Connection 域的可用列表中选择 FOD 连接。然后,单击 Update 按钮。

4.

在 Connection 对话框中,单击 Test Connection 按钮并确保操作已成功。

单击 OK 关闭对话框,然后再次单击 OK

5.

要在业务组件测试器中测试该模块,在 Application Navigator 中右键单击 FODModule 并选择 Run

等待 Browser 窗口打开。

6.

在 Business Component Browser 中,双击 OrdersItemsOrdersFkLink1

7.

使用导航按钮浏览订单。

8.

关闭 Business Component Browser 窗口。

9.

折叠 Model 项目。展开 ViewController 项目节点。您会看到创建融合 Web 应用程序时默认创建的现有组件。

返回主题

返回主题列表

创建一个主从订单页面

启动应用程序使用 Orders、OrderItems 和 ProductsBase 实体对象和它们对应的视图对象。它还在需要时使用您发现的其他视图对象。

1.

在 Application Navigator 中,右键单击 ViewController 节点并从上下文菜单中选择 New

2.

在 New Gallery 中,单击 Current Project Technologies 选项卡,然后选择 Web Tier | JSF 类别并选择 JSF Page 项。

单击 OK

3.

将 File Name 域设置为 OrdersAndStocks

单击 OK

4.

新页面在 Design 编辑器中打开。

5.

在 Component Palette 中,使用 ADF Faces | Layout 库将 Panel Tabbed 组件拖放到页面上。

在 Property Inspector 中,使用 Style 节点中的 Box 选项卡将 Width 设置为 100 Percent,将 Height 设置为 600 Pixel

6.

选择 showDetailItem,在 Property Inspector 中使用 Common 节点在 Text 域中输入 MDOrders

7.

在 Application Navigator 中,展开 Data Controls 折叠面板和 FODModuleDataControl 节点。

8.

OrdersView1 节点拖放到可视化编辑器的页面中。从 Create 上下文菜单中选择 Forms --> ADF Read-only Form

9.

在 Edit Form Fields 对话框中,选中 Include Navigation Controls 复选框,选择除以下域之外的所有域:OrderId、OrderDate、OrderStatusCode、OrderTotalCustomerId。然后单击 Delete

单击 OK

10.

在 Data Controls 面板中,展开 OrdersView1 节点。将 OrderItemsView2 节点拖放到表单底部。

11.

从 Create 上下文菜单中选择 Tables --> ADF Read-only Table

12.

在 Edit Table Columns 对话框中,选择 Row SelectionSorting。选择除以下列之外的所有列:LineItemId、Quantity、UnitPriceProductName。单击 Delete

然后单击 OK

13.

选择了新表后,在 Property Inspector 中使用 Style 节点中的 Box 选项卡,在 Width 域中输入 100 Percent。在 Height 域中输入 100 Pixel

选择 Common 选项卡,在 Id 域中输入 OrdItem

14.

页面应如下所示:

15.

单击 JDeveloper 菜单栏上的 Save All 图标或选择 File | Save All

16.

在页面中右键单击,然后从上下文菜单中选择 Run 或单击 Run 按钮 运行该页面。

17.

该页面加载到您的浏览器中。

18.

试验导航按钮。

19.

试用列出的任一详细信息列上的排序功能。

20.

关闭浏览器窗口。

此时,您已经有了一个工作页面,您将添加条形图、计量器、甘特图、地理信息等图形组件并创建一个数据透视表。

返回主题列表

向页面中添加条形图

在本部分中,您将根据仓库信息向 OrdersAndStocks 页面中添加一个基本条形图,然后使用更加复杂的渲染增强条形图特性。

返回主题列表

创建基本条形图

基于视图 WarehouseStockLevelsView,您可以向 OrdersAndStocks 页面的 MDOrders 选项卡中添加一个条形图,以显示指定订单中的各种产品在各个仓库位置中的相应库存级别。WarehouseStockLevelsView 视图通过产品 Id 属性链接到 OrderItemsView。

1.

返回 JDeveloper,展开 Model | Application Sources | oracle.fod.model,双击 WarehouseStockLevelsView 视图在编辑器中打开它。

2.

在编辑器中,单击 Query 选项卡显示 SQL 语句。您会看到视图返回以下列:仓库 id、仓库名称、产品 id 以及现有数量(针对具有该产品的任何美国仓库 id)。

SELECT Warehouses.Warehouse_id,
Warehouses.Warehouse_Name,
WarehouseStockLevels.Product_Id,
WarehouseStockLevels.Quantity_On_Hand,
Addresses.Address1, Addresses.City,
Addresses.State_Province,
Addresses.POSTAL_CODE,
Addresses.Country_Id
FROM
WAREHOUSES Warehouses,
Warehouse_Stock_Levels WarehouseStockLevels,
Addresses Addresses
WHERE
Warehouses.warehouse_id = WarehouseStockLevels.warehouse_id
and Addresses.address_id = Warehouses.address_id and Addresses.Country_id='US'

3.

在编辑器窗口中,单击 OrdersAndStocks 选项卡显示该页面。

4.

在 Data Controls 面板中,展开 OrdersView1 | OrderItemsView2 节点。选择 WarehouseStockLevelsView1 节点并将它拖放到 Structure 窗格的 OrderItems 从表下面。

从 Create 上下文菜单中选择 Graphs

5.

在 Component Gallery 对话框中,选择 Bar 作为类别,并选择 Bar 作为 Graph Type,注意,Quick Start Layout 在每种类别中都提供了各种各样的布局。选择第一种布局。

单击 OK

6.

在 Create Bar Graph 对话框中,根据需要,取消选择 Include Child Accessors,然后指定以下值:
- Bars:单击 Add 并从 Available 列表中选择 QuantityOnHand
- X Axis:单击 Add 并从下拉列表中选择 WarehouseId
- X Axis:单击 Add 并从下拉列表中选择 City

Attribute Labels 部分:

Attribute Label
QuantityOnHand Quantity(键入值)
WarehouseId WarehouseName(从下拉列表选择)
City City(从下拉列表选择)

依次单击 Swap Bars with X Axis 按钮和 Preview 选项卡。

连接到数据库后,会显示条形图预览。

单击 OK

7.

在 dvt:barGraph 组件的 Property Inspector 中,使用 Appearance 组设置以下属性:

Style Comet

展开 Image 节点,设置以下属性:

ImageHeight 300
ImageWidth 400
ImageFormat Flash
3D Effect true

8.

Behavior 节点中,选择 PartialTriggers 项旁边的 Edit 选项,

然后在 Edit Property 对话框中,移动 table* - OrdItem 使图形与订单项行选择同步。

展开 panelFormLayout | facet | panelGroupLayout 节点,然后移动 4 个 commandButton,使图形与导航操作同步。

单击 OK

9.

Partial Triggers 属性现在应如下所示:

10.

保存您的工作,然后在页面中右键单击并从上下文菜单中选择 Run

11.

该页面加载到浏览器中。您会看到右侧的图例显示了与各条形对应的仓库名称和城市。各条形以不同的颜色标识。将鼠标置于各条形之上以查看工具提示标签(仓库名称、城市和数量)。

12.

在详情表中选择另一行以测试同步流程。

13.

单击 Next 按钮测试更改订单时的条形图同步。

关闭浏览器窗口。

返回主题

返回主题列表

改进基本条形图

在本部分中,您将通过添加一些动画特性来增强条形图。

1.

返回 JDeveloper,选择 dvt:barGraph 组件,并在 Appearance 部分中,将 SeriesEffect 设置为 SE_GRADIENT,将 SeriesRolloverBehavior 设置为 RB_HIGHLIGHT

2.

Appearance | Animation 部分中,将 AnimationOnDataChange 设置为 ON,将 AnimationOnDisplay 设置为 Auto

注意:如果将 animateOnDisplay 设置为 on,则图形会在首次显示在页面上时播放动画;
如果将 AnimateOnDataChange 设置为 on,则图形会在每次数据更改或在您单击表中的行时播放动画。

3.

在 Structure 窗格中,展开 dvt:barGraph,然后在 Legend Area 中,将 Rendered 属性设置为 Default (TRUE),将 AutomaticPlacement 设置为 AP_NEVER

4.

保存您的工作,单击 Run 按钮 运行该页面。

5.

该页面显示在您的浏览器窗口中。注意在达到最后一个值位置前的条形动画。

6.

将鼠标置于某个条形上后,您会看到其他条形显示为阴影。

7.

选择另一个条形以更改高亮显示的流程。您会看到右侧的图例也相应地高亮显示了。

8.

单击 Next 按钮更改订单。您会看到动画(不断增高的条形上出现三角形)……

一直进行到最后一个条形表示。然后,将鼠标停留在一个条形上。

9.

您可以在图例部分试验选择一个仓库名称以高亮显示另一个条形。

10. 关闭浏览器窗口。

返回主题

返回主题列表

为库存级别使用计量器

根据同一视图,您可以添加一个计量器图形以反映每个仓库的库存级别。

1.

返回 JDeveloper,在编辑器窗口的 OrdersAndStocks.jspx 页面上的 MDOrders 选项卡中单击右键,从上下文菜单中选择 Insert after Show Detail Item --> Show Detail Item

2.

在 Property Inspector 中,使用 Common 节点将 Text 设置为 StockLevels

3.

单击 StockLevels 选项卡,然后打开 Data Controls 折叠面板并选择 FODModuleDataControl | OrdersView1 | OrderItemsView2 | WarehouseStockLevelsView1。将它拖放到 StockLevels 窗格中。

4.

选择 Tables --> ADF Read-only Table

5.

在 Edit Table Column 对话框中,选择 Row Selection 和 Sorting 复选框。删除 以下属性:WarehouseId、Address1 和 PostalCode

单击 OK

6.

在 Property Inspector 中,对于表组件使用 Style 节点中的 Box 选项卡,将 width 设置为 100 percent,将 Height 设置为 600 pixel

7.

使用 Behavior 节点将 Partial Triggers 属性设置为 ::OrdItem

8.

在 Component Palette 中,从 ADF Data Visualization 中选择 Gauge 组件并将其拖放到 Quantity 列上。

在 Create Gauge 对话框中,选择 Status Meter 类别,然后选择 Horizontal Status Meter with Thresholds

单击 OK

9.

在 Structure 窗格中,右键单击 outputText #{row.Quantity} 并选择 Delete 删除它。

10.

在 Structure 窗格中,选择 dvt:gauge 组件,在 Property Inspector 中,设置以下属性:在 Common 节点中,将 Gauge Type 设置为 STATUSMETER。在 Value 域旁边,从列表中选择 Expression Builder

在 Expression Builder 对话框中,展开 JSP Objects | Row,然后双击 QuantityOnHand 将其移动到 Expression 窗格中。

单击 OK

11.

选择 Gauge Data 选项卡,在 MinValue 域中输入 0,在 MaxValue 域中输入 1000,假设我们的简单示例中每个仓库的单个产品的库存级别都不超过 1000。

12.

选择 Style 节点,在 Width 域中输入 100 Percent,在 Height 域中输入 80 Pixel

13.

在 Structure 窗格中,选择 Gauge 组件上的 af:column,在 Property Inspector 的 Appearance 节点中将 Width 设置为 200

14.

在接下来的几个步骤中,您将使用计量器的阈值,以允许您在我们的示例中指定最小和最大库存级别指示器。

在 Structure 窗格中,展开 gauge | ThresholdSet 组件。

15.

您会看到 Threshold Set 中有 3 个阈值。

16.

在 Structure 窗格中,选择第一个 Threshold 组件。在 Property inspector 中,将 Id 域设置为 t00,将 ThresholdMaxValue 设置为 30(这是我们希望设置的最小库存级别警报),并在 Text 域中键入 mini

17.

在 Structure 窗格中,选择第二个 Threshold 组件。在 Property inspector 中,将 Id 域设置为 t01,将 ThresholdMaxValue 设置为 700(这是我们希望拥有的最佳库存级别),并在 Text 域中键入 maxi

18.

在 Structure 窗格中,选择第三个 Threshold 组件。在 Property Inspector 中,保留 ThresholdMaxValue 为空。在 Advanced 节点中,将 Id 域设置为 t02

19.

在 Structure 窗格中,右键单击 tickLabel 组件并从上下文菜单中选择 Insert inside dvt:tickLabel --> Number Format

20.

在 Property Inspector 中,针对 Number Format 标记使用 Scale 选项卡将 ScaleFactor 属性设置为 SCALEFACTOR_NONE

21.

在 Structure 窗格中,选择 Metric Label 组件。使用 Common 节点,将 Metric Label 的 Position 属性设置为 LP_INSIDE_GAUGE_RIGHT

22.

在 Structure 窗格中,右键单击 metricLabel 组件并从上下文菜单中选择 Insert inside dvt:metricLabel --> Number Format

23.

在 Property Inspector 中,针对 Number Format 标记使用 Scale 选项卡将 ScaleFactor 属性设置为 SCALEFACTOR_NONE

24.

页面应如下所示:

25.

单击 Run 按钮 运行该页面。

26.

单击 StockLevels 选项卡以通过计量器显示相应的库存级别。

库存级别计量器显示了产品如何针对最小和最大警告级别在仓库中执行操作。将鼠标置于计量器上以显示相应的数量。

27.

您可以使用另一个订单试验从 MDOrders 选项卡切换到 StockLevels 选项卡。

28.

关闭浏览器窗口。

返回主题列表

创建地理地图

在先前针对位于美国的仓库使用的同一视图上,您可以使用 Oracle 的空间功能向现有页面中的新选项卡添加一个地图,指明相关仓库的地理位置。

1.

返回 JDeveloper,在 OrdersAndStocks 页面的 StockLevels 选项卡中单击右键,并选择 Insert after Show Detail Item --> Show Detail Item

2.

在 Property Inspector 中,使用 Common 节点将 Text 更改为 Location

使用 Style | Box 选项卡将 Width 设置为 100 Percent,将 Height 设置为 600 Pixel

3.

单击 Location 选项卡,然后在 Data Controls 面板中展开 OrdersView1 | OrderItemsView2 节点。选择 WarehouseStockLevelsView1 节点并将其拖到页面上的 Location 选项卡中。

4.

从 Create 上下文菜单中,选择 Geographic Map -> ADF Map and Point Theme

5.

在 Create Geographic Map 对话框中,单击 New 创建一个新的 Map Configuration。

6.

如果需要,将 Id 设置为 mapConfig1,然后针对 MapViewer URL 域从列表中选择 tapViewer,并单击 Edit 按钮。

在 Create URL Connection 对话框中,输入以下 URL 信息:

URL:http://elocation.oracle.com/mapviewer
单击 Test Connection 按钮。连接应该成功。

单击 OK

7.

使用 geo 数值重复之前针对 Geocoder URL 域的操作,并单击 Edit

提供以下 URL 信息:URL:http://elocation.oracle.com/geocoder/gcserver
单击 Test Connection 按钮。连接应该成功。

单击 OK。返回 Map Configuration 对话框,单击 OK

8.

将显示世界地图。

输入 -100 作为 Starting X,输入 40 作为 Starting Y 以定位于北美。然后,向上移动缩放光标将缩放级别设置为 2。单击 Refresh

单击 OK

9.

Create Map Point Theme Binding 对话框出现。对于 Address,选择 US (street, city, state, zip) 并选择以下域:

Street Address1
City City
State StateProvince
Zip Code PostalCode
Label WarehouseName

在 Point Data 下指定:

Data Quantity on Hand
Label Quantity

单击 OK 插入地图。

10.

在 Structure 窗口中,选择 dvt:map 组件。在 Property Inspector 的 Behavior 节点中,将 PartialTriggers 属性设置为 ::OrdItem(表的 ID)。

11.

Appearance 节点中,将 MapZoom 设置为 3

12.

要向地图中添加工具栏以提供缩放、区域选择和其他功能,从 Component Palette 中选择 Toolbar 组件并将其拖放到 dvt:map 组件的下方。

13.

在 Create Map Toolbar 对话框中,选择 map 作为 map id(地图组件的名称)。

单击 OK

14.

该页面应如下所示:

15.

单击 JDeveloper 菜单栏上的 Save All 图标或选择 File | Save All

16.

单击 Run 按钮 运行 OrdersAndStocks.jspx 页面。选择一个订单项产品存储在几个位置的订单。

17.

单击 Location 选项卡查看指明该产品的仓库地理位置的地图。

移动嵌入的窗口以在地图上选择另一个区域。

18.

减小右下角的窗口嵌入。

尝试工具栏按钮,例如,单击 Zoom in 按钮。

在地图中单击以放大。

19.

单击工具栏中的鼠标指针图标,然后单击您选择的红点弹出一个显示位置名称数量的窗口。

关闭弹出窗口。

20.

试验其他功能,例如,选择 Area 按钮并单击 Rectangular 选择按钮,然后在地图中单击以在地图上选择一个矩形区域。

21.

系统计算并显示所选的区域面积。

22.

在工具栏中,单击 View 并选择 Information Panel

23.

将鼠标置于地图中的某个位置上以获取地理坐标,即经度/维度。

24.

在工具栏中,单击 distance 图标

25.

依次双击地图上的第一个点和第二个点以获取两个位置之间的距离。

26.

关闭浏览器窗口。

返回主题列表

创建数据透视表

根据您刚刚创建的视图,您可以向页面流图中添加一个新页面,然后在该新页面中创建数据透视表。

1.

返回 JDeveloper,展开 Model | Application Sources | oracle.fod.model,双击 SalesPivotTable 视图在编辑器中打开它。

2.

在编辑器中,单击 Query 选项卡显示 SQL 语句。注意,该视图汇总了各个产品类别、各个产品名称和美国各个州的销售情况。

SELECT category_translations.CATEGORY_NAME as "Category", products_base.product_name as "Product", addresses.state_province as "State", sum(order_items.QUANTITY * order_items.UNIT_PRICE) as "Sales"
FROM products_base, product_categories_base, category_translations, orders, order_items, addresses
WHERE products_base.product_id = order_items.product_id and products_base.CATEGORY_ID = product_categories_base.CATEGORY_ID and product_categories_base.CATEGORY_ID = category_translations.CATEGORY_ID and orders.SHIP_TO_ADDRESS_ID = addresses.ADDRESS_ID and orders.order_id = order_items.ORDER_ID and addresses.COUNTRY_ID = 'US'
GROUP BY category_translations.CATEGORY_NAME, products_base.product_name, addresses.state_province order by category_translations.CATEGORY_NAME, products_base.product_name

3.

单击 OrdersAndStocks 选项卡打开该页面,在 Location 选项卡中右键单击并选择 Insert after Show Detail Item --> Show Detail Item

4.

在 Property Inspector 中,使用 Common 节点将 Text 更改为 PivotTable

使用 Style | Box 选项卡将 Width 设置为 100 Percent将 Height 设置为 600 Pixel

5.

单击 Pivot Table 选项卡,然后在 Data Controls 面板中将 SalesPivotTable1 数据控件拖到页面上。

6.

从 Create 上下文菜单中选择 Tables -> ADF Pivot Table

7.

Create Pivot Table Binding 对话框出现。将 CategoryProduct 拖放到行边界,将 State 拖放到列边界,将 Sales 拖放到右侧的数据区域。

然后,单击 Data Aggregation 选项卡。

8.

在 Data Aggregation 中,单击 Add 按钮 创建一个新的 Total。选择/输入以下值:
Attribute:Product
Function:Sum(默认值),
Aggregate Value Display:After
Aggregate Value Label:Total Product

9.

单击 Preview 选项卡预览该设计。

单击 OK 将 PivotTable 插入页面中。

10.

在 Structure 窗口中,选择 dvt:pivotTable 组件。在 Property Inspector 的 Style | Box 选项卡中,将 Width 属性设置为 800 Pixel,将 Height 设置为 100 Percent

11.

单击 JDeveloper 菜单栏上的 Save All 图标或选择 File | Save All

12.

单击 Run 按钮 运行该页面。

13.

OrdersAndStocks 页面在浏览器中打开,单击 PivotTable 选项卡。

14.

显示销售表的默认视图。注意列总数。

15.

测试数据透视功能,例如,选择 Product 列并将其移到 State 行下方。

16.

新表显示各个州的产品销售情况。注意新的总数。

17.

选择 Product 行,并将它放回原始位置。您可以试验移动其他列/行。例如,选择 product category 列并将它移到 State 行上方以显示在各个州的销售的每种产品。

注意,您还可以交换层,例如,通过将一个层拖放到另一个层上来交换 Category 和 State。

18.

关闭浏览器窗口。

返回主题列表

创建甘特图

在本部分中,您将向页面中添加一个新选项卡用于创建甘特图。根据通过主从关系链接的两个现有视图 OrderShippingSummary 和 OrderShippingDetails,您可以向页面中添加一个新选项卡,然后在新页面中创建甘特图表。

1.

返回 JDeveloper,展开 Model | Application Sources | oracle.fod.model 节点并选择 OrderShippingSummary 视图对象。

2.

在编辑器中,单击 Query 选项卡查看 SQL 语句。该查询检索每个人的所有订单、最早订单日期以及最后发货日期。该查询如下所示:

SELECT persons.PERSON_ID, persons.FIRST_NAME as "First Name", persons.LAST_NAME as "Last Name", min(orders.ORDER_DATE) as "Order Date",
max(orders.ORDER_SHIPPED_DATE) as "Shipped Date", concat('Summary', '') as "Task Type"
FROM orders, persons
WHERE orders.CUSTOMER_ID = persons.PERSON_ID
group by persons.person_id, persons.FIRST_NAME, persons.last_name

3.

展开 Model | Application Sources | oracle.fod.model 节点并选择 OrderShippingDetails 视图对象。

4.

在编辑器中,单击 Query 选项卡查看 SQL 语句。该查询检索每个人的所有订单,给出 OrderShippingSummary 的详细信息。该查询如下所示:

SELECT persons.PERSON_ID, orders.ORDER_ID, orders.ORDER_DATE as "Order Date", orders.ORDER_SHIPPED_DATE as "Shipped Date", persons.FIRST_NAME as "First Name", persons.LAST_NAME as "Last Name", concat('Normal', '') as "Task Type"
FROM orders, persons
WHERE orders.CUSTOMER_ID = persons.PERSON_ID

5.

双击 FODModule 查看 OrderShippingSummary 和 OrderShippingDetails 之间的现有关系。

6.

返回 OrdersAndStocks 页面,在 PivotTable 选项卡中右键单击并选择 Insert after Show Detail Item --> Show Detail Item

7.

在 Property Inspector 中,使用 Common 节点将 Text 更改为 OrdersPlanning

使用 Style | Box 选项卡,将 Width 设置为 100 Percent,将 Height 设置为 600 Pixel

8.

单击 OrdersPlanning 选项卡,然后在 Data Controls 面板中选择 OrderShippingSummary2 并将其拖放到页面上。

9.

从动态菜单中选择 Gantt --> Project

10.

在 Create Project Gantt 对话框中,选择 PersonId 属性并单击删除按钮 。在 Tasks 选项卡中,从下拉列表中选择以下值:

Task Id PersonId
Task Type TaskType
Start Time OrderDate
End Time ShippedDate

这些值指定了每个人的汇总任务的持续时间,从各个订单的最早订货日期到最后的发货日期。

11.

现在,我们来创建显示各个订单的具体持续时间的子任务。单击对话框中的 Subtasks 选项卡并从下拉列表中选择以下值:

Subtasks Accessor OrderShippingDetails
Sub Task Id OrderId
Sub Task Type TaskType
Start Time OrderDate
End Time ShippedDate

单击 OK

12.

在 Property Inspector 中,针对 Common 选项卡,将 Start Time 和 End Time 时间段更改为当前日期的前两个月和后一个月(或您安装 FOD 模式的日期)。

注意,此处指示的日期可能与数据库中存储的日期不匹配。

Style | Box 选项卡中,将 Width 设置为 100 Percent,将 Height 设置为 100 percent

该页面应如下所示:

13.

单击 Run 按钮 运行该页面。

14.

该页面加载到浏览器中。

单击 OrdersPlanning 选项卡。

15.

甘特图显示每个人/客户所有订单的总持续时间。

16.

单击一个人的 + 图标以展开订单详细信息并查看各个订单的状态。

17.

扩大左侧窗格以查看更多列。

18.

注意默认情况下为甘特图创建的工具栏。单击 Zoom out 图标并注意任务上方图例中的更改,将列标签由 week 替换为 monthsquarters

19.

在菜单中,单击 View | Time Scale

您可以选择时间范围的单位。

20.

关闭浏览器窗口。

21. 您已成功完成了该教程。

返回主题列表

在本教程中,您看到了如何创建选项卡式 JSF 页面以及如何使用 ADF DVT 图形特性。

创建主从页面
添加条形图
添加计量器图表
添加地理信息
创建数据透视表
创建甘特图

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。