¡¡
应用于:
Oracle Reports Developer - Version: 9.0.4.0 to 10.1.2.0.0 - Release: Oracle9i to 10gr2
Oracle Forms - Version: 9.0 to 10.1.2.0.2 [Release: 9 to Oracle10g]
Information in this document applies to any platform.
Checked for relevance on 20-Jan-2009
目的
使用Run_Report_Object、参数列表、web.show_document还有包含在窗口或网页中的对象、发送方、接收方、CC、Bcc等信息发送邮件。
假设服务器已经确认按照一个邮件服务器的配置文件使用它
例如:
<pluginParam name="mailServer">mail.oracle.com</pluginParam>
实现方法:
一、下面创建一个简单的窗口例子来提供一个实体以便能够用来发送邮件
(1)创建实体包括:发送方、接收方、发送对象、协议、端口
例如:Block name :email
field names: To, From, CC, BCC, Subject, reportserver
(2)创建另一个窗体包含:控制按钮和步骤(1)创建的实体
例如:
Send email via run_report_object
Send email via web.show_document.
二、创建控制按钮
(1)创建两个按钮:‘发送’按钮、‘收件箱’按钮
(2)创建在窗体中能被看见的报告代码:Note 207396.1 How to Run Reports From Forms 9i / 10g Using RUN_REPORT_OBJECT?:
(3)创建按钮下按的触发器
三、触发器代码的实现
(1)发送按钮:
declare
v_rep varchar2(1000):='a';
v_rep_status varchar2(1000):='a';
v_url varchar2(1000):='';
--v_rep_server varchar2(1000):='';
repid REPORT_OBJECT;
thelist paramlist;
begin
thelist := get_parameter_list('rep_paramlist');
if not id_null(thelist) then
destroy_parameter_list(thelist);
end if;
thelist := CREATE_PARAMETER_LIST('rep_paramlist');
ADD_PARAMETER(thelist, 'FROM',TEXT_PARAMETER, :email.from);
ADD_PARAMETER(thelist, 'BCC',TEXT_PARAMETER, :email.bcc);
ADD_PARAMETER(thelist, 'CC',TEXT_PARAMETER, :email.cc);
ADD_PARAMETER(thelist, 'SUBJECT',TEXT_PARAMETER, :email.subject);
repid := find_report_object('REPORT30');
set_report_object_property(repid,REPORT_SERVER,:email.repserver);
--v_rep_server := get_report_object_property(repid,report_server);
set_report_object_property(repid,REPORT_DESTYPE,MAIL);
set_report_object_property(repid,REPORT_DESFORMAT,'html');
set_report_object_property(repid,REPORT_DESNAME,:email.too);
v_rep:=run_report_object(repid,thelist);
end;
(2)发件箱按钮:
该触发器可直接调用报告服务而不通过run_report_object
declare
vc_url varchar2(1000):='a';
begin
vc_url:=('/reports/rwservlet?server='||:email.repserver||'&report=test.rdf&destype=mail&desformat=html&desname='||:email.too||'&from='||:email.from||'&subject='||:email.subject||'&cc='||:email.cc||'&bcc='||:email.bcc);
web.show_document(vc_url,'_blank');
end;