使用 Oracle Application Express 3.1 创建 PDF 报表
使用 Oracle Application Express 3.1 创建 PDF 报表
本教程将向您介绍如何使用 Oracle Application Express 3.1 中的某些 PDF 报表新特性。
大约 30 分钟
本教程包括下列主题:
将光标置于此图标上以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
报表查询现在支持多条 SQL 语句,允许在一个文档中包括多个报表或者根据不同的结果集组合报表和图表。打印文档的输出格式现在可以在运行时使用页面或应用程序项目进行设置。除了 PDF、Word、Excel 和 HTML 外,文档现在还能够以 XML 格式下载。报表查询和报表区域现在都允许指定将打印文档下载到客户端的方法,如作为附件显示文件下载/保存对话框或者将文档内嵌在浏览器窗口中显示。基于报表区域的打印文档列大小也已得到改进,现在支持基于点和百分比调整列大小。
有关更多信息,单击关于打印的 help 和 search。
要获得有关 3.1 版新特性的更多信息,单击此处。
返回主题列表
开始本教程之前,您应该:
| 1. |
安装 Oracle 数据库 9.2.0.3 或更高版本。 |
| 2. |
下载并配置 Oracle Application Express 3.1。 |
| 3. |
从这里下载 OEHR 示例对象打包的应用程序。将该应用程序及其支持的对象导入和安装到您的 Oracle Application Express 3.1 实例中。 |
| 4. |
下载并解压缩 apexnf.zip 文件,该文件包含创建本教程中某些报表所必需的报表布局 RTF 文件。 |
| 5. |
将新特性应用程序作为一个打包应用程序导入 Application Express 中。该文件位于此处。该应用程序包含您在前几个 OBE 教程中创建的所有对象。 |
注:本教程提供创建报表布局所需的 RTF 文件。如果您希望了解如何创建 RTF 模板,可以执行利用 Oracle Application Express 3.0 中的高级打印功能教程或参阅如何创建主从 PDF 报表这一章。
返回主题列表
在 Oracle Application Express 3.1 中,您可以更好地控制标准 PDF 报表中的输出。执行以下步骤:
| 1. |
登录到 Application Express,然后导航到您的新特性应用程序。单击 Maintain Employee Information 报表页面。
|
| 2. |
在 Regions 下,选择 Report 链接。
|
| 3. |
单击 Print Attributes 选项卡。

|
| 4. |
为 Enable Report Printing 选择 Yes,为 View File As 选择 Inline,然后单击 Report Columns 选项卡。如果为 View File As 选择了 Attachment,您单击报表下载链接时将出现一个文件打开/保存对话框。在 Oracle Application Express 3.1 中,您现在可以选择 Inline,这将直接在浏览器窗口中显示报表文档。该选择使用 content-disposition 属性包括在文档的 http 头部中。

|
| 5. |
取消选中 PHOTO 列的 Include in Export 复选框,然后单击 Recalculate。
|
| 6. |
注意,包括的所有列的间距是平均分配的。您可以手动更改数值。单击 Apply Changes。

|
| 7. |
单击 Run Page。
|
| 8. |
选择报表底部的 Print 链接。

|
| 9. |
随即显示 PDF 报表。要返回到 Application Express 中的报表,单击浏览器中的 Back 按钮。

|
| 10. |
在下一部分中,您将根据一个选择列表派生输出格式。选择开发人员工具栏中的 Edit Page 链接。

|
返回主题列表
要派生输出格式,您需要创建一个包含可选格式列表的项。执行以下步骤:
| 1. |
在 Items 下,单击 Create 图标。

|
| 2. |
单击 Select List。

|
| 3. |
确保为 Select List Control Type 选择了 Select List,然后单击 Next。

|
| 4. |
将 Name 更改为 P<#>_OUTPUT_LIST,然后单击 Next。

|
| 5. |
您需要在页面底部指定报表的输出类型列表。选择 Create or edit static List of Values 链接。

|
| 6. |
输入以下值,然后单击 Apply。
| Display Value |
Return Value |
| PDF |
PDF |
| Word |
RTF |
| Excel |
XLS |
| HTML |
HTM |
| XML |
XML |

|
| 7. |
为 Display Null Option 选择 No,然后单击 Next。

|
| 8. |
将 Label 更改为 Output Format,然后单击 Next。

|
| 9. |
为 Default 输入 PDF,然后单击 Create Item。

|
| 10. |
现在创建了输出格式列表,您需要在选择 Print 链接的情况下更改 Output Format。在 Regions 下,选择 Print 链接。

|
| 11. |
在 Printing 下,为 Output Format 选择 Derive from Item,为 Item 选择您刚创建的 P<#>_OUTPUT_LIST 项,然后单击 Apply Changes。

|
| 12. |
单击 Run Page。

|
| 13. |
显示报表时,您可以从 Output Formats 列表中选择 Excel。注:在 Oracle Application Express 3.1 中,添加了 XML 格式。

|
| 14. |
选择报表底部的 Print 链接。

|
| 15. |
出现一个窗口,询问您希望用哪个程序打开 Excel 文件。单击 OK(或 Open,这取决于您使用的浏览器)。Excel 打开,随即显示报表。关闭 Excel 窗口。


|
| 16. |
您还可以创建一个按钮来根据输出格式生成报表,而不是通过单击报表底部的 Print 链接。单击 Edit Page。

|
| 17. |
在 Buttons 下,单击 Create 图标。

|
| 18. |
接受默认选项,然后单击 Next。

|
| 19. |
选择 Create a button displayed among this region's items,然后单击 Next。

|
| 20. |
为 Button Name 输入 P<#>_Print,为 Label 输入 Print,为 Button Style 选择 HTML Button。然后单击 Create Button。

|
| 21. |
区域打印链接包含区域的 id。由于您希望通过一个按钮调用打印,而不是通过链接调用,因此您需要创建一个分支并在该 Action 的 Request 域中指定 FLOW_XMLP_OUTPUT_R### 参数,这样,按 Print 按钮时应用程序就知道要执行什么任务了。在 Regions 下,选择 Print 链接。

|
| 22. |
按 Ctrl-C 键复制 Print URL 域的 FLOW_XMLP_OUTPUT_R### 部分。由于您要通过按钮调用打印,您可以在 Link Label 域中删除 Print,然后单击 Apply Changes。

|
| 23. |
在 Branches 下,选择 Create 图标。

|
| 24. |
接受默认选项,然后单击 Next。

|
25.
|
为 Page 输入当前页面编号,将您复制的 FLOW_XMLP_OUTPUT_R### 参数粘贴到 Request 域中,然后单击 Next。

|
26. |
为 When Button Pressed 选择 P<#>_PRINT,然后单击 Create Branch。

|
27. |
单击 Run Page。

|
28. |
为 Output Format 选择 XML,然后单击 Print。

|
29. |
随即显示 XML。

|
返回主题列表
您可以在 Oracle Application Express 3.1 中向 PDF 报表添加多个查询。执行以下步骤:
| 1. |
导航到 New Features Application 页面。单击 Shared Components。

|
| 2. |
在 Reports 下,选择 Report Queries。

|
| 3. |
单击 Create。

|
| 4. |
为 Name 输入 multiquery,然后单击 Next。

|
| 5. |
输入以下查询,然后单击 Next。
select "OEHR_EMPLOYEES"."FIRST_NAME" as "FIRST_NAME", "OEHR_EMPLOYEES"."LAST_NAME" as "LAST_NAME", "OEHR_EMPLOYEES"."EMAIL" as "EMAIL", "OEHR_EMPLOYEES"."HIRE_DATE" as "HIRE_DATE", "OEHR_EMPLOYEES"."SALARY" as "SALARY" from "OEHR_EMPLOYEES" "OEHR_EMPLOYEES" where "OEHR_EMPLOYEES"."JOB_ID" like 'IT_PROG'
order by "OEHR_EMPLOYEES"."LAST_NAME"

|
| 6. |
您希望执行多个查询,然后单击 Add Query。

|
| 7. |
输入以下查询,然后单击 Create。
select "OEHR_DEPARTMENTS"."DEPARTMENT_NAME" as "DEPARTMENT_NAME", "OEHR_EMPLOYEES"."FIRST_NAME" as "FIRST_NAME", "OEHR_EMPLOYEES"."LAST_NAME" as "LAST_NAME", "OEHR_LOCATIONS"."CITY" as "CITY", "OEHR_LOCATIONS"."STATE_PROVINCE" as "STATE_PROVINCE" from "OEHR_LOCATIONS" "OEHR_LOCATIONS", "OEHR_EMPLOYEES" "OEHR_EMPLOYEES", "OEHR_DEPARTMENTS" "OEHR_DEPARTMENTS" where "OEHR_DEPARTMENTS"."MANAGER_ID"="OEHR_EMPLOYEES"."EMPLOYEE_ID" and "OEHR_DEPARTMENTS"."LOCATION_ID"="OEHR_LOCATIONS"."LOCATION_ID"
order by "OEHR_DEPARTMENTS"."DEPARTMENT_NAME"

|
| 8. |
您的查询已定义。单击 Next。

|
| 9. |
前提条件中提供的 apexnf.zip 文件中已经为您定义了报表布局。您只需上载该文件。单击 Browse... 选择 multiquery.rtf 文件,然后单击 Open。

|
| 10. |
单击 Next。

|
| 11. |
单击 Test Report。

|
| 12. |
单击 OK 打开文件,查看报表。

|
| 13. |
随即显示报表。这两个查询都使用之前定义的报表布局来执行和显示。关闭窗口。

|
| 14. |
单击 Finish。

|
| 15. |
您的报表查询已成功创建。现在,您可以将其与您应用程序中的页面相关联。单击 Application 路径式导航栏。

|
| 16. |
选择 Maintain Employee Information 页面。

|
| 17. |
您将创建一个用于运行报表的按钮。在 Buttons 下,单击 Create 图标。

|
| 18. |
接受默认选项,然后单击 Next。

|
| 19. |
接受默认选项 Create a button in a region position,然后单击 Next。

|
| 20. |
为 Name 输入 Employee Manager Report,为 Action 选择 Download Printable Report Query,然后单击 Next。

|
| 21. |
接受默认选项,然后单击 Next。

|
| 22. |
选择 [Top],然后单击 Next。

|
| 23. |
为 Report Query 选择 multiquery,然后单击 Create Button。

|
| 24. |
单击 Run Page。

|
| 25. |
单击 Employee Manager Report 按钮。

|
| 26. |
单击 OK 打开 PDF 文件。

|
| 27. |
随即显示报表。关闭窗口。在下一部分中,您将创建报表和图表。

|
返回主题列表
在本部分中,您将创建一个带图表的报表。为了简单起见,提供了一个具有报表布局的 RTF 文件。要从头创建一个报表布局,您需要安装 Oracle BI Publisher Desktop 并在 Microsoft Word 中创建布局。OBE 利用 Oracle Application Express 3.0 中的高级打印功能提供了从头创建报表布局的步骤。执行以下步骤:
| 1. |
导航到 New Features Application 页面。单击 Shared Components。

|
| 2. |
在 Reports 下,选择 Report Layouts。

|
| 3. |
单击 Create。

|
| 4. |
选择 Named Columns (RTF),然后单击 Next。

|
| 5. |
为 Layout Name 输入 reportwchart,选择前提条件中的 zip 文件中提供的 reportwchart.rtf 文件。然后单击 Create Layout。

|
| 6. |
单击 Shared Components 路径式导航栏。

|
| 7. |
在 Reports 下,选择 Report Queries。

|
| 8. |
由于多个查询报表查询与报表和图表查询之间只有几处更改,因此您可以复制一种现有的查询。单击 Copy。

|
| 9. |
为 Copy Report Query 选择 multiquery,为 Report Query Name 输入 reportwchart,然后单击 Copy。

|
| 10. |
您需要更改对图表的查询和报表布局。选择 reportwchart 报表查询。

|
| 11. |
为 Report Layout 选择 reportwchart,然后选择 Source Queries 选项卡。

|
| 12. |
第一个查询仍然与第一个报表相同。您需要更改第二个查询。单击第二个查询前面的 Edit 图标。

|
| 13. |
将该查询更改为以下代码,然后单击 Apply Changes。
select "OEHR_DEPARTMENTS"."DEPARTMENT_NAME" as "DEPARTMENT_NAME", "OEHR_EMPLOYEES"."SALARY" as "SALARY" from "OEHR_EMPLOYEES" "OEHR_EMPLOYEES", "OEHR_DEPARTMENTS" "OEHR_DEPARTMENTS" where "OEHR_DEPARTMENTS"."MANAGER_ID"="OEHR_EMPLOYEES"."EMPLOYEE_ID"

|
| 14. |
单击 Test Report。

|
| 15. |
单击 OK 打开 PDF 报表。

|
| 16. |
随即显示报表和图表。关闭窗口。

|
| 17. |
单击 Apply Changes。

|
| 18. |
选择 Application 路径式导航栏。

|
| 19. |
选择 Maintain Employee Information 报表页面。

|
| 20. |
在 Buttons 下,单击 Create 图标。

|
| 21. |
接受默认选项,然后单击 Next。

|
| 22. |
接受默认选项 Create a button in a region position,然后单击 Next。

|
| 23. |
为 Name 输入 Salary by Department ,为 Action 选择 Download Printable Report Query,然后单击 Next。

|
| 24. |
接受默认选项,然后单击 Next。

|
| 25. |
选择 [Top],然后单击 Next。

|
| 26. |
为 Report Query 选择 reportwchart,然后单击 Create Button。

|
| 27. |
单击 Run Page。

|
| 28. |
单击 Print Report with Chart 按钮。

|
| 29. |
单击 OK 打开 PDF 文件。

|
| 30. |
随即显示报表。

|
返回主题列表
在本教程中,您学习了如何:
 |
创建标准的 PDF 报表 |
 |
根据派生的输出格式创建 PDF 报表 |
 |
创建具有多源查询的 PDF 报表 |
 |
创建带报表和图表的 PDF 报表 |
返回主题列表
要了解有关 Application Express 的更多信息,您可以查看以下内容:
相关文档 |
说明 |
联机帮助 |
要访问该帮助,单击 Application Express 右上角处显示的 Help 按钮。搜索感兴趣的主题。 |
版本说明 |
这些说明包含 Oracle Application Express 文档中未包括的重要信息。 |
安装指南 |
该指南解释了如何安装和配置 Oracle Application Express。 |
两日以上开发人员指南 |
该指南向您介绍如何搭建一个开发环境或者访问一个与该指南一起使用的托管演示环境。然后将引导您构建一个最初的应用程序,对其进行修改并进行预览。 |
用户指南 |
该指南描述了如何使用 Oracle Application Express 开发环境构建和部署以数据库为中心的 Web 应用程序。通过使多个工作组能够构建和访问应用程序(如同它们在独立的数据库中运行),Oracle Application Express 将单个 Oracle 数据库转换为共享的服务。 |
高级教程 |
包含了分步指南的教程,介绍如何使用 Oracle Application Express 开发环境创建各种应用程序组件和整个应用程序。 |
返回主题列表
将鼠标置于该图标上可以隐藏所有的屏幕截图。
|