2017-04-20 49 views
0

我从存储过程发送HTML邮件给send_email功能。 HTML内容作为模板存储在表格中,动态值被传递到呈现显示的表格。 所有这一切都是从SMTP打开连接的存储过程完成的。在HTML中添加条件

这是如何在存储过程中形成主体。

SELECT REGEXP_REPLACE(
       REGEXP_REPLACE(
       REGEXP_REPLACE(
       REGEXP_REPLACE(
       REGEXP_REPLACE( 
       REGEXP_REPLACE(body, '<DUE_DAYS> business days',v_past_due)         
            , '<COMPANY_ADDRESS>', p_email(indx).address||'<BR/>' 
                 ||p_email(indx).city||', ' 
                 ||p_email(indx).state||' ' 
                 ||p_email(indx).zip)         
            , '<TAX_PIN>', TO_CHAR(p_email(indx).tax_pin,'$9G999G999G990D00')) 
            , '<TAX_AMT>', TO_CHAR(p_email(indx).tax_amt,'$9G999G999G990D00')) 
            , '<TAX_AMT_PEN>', TO_CHAR(p_email(indx).tax_amt_pen,'$9G999G999G990D00')) 
            , '<DUE_DATE>' , due_date) 
      INTO v_body 
      FROM pmail_txt 
      WHERE status = 'DUE_SEND'; 

在pmail_txt的HTML内容状态=“DUE_SEND”看起来像这样,

<TABLE BORDER="0" WIDTH="75%;"><TBODY> 
<TR><TD WIDTH="40%">Overall Due Days:</TD><TD WIDTH="60%"><v_past_due></TD></TR> 
<TR><TD WIDTH="40%">Company Address:</TD><TD WIDTH="60%"><COMPANY_ADDRESS></TD></TR> 
<TR><TD WIDTH="40%">Pin Number:</TD><TD WIDTH="60%"><TAX_PIN></TD></TR> 
<TR><TD WIDTH="40%">Amount Due:</TD><TD WIDTH="60%"><TAX_AMT></TD></TR><TR> 
<TD WIDTH="40%">Ex Amount Due:</TD><TD WIDTH="60%"><EIND_AMT></TD></TR> 
<TR><TD WIDTH="40%"><STRONG>Pendign Amount Due</STRONG>:</TD><TD WIDTH="60%"><STRONG><TAX_AMT_PEN></STRONG></TD></TR> 
<TR><TD WIDTH="40%"><STRONG>Due DATE</STRONG>:</TD><TD WIDTH ="60%"><STRONG><DUE_DATE></STRONG></TD></TR> 
</TBODY> 
</TABLE> 

我想加入到HTML的条件,这样当值为null不显示领域在电子邮件正文中。

我按照以下注释更改了代码。我得到它的工作不空字段,但为空字段/空消息的身体根本不出现。有人能告诉我我哪里出错了吗?

<style> 
.hidden_v_past_due { 
display:none; 
} 
</style> 
    <TABLE BORDER="0" WIDTH="75%;"><TBODY> 
    <TR class="hidden_v_past_due<v_past_due>"><TD WIDTH="40%">Overall Due Days:</TD><TD WIDTH="60%"><v_past_due></TD></TR> 
    <TR><TD WIDTH="40%">Company Address:</TD><TD WIDTH="60%"><COMPANY_ADDRESS></TD></TR> 
    <TR><TD WIDTH="40%">Pin Number:</TD><TD WIDTH="60%"><TAX_PIN></TD></TR> 
    <TR><TD WIDTH="40%">Amount Due:</TD><TD WIDTH="60%"><TAX_AMT></TD></TR><TR> 
    <TR><TD WIDTH="40%">Ex Amount Due:</TD><TD WIDTH="60%"><EIND_AMT></TD></TR> 
    <TR><TD WIDTH="40%"><STRONG>Pendign Amount Due</STRONG>:</TD><TD WIDTH="60%"><STRONG><TAX_AMT_PEN></STRONG></TD></TR> 
    <TR><TD WIDTH="40%"><STRONG>Due DATE</STRONG>:</TD><TD WIDTH ="60%"><STRONG><DUE_DATE></STRONG></TD></TR> 
    </TBODY> 
    </TABLE> 

也试过scriplet像下面

<TABLE BORDER="0" WIDTH="75%;"><TBODY> 
<%if(v_past_due != null){%> 
<TR><TD WIDTH="40%">Overall Due Days:</TD><TD WIDTH="60%"><v_past_due></TD></TR><%}%> 
<TR><TD WIDTH="40%">Company Address:</TD><TD WIDTH="60%"><COMPANY_ADDRESS></TD></TR> 
<TR><TD WIDTH="40%">Pin Number:</TD><TD WIDTH="60%"><TAX_PIN></TD></TR> 
<TR><TD WIDTH="40%">Amount Due:</TD><TD WIDTH="60%"><TAX_AMT></TD></TR><TR> 
<TR><TD WIDTH="40%">Ex Amount Due:</TD><TD WIDTH="60%"><EIND_AMT></TD></TR> 
<TR><TD WIDTH="40%"><STRONG>Pendign Amount Due</STRONG>:</TD><TD WIDTH="60%"><STRONG><TAX_AMT_PEN></STRONG></TD></TR> 
<TR><TD WIDTH="40%"><STRONG>Due DATE</STRONG>:</TD><TD WIDTH ="60%"><STRONG><DUE_DATE></STRONG></TD></TR> 
</TBODY> 
</TABLE> 

尝试下列选项中过于

<%if(<v_past_due>){%>....///......<%}%> 
<%if(v_past_due != null){%>....///......<%}%> 

所有这些工作!空条件和家居零失败。

回答

1

您可以尝试向元素添加类属性,例如相应的字段值为null时,生成的类名将隐藏该元素。例如。

<style> 
.hidde_v_past_due { 
display:none; 
} 
</style> 
... 
<TR class="hidde_v_past_due<v_past_due>"><TD WIDTH="40%">Overall Due Days:</TD><TD WIDTH="60%"><v_past_due></TD></TR> 

这样,当v_past_due为空,那么类的名称将匹配一个在款式和你的TR将不显示。

+0

感谢您的回复。但是你在哪里添加这些脚本?在数据库中?它会允许吗?你仍然需要检查空的条件是否正确。 – JNPW

+0

将其包含在HTML内容中,作为模板的一部分。您不需要检查空值条件,因为如果您的值为空,则生成的HTML将受到样式规则的影响。检查这个例子https://jsfiddle.net/tzyctfvj/ –

+0

看起来像样式工作,因为我没有看到特定的领域,但它隐藏的所有条件,这意味着它不适用于null条件。这是我加入 ”> Pendign到期金额的代码: JNPW