ストアドプロシージャからsend_email機能にHTMLメッセージを送信しています。 HTMLコンテンツはテンプレートとしてテーブルに格納され、動的値はこのテーブルに渡されて表示されます。 これは、SMTPオープン接続を呼び出すストアドプロシージャから実行されます。HTML内に条件を追加する
これは、本体がストアドプロシージャ内でどのように形成されるかを示します。ステータス=「DUE_SEND」のpmail_txt内の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';
、
<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>
私は条件は値がnullの場合にフィールドを表示しないようにHTMLに追加することにしたいですメール本文に
以下のコメントごとにコードを変更しました。私はそれが空のフィールドのためのヌルフィールドのために働く/メッセージのヌルボディは全く表示されません。誰かが私がどこに間違っていたか教えてくれますか
<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>
はまた
<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){%>....///......<%}%>
あまりにもオプションの下にこれらのすべての作業を試してみましたが、すべてがヌルのために失敗し、以下のようなスクリプトレットを試してみました。
返信いただきありがとうございます。しかし、これらのスクリプトはどこに追加しますか? DBに?それは許されるだろうか?それでもヌル状態を確認する必要があります。 – JNPW
テンプレートの一部としてHTMLコンテンツに含めます。値が空の場合、結果のHTMLはスタイルルールの影響を受けるため、null条件をチェックする必要はありません。この例を確認してくださいhttps://jsfiddle.net/tzyctfvj/ –
特定のフィールドは表示されませんが、すべての条件で非表示になっているため、ヌル状態では機能しません。理解の助け