我正在使用在共享组件中定义的报表查询从Oracle APEX导出一个PDF报表。默认情况下,生成的PDF的文件名是报表查询的名称。有没有办法自定义这个名称?我需要在其中包含一个时间戳,但是我找不到任何解决方案。我没有使用任何外部工具来生成报表,布局是在XSL-FO中定义的。
创建一个PLSQL进程并使用以下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');
上面的代码假设你的报表查询名称和报表布局名称是: 报告1
注意,你可以把p_file_name改成任何你喜欢的名字。
如果你使用的是XSLT 2.0或XSLT 3.0,你可以使用以下方法获得当前时间(而不是源文件的修改时间)。currentDateTime()
. 见 https:/www.w3.orgTRxpath-functions#func-current-dateTime
如果你还在使用XSLT 1.0,你的XSLT处理器可能会实现日期和时间的EXSLT扩展。 请看 http:/exslt.orgdateindex.html