2017-04-20 48 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