本博文翻译自:https://blogs.oracle.com/apex/post/oracle-reports-is-deprecated
Oracle Forms 12.2.1.4 发行说明中已明确说明,Oracle Reports自Fusion Middleware 12c第2版 (12.2.1.3.0) 起已被正式弃用。未来也没有计划进一步开发Oracle Reports。如果将来的版本可用,除了关键错误修复和使其与新的支持技术堆栈兼容所需的更改之外,Oracle不计划对Oracle Reports进行任何功能增强。欲了解更多信息,请参阅此处提供的报告方向声明。
本博文的目的是展示使用 Oracle APEX 探索Oracle Report的各种替代方案,Oracle APEX是世界上最受欢迎的企业应用程序低代码平台,使您能够构建具有世界一流功能的可扩展、安全的企业应用程序可以部署在任何地方。此外,APEX是Oracle数据库完全支持的免费功能,这意味着如果您使用Oracle数据库,则可以开始使用APEX,无需额外的许可费用。APEX提供以下报告打印配置选项:
无(本机) - 如果您不使用外部打印服务器,请选择此选项。此选项使您能够使用基本打印功能,包括CSV、HTML、PDF和XLSX。Oracle 文档生成器预构建函数 - 如果您使用Oracle文档生成器预构建函数,请选择此选项。此选项使您能够获取报告查询结果并使用Oracle Document Generator预构建功能将其从JSON转换为PDF格式。选择此选项可上传您自己的DOCX模板,以便在APEX中打印报告。Oracle BI Publisher - 此选项需要Oracle BI Publisher(也称为 Oracle XML Publisher)的有效许可证。它使您能够获取报告查询结果并使用Oracle BI Publisher将其从XML转换为RTF格式。选择此选项可上传您自己的自定义RTF或XSL-FO模板,以便在APEX中打印报告。 Oracle BI Publisher支持Adobe可移植文档格式 (PDF)、Microsoft Word 富文本格式 (RTF)、Microsoft Excel 格式 (XLS) 或可扩展标记语言 (XML)。如果您选择使用其他第三方渲染引擎,还可以配置其他输出格式。APEX Office Print - 如果您使用 APEX Office Print,请选择此选项。此选项使您能够获取报告查询结果并使用APEX Office Print将其从JSON转换为PDF/MS Office格式。选择此选项可上传您自己的MS Office模板,以便在APEX中打印报告。Apache FOP - 如果您在外部 J2EE 服务器上使用 Apache FOP,请选择此选项。此选项使您能够使用基本打印功能,其中包括使用 APEX 中提供的默认模板以及使用您自己的自定义 XSL-FO 模板创建报告查询和打印报告区域。话虽如此,说到Report,您可以找到两种类型的Report:
带有列标题和数据的简单纯Report。在 Oracle Report中也称为“表格”、“上方组”、“矩阵”。 像素完美的定义Report。在Oracle Report中也称为表格、套用信函。 让我们使用示例Oracle Reports查询来查看APEX中的每种类型的报告,该查询可在 使用Reports Builder手动创建报告 教程中找到:1 2 3 4 5 6 7 8 SELECT ALL DEPARTMENTS.DEPARTMENT_NAME, EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, EMPLOYEES.SALARY, LOCATIONS.CITY, COUNTRIES.COUNTRY_NAME, EMPLOYEES.HIRE_DATEFROM OEHR_EMPLOYEES EMPLOYEES, OEHR_DEPARTMENTS DEPARTMENTS, OEHR_LOCATIONS LOCATIONS, OEHR_COUNTRIES COUNTRIESWHERE EMPLOYEES.HIRE_DATE > to_date('01-01-2000' ,'dd-mm-yyyy' )AND ((EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID)AND (DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID)AND (DEPARTMENTS.LOCATION_ID= LOCATIONS.LOCATION_ID)AND (LOCATIONS.COUNTRY_ID= COUNTRIES.COUNTRY_ID))ORDER BY DEPARTMENTS.DEPARTMENT_NAME ASC
简单明了的报告 Oracle APEX具有多个组件,可帮助您根据需要显示数据:
对于表格报告,您可以使用分面搜索/智能过滤器页面和经典报告,允许用户进一步过滤数据、显示图表和下载数据。只需使用向导即可为您的 APEX 应用程序创建页面:
生成报告有两种方法:
下载:您可以在经典报告区域中启用此选项,允许用户将报告内容下载到CSV文件。 打印:您还可以在经典报告区域中启用此选项,该选项允许您选择报告输出格式(PDF、Word、Excel、HTML 和 XML)和报告布局。 将报表布局与报表区域或报表查询结合使用,以远程打印服务器支持的打印机友好格式呈现数据。根据远程打印服务器的类型,可以使用以下方式设计报告布局:
Template Builder Word插件并作为RTF或XSL-FO类型的文件上传。 使用特殊模板语法的Word文档。 对于远程打印服务器,您可以选择 Oracle Analytics Publisher 、文档生成器 功能或 APEX Office Print 。其中任何一个都允许您使用 自定义报告布局 下载数据。
对于“Group Below”报表,您可以使用“交互式报表”或“交互式网格”。使用向导创建页面,然后运行该页面来自定义报告以满足您的要求:
如果您的页面上没有报告区域,您仍然可以通过在APEX页面上创建进程来使用APEX_DATA_EXPORT API导出数据,例如:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 declare l_highlights apex_data_export.t_highlights; l_context apex_exec.t_context; l_export apex_data_export.t_export; l_print_config apex_data_export.t_print_config; begin l_context := apex_exec.open_query_context( p_location => apex_exec.c_location_local_db, p_sql_query => 'SELECT ALL DEPARTMENTS.DEPARTMENT_NAME "Department Name", EMPLOYEES.FIRST_NAME "First Name", EMPLOYEES.LAST_NAME "Last Name", EMPLOYEES.SALARY "Salary", LOCATIONS.CITY "City", COUNTRIES.COUNTRY_NAME "Country Name", EMPLOYEES.HIRE_DATE "Hire Date" FROM OEHR_EMPLOYEES EMPLOYEES, OEHR_DEPARTMENTS DEPARTMENTS, OEHR_LOCATIONS LOCATIONS, OEHR_COUNTRIES COUNTRIES WHERE EMPLOYEES.HIRE_DATE > to_date(''01-01-2000'',''dd-mm-yyyy'') AND ((EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID) AND (DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID) AND (DEPARTMENTS.LOCATION_ID= LOCATIONS.LOCATION_ID) AND (LOCATIONS.COUNTRY_ID=COUNTRIES.COUNTRY_ID)) ORDER BY DEPARTMENTS.DEPARTMENT_NAME ASC' ); l_print_config := apex_data_export.get_print_config( p_body_font_color => '#4B4540', p_page_header => 'Report of Employees', p_page_header_font_color => '#4B4540', p_page_header_font_size => 14, p_page_header_font_weight => apex_data_export.c_font_weight_bold, p_page_footer => 'Your Company', p_page_footer_font_color => '#4B4540', p_page_footer_font_size => 14, p_page_footer_font_weight => apex_data_export.c_font_weight_bold, p_border_width => 1, p_border_color => '#4B4540'); l_export := apex_data_export.export ( p_context => l_context, p_format => apex_data_export.c_format_pdf, p_print_config => l_print_config ); apex_exec.close( l_context ); apex_data_export.download( p_export => l_export ); exception when others then apex_exec.close( l_context ); raise; end;
要了解有关如何使用API的更多信息,请阅读探索 Oracle APEX 的报表打印 。
像素完美的报告 本博客文章开头提到的发行说明指出,Oracle建议出于报告目的迁移到Oracle BI Publisher。让我们回顾一下您可能拥有的像素完美报告的替代方案:
Oracle分析发布者 要使用 APEX 应用程序配置Oracle Analytics,请执行以下步骤:
将云端或本地的Oracle Analytics 实例配置为 APEX 工作区上的打印服务器。 创建报告布局。可以使用MS Word的Oracle BI Publisher插件创建布局,该插件通过提供简单的拖放界面使报表布局设计变得容易。 创建您的报告查询。 从您的页面调用您的报告。 文档生成器预建功能 :最近推出的功能,可根据JSON数据和MS Word模板的组合生成PDF文档。在APEX 24.1 中,您现在可以通过将文档生成器服务配置为远程打印服务器来轻松集成它。您可以在Word文档中开发打印模板,PDF引擎将其与您的应用程序数据相结合以呈现最终输出。了解更多:使用Oracle APEX和OCI文档生成器无缝生成 PDF
APEX Office Print (AOP) :灵活的引擎,使Oracle APEX能够生成PDF、Word、Excel、PowerPoint和 HTML 文档。此外,您还可以使用 APEX Office Edit (AOE) ,它允许您直接在APEX应用程序中创建和编辑文档。了解更多: https://www.apexofficeprint.com/docs/category/getting-started
JasperReportsIntegration 提供了一个在Oracle数据库应用程序(特别是 Oracle APEX)中使用 JasperReports报告引擎的接口。了解更多: https://github.com/daust/JasperReportsIntegration/blob/main/src/doc/github/installation-quickstart.md
结论 Oracle APEX是一个完整的企业应用程序平台,无论您是使用APEX对Forms应用程序进行现代化改造,还是在云或本地从头开始创建应用程序,它都能满足您的业务需求。在 apex.oracle.com 上免费尝试和探索APEX。