从Oracle APEX触发电子邮件时隐藏具有NULL值的项目

时间:2017-03-10 10:47:28

标签: oracle-apex

我正在使用APEX 5.0开发应用程序

点击按钮时会触发电子邮件。很少有项目具有空值但仍然出现在电子邮件中,因为我已将它们链接起来。如何在从Oracle APEX触发电子邮件时隐藏具有NULL值的项目。谢谢

1 个答案:

答案 0 :(得分:0)

根据您的要求使用PLSQL格式化电子邮件正文,然后将其设置为页面项,然后可以使用替换字符串在电子邮件处理中引用该页面项。

根据您的评论,您似乎在提交流程中使用 PL / SQL代码流程类型而非发送电子邮件流程类型。

假设您有3个页面项可能具有NULL值。以下列方式修改代码,以显示正文中具有值的项目。

DECLARE
  L_BODY   VARCHAR2(32767);
  L_FOOTER VARCHAR2(32767);
  FUNCTION FORMAT_TEXT(
      P_INPUT    IN VARCHAR2,
      P_TEMPLATE IN VARCHAR2)
    RETURN VARCHAR2
  IS
  BEGIN
    IF P_INPUT IS NOT NULL THEN
      RETURN P_TEMPLATE;
    ELSE
      RETURN NULL;
    END IF;
  END FORMAT_TEXT;
BEGIN
  L_BODY   := '<html> Here I give the HTML Code For Example <p>';
  L_BODY   := L_BODY || FORMAT_TEXT(:P1_ITEM, 'My Text 1: ' || :P1_ITEM || '<br>');
  L_BODY   := L_BODY || FORMAT_TEXT(:P2_ITEM, 'My Text 2: ' || :P2_ITEM || '<br>');
  L_BODY   := L_BODY || FORMAT_TEXT(:P3_ITEM, 'My Text 3: ' || :P3_ITEM || '<br>');
  L_BODY   := L_BODY || '</p> </html>';
  L_FOOTER := '</br></br> Go to Link <a href="URL">link</a>';
  APEX_MAIL.SEND(P_TO => '' || :P1_ITEM || ',' || 'abc@abc.com', P_FROM => 'abc.abc@abc.com', P_BODY => L_BODY || L_FOOTER, P_BODY_HTML=> L_BODY || L_FOOTER, P_SUBJ => 'Text ' || :P1_ITEM || ' ] ');
END;