2017-08-20 6 views
1

私は送信する前にメールデータをフォーマットするOracle関数を持っています。関数は、頂点でのpl/sqlプロセスによって呼び出されます。しかし、私はメールのcss formatingに小さな問題があります。私は750pxに固定幅divをしたい。私のテーブルと他の要素は、この指定された幅に適合します。問題は、divの固定幅を定義するとうまくいかないことです。私はjsfiddleでそれを試して、それは動作しますが、それはOracleの機能では動作しません。他のdivパラメータをフォントサイズ、色、境界線などとして定義するとうまくいきます。しかし、私はdivの幅を変更することはできません。これは私の機能です:Oracle関数のdivの固定幅

create or replace FUNCTION "SEND_MAIL" RETURN varchar2 
    AS 
    PRAGMA AUTONOMOUS_TRANSACTION; 
    kontr_tema varchar2(500); 
    komentar varchar2(2000); 
    obl varchar2 (100); 
    riz varchar2 (1); 
    riz_warning varchar2(100); 
    last_report_id number; 
    vystup varchar2(2601); 

    begin 

    select RIZIKO into riz from AUDIT_REPORTS 
    where REPORT_ID = 
    (select max(REPORT_ID) from AUDIT_REPORTS); 

    select OBLAST into obl from AUDIT_REPORTS 
    where REPORT_ID = 
    (select max(REPORT_ID) from AUDIT_REPORTS); 

    FOR x in(select OPIS_KONTROLY from AUDIT_REPORTS 
    where REPORT_ID = 
    (select max(REPORT_ID) from AUDIT_REPORTS)) 
    loop 
    komentar := ''||x.OPIS_KONTROLY||'<br />'; 
    end loop; 

    FOR x1 in(select KONTROLNA_TEMA from AUDIT_REPORTS 
    where REPORT_ID = 
    (select max(REPORT_ID) from AUDIT_REPORTS)) 
    loop 
    kontr_tema := ''||x1.KONTROLNA_TEMA||'<br />'; 
    end loop; 



    vystup := ' 
    <html> 
    <head> 

    <style type="text/css"> 
     div{ 
      position:relative; 
      width:750px; 
      border: 1px solid black; 
      border-collapse: separate; 
     } 
     </style> 

     <style type="text/css"> 
     "table,th,td" { 
      border: 1px solid black; 
      border-collapse: separate; 
      width:100% !important; 
     } 
     </style> 

    </head>  
    <body> 

    <div> 

    <table border = "1"> 

      <tr> 
       <th>Oblasť</th> 
       <th>Riziko</th> 
       <th>Kontrolná téma</th> 
       <th>Komentár</th> 
      </tr> 

      <tr> 
       <td>'||obl||'</td> 
       <td>'||riz||'</td> 
       <td>'||kontr_tema||'</td> 
       <td>'||komentar||'</td> 
      </tr>  
    </table> 


     </div> 

    </body> 
    </html> '; 

    return vystup; 
    commit; 

    end; 
+0

幅の代わりに最小幅と最大幅(両方とも750)を設定してみてください。 – RLOG

+0

私は最大幅を設定しようとしましたが、同じ結果で – john179

答えて

1

this answerを参照してください。この問題はOracleやAPEXではなく、電子メールクライアントはCSSヘッダーを無視することが多いため、避けてインラインスタイリングを使用する必要があります。

+0

私はOutlook 2010を使用します。インラインスタイルは役に立ちません。 border、font-size、colorなどのdivの他のパラメータを指定すると動作します。 widthパラメータにのみ問題があります。 – john179

関連する問題