zoukankan      html  css  js  c++  java
  • APEX-数据导出/打印 学习

    前言:

     由于公司使用了Oracle APEX构建应用,且在APEX新版本v20.2版本中增强了相关报表导出数据相关功能;正好现在做的事情也需要类似的功能,就先来学习一下Oracle的APEX相关功能及实现方式;为自己优化实现相关功能做些积累吧。

     先简单介绍下APEX是什么?

    APEX是什么:

     APEX:Oracle Application Express (APEX) 是低代码开发平台。借助该平台,您可以构建功能先进的可扩展安全企业应用,并且可在任何位置部署应用。

     使用 APEX,开发人员可快速开发并部署出色的应用,从而解决实际问题并立即创造价值。您无需精通各种技术,就可以提供高级解决方案。您只需集中精力解决业务问题,其他工作都可以交给 Oracle APEX 来处理。

     v20.2版本导出数据优化点:

    • 内置PDF打印和Excel下载,用于交互式报告,交互式网格和经典报告。确保在您的区域属性中启用PDF和Excel作为其他下载格式。用户可以在下载对话框中更改页面方向和大小。
    • 交互式报告-发送电子邮件:现在可以附加所有下载格式。
    • 与BI Publisher的增强集成。
    • 新的APEX_REGION.EXPORT_DATAAPEX_DATA_EXPORT API,以编程方式生成PDF,CSV,Excel,HTML,JSON和XML文件。
    • 内置PDF现在支持中文,日文和韩文。

     如需要使用可在以下的地址申请工作区:

     申请免费工作区地址:

      https://apex.oracle.com/pls/apex/f?p=4700:2:10115035671324:::RP::

    APEX中导出数据实现:

     一、普通表导出、打印实现

    • 示例数据导入:

       进入:SQL工作室->实用程序->示例数据集->【EMP/DEPT】数据安装

    • 创建应用:

       进入:应用程序构建器->创建->新建应用程序->创建应用程序;创建完成如下图

       

    • 页面设计:

       进入应用程序:进入主页设计:添加经典报表元素->绑定数据表->支持导出和打印功能->进行打印设置:打印成Excel

        

     

    • 运行效果

       运行效果如下,点击导出时导出该表csv文件内容;打印时输出该表对于html内容

         

     二、交互式报表导出、打印

    • 设计页面:在页面中添加交互式报表->并绑定数据表

        

    • 预览执行效果:操作->下载->选择下载格式

     

      三、调用APEX提供API实现:

       在上面示例中添加按钮调用:Export_Data接口实现数据导出

        

         

        执行代码为以下内容:    

    DECLARE
        l_export       apex_data_export.t_export;
        l_region_id    number;
    BEGIN
    
       SELECT region_id into l_region_id
         FROM apex_application_page_regions
        WHERE application_id = 36324--(应用程序ID)
          and page_id = 1--(页码id)
          and static_id = 'EXRep'--(区域静态id-交互式报表需指定该id);
        
        l_export := apex_region.export_data (
             p_format       => apex_data_export.c_format_html,
             p_page_id      => 1,
             p_region_id    => l_region_id );
             
        apex_data_export.download( l_export );
    END;

       修改页面提交重新加载:

         

       运行效果:

        

    • 13 APEX_DATA_EXPORT(重点)APEX_DATA_EXPORT包含用于从Oracle Application Express导出数据的实现支持的文件类型包括:PDF,XLSX,HTML,CSV,XML和JSON。

       本次使用API服务来测试该接口功能:SQL工作室->RESTful服务->模块->创建模块(export)    

         创建模板和处理方法:

         

        添加执行脚本:

    DECLARE
        l_context apex_exec.t_context; 
        l_export  apex_data_export.t_export;
    BEGIN
    
        apex_session.create_session (
        p_app_id   => 36324,
        p_page_id  => 1,
        p_username => 'EXAMPLE USER' );
    
        l_context := apex_exec.open_query_context(
            p_location    => apex_exec.c_location_local_db,
            p_sql_query   => 'select * from emp' );
    
        l_export := apex_data_export.export (
                            p_context   => l_context,
                            p_format    => apex_data_export.c_format_pdf );
    
        apex_exec.close( l_context );
    
        apex_data_export.download( p_export => l_export );
    
    EXCEPTION
        when others THEN
            apex_exec.close( l_context );
            raise;
    END;

        导出接口方法参数说明:

    参数描述
    p_context 来自EXEC基础结构的上下文对象。
    p_format 导出格式。有效值为:XLSX,PDF,HTML,CSV,XML和JSON。
    p_as_clob 导出为CLOB而不是BLOB(默认为FALSE)。
    p_columns 以分列符开始的列属性集合,然后按显示顺序。
    p_column_groups 按级别和显示顺序收集列组属性。
    p_aggregates 报告汇总的集合。
    p_highlights 收集报告要点。
    p_file_name 定义导出的文件名。
    p_print_config 用于EXCEL和PDF设置打印属性。
    p_page_header 文本显示在文档的标题部分。覆盖的页面标题p_print_config
    p_page_footer 文本显示在文档的页脚部分。覆盖的页面页脚p_print_config
    p_supplemental_text 所有下载格式顶部的文本。
    p_csv_enclosed_by 用于CSV以封装输出。
    p_csv_separator 用于CSV以分隔列值。
    p_pdf_accessible 用于PDF以创建可访问的PDF。
    p_xml_include_declaration 用于XML以生成XML声明作为第一行。

    总结:

     通过简单使用感觉APEX功能比较完善,能快速的构建出业务应用;导出接口功能比较完善,支持灵活。

     对于自己实现相关导出功能有参考价值。 

    参考资料:

     https://blogs.oracle.com/apex/exploring-report-printing-in-apex-202

     https://docs.oracle.com/en/database/oracle/application-express/20.2/aeapi/APEX_DATA_EXPORT-EXPORT-Function.html#GUID-6109A537-50C4-4FB2-8414-7A554B19EC8E

  • 相关阅读:
    SSM中 web.xml配置文件
    实现网站的登陆,注册,查看商品详细信息,加入购物车,注销登陆等简单功能。
    操作步骤
    mysql 查询 练习题及答案
    水仙花数!
    Spark SQL(4)-Unresolved Plan到Analyzed Plan
    Spark SQL(3) Parser到Unresolved LogicPlan
    Spark SQL(2)-InternalRow和TreeNode
    Spark SQL(1)-简述
    logstash output到kafka记录与总结( No entry found for connection 2)
  • 原文地址:https://www.cnblogs.com/cwsheng/p/14164831.html
Copyright © 2011-2022 走看看