【问题标题】:Oracle APEX export PDF file nameOracle APEX 导出 PDF 文件名
【发布时间】:2023-04-09 15:17:01
【问题描述】:

我正在使用共享组件中定义的报告查询从 Oracle APEX 导出 PDF 报告。默认情况下,生成的 PDF 的文件名是报告查询名称。有没有办法自定义名称?我需要在其中包含一个时间戳,但是我找不到任何解决方案。我没有使用任何外部工具来生成报告,并且布局是在 XSL-FO 中定义的。 感谢您的帮助。

【问题讨论】:

    标签: oracle pdf oracle-apex oracle-apex-5


    【解决方案1】:

    创建一个 PL/SQL 进程并使用以下 API:

    APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
            p_file_name           => 'myreport123',
            p_content_disposition => 'attachment',
            p_application_id      => :APP_ID,
            p_report_query_name   => 'report1',
            p_report_layout_name  => 'report1',
            p_report_layout_type  => 'rtf',
            p_document_format     => 'pdf');
    

    以上代码假设您的报告查询名称和报告布局名称为report1

    请注意,您可以将 p_file_name 更改为您喜欢的任何内容。

    【讨论】:

    • 感谢您的回复。我试图这样做:创建一个依赖于按钮单击的动态操作,并在其真正的“分支”上我将代码放在上面,但没有任何反应。如果我将相同的代码直接放在服务器端条件的动态操作中(我知道,这在逻辑上是错误的,但我想测试代码)然后它会下载一个损坏的 pdf 文件。上面的代码是否足以启动 pdf 下载,或者它更像是一个函数 prtotype,我需要以另一种方式调用它?
    • 好的,所以动态操作似乎不正确。所以现在我正在从一个新页面执行 pl/sql,在提交页面后由按钮激活。它会生成一个不工作的pdf。为什么?
    【解决方案2】:

    如果您使用的是 XSLT 2.0 或 XSLT 3.0,您可以使用 currentDateTime() 获取当前时间(不是源文档的修改时间)。见https://www.w3.org/TR/xpath-functions/#func-current-dateTime

    如果您仍在使用 XSLT 1.0,您的 XSLT 处理器可能会为日期和时间实现 EXSLT 扩展。见http://exslt.org/date/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多