Sunday 23 February 2020

How to run report on PDF


Video Link : https://youtu.be/u9Ovpq2m96U


Table


CREATE TABLE  "BOARD_MEMBER" 
   ( "ID" NUMBER(4,0), 
 "NAME" VARCHAR2(50), 
 "DESIGNATION" VARCHAR2(50), 
 "IMAGE" BLOB, 
 "DESCRIPTION" VARCHAR2(200), 
 "FB_LINK" VARCHAR2(100), 
 "TWITTER_LINK" VARCHAR2(100), 
 "LINKEDIN" VARCHAR2(100), 
 "GMAIL_LINK" VARCHAR2(100)
   ) ;
 


JavaScript

<script type="text/javascript">
        function Export() {
            html2canvas(document.getElementById("PDF"), {
                onrendered: function (canvas) {
                    var data = canvas.toDataURL();
                    var docDefinition = {
                        content: [{
                            image: data,
                            width: 500
                        }]
                    };
                    pdfMake.createPdf(docDefinition).download("Table.pdf");
                }
            });
        }
    </script>



PL Report

--- CSS

htp.p('<style>
#PDF {
  font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

#PDF td, #PDF th {
  border: 1px solid #ddd;
  padding: 8px;
}

#PDF tr:nth-child(even){background-color: #f2f2f2;}

#PDF tr:hover {background-color: #ddd;}

#PDF th {
  padding-top: 12px;
  padding-bottom: 12px;
  text-align: left;
  background-color: #4CAF50;
  color: white;
}
</style>');

--- Table Header
htp.p('<table id="PDF">
  <tr>
    <th>SL</th>
    <th>Name</th>
    <th>Designation</th>
      <th>Description</th>
  </tr>');
  --- Query
  FOR X IN (SELECT ROWNUM SL,NAME,DESIGNATION,DESCRIPTION FROM BOARD_MEMBER)

  --- USING LOOP FOR Multiple data
  LOOP
  --- Table Data
  htp.p('<tr>
    <td>'||X.SL||'</td>
    <td>'||X.NAME||'</td>
    <td>'||X.DESIGNATION||'</td>
<td>'||X.DESCRIPTION||'</td>
  </tr>');
    end loop;
  htp.p('</table>');

--- Button
  htp.p('<input type="button" id="btnExport" value="Export" onclick="Export()" />
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.22/pdfmake.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>');



Classic Report



Static ID=PDF

Header Text

<input type="button" id="btnExport" value="Export" onclick="Export()" />
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.22/pdfmake.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>




IR Report

Static ID=PDF

Header Text

<input type="button" id="btnExport" value="Export" onclick="Export()" />
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.22/pdfmake.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>

Sunday 16 February 2020

Profile Card hover over it once

Video Link : https://youtu.be/M_6xK130_A8

Table


CREATE TABLE PROFILE(
ID NUMBER,
NAME VARCHAR2(50),
YOUTUBE_LINK VARCHAR2(100),
FACEBOOK_LINK VARCHAR2(100),
TWITTER_LINK VARCHAR2(100),
IMAGE BLOB);

Query 


select ID,
       NAME NAME,
       YOUTUBE_LINK,
       FACEBOOK_LINK,
       TWITTER_LINK,
        decode(nvl(dbms_lob.getlength(IMAGE),0),0,null,
       '<img class="fancybox" alt="'||apex_escape.html_attribute(ID)||'" title="'||apex_escape.html_attribute(ID)
              ||'" style="border: 4px solid #CCC; -moz-border-radius: 4px; -webkit-border-radius: 4px;" '
              ||'src="'||apex_util.get_blob_file_src('P17_IMAGE',ROWID)||'" height="75" width="75" />
      ') IMAGE
  from PROFILE


HTML

 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">
<div class="image-area">
<div class="img-wrapper">
#IMAGE#
<h2>#NAME#</h2>
<ul>
<li><a href=#GIT#><i class="fab fa-github"></i></a></li>
<li><a href=#INS#><i class="fab fa-instagram"></i></a></li>
<li><a href=#TWITTER_LINK#><i class="fab fa-twitter"></i></a></li>
<li><a href=#YOUTUBE_LINK#><i class="fab fa-youtube"></i></a></li>
<li><a href=#FACEBOOK_LINK#><i class="fab fa-facebook"></i></a></li>
</ul>
</div>
</div>




CSS



*

.image-area{ top: 50%; left: 50%; transform: translate(-50%, -50%); position: absolute;}
.img-wrapper{ width: 300px; height: 400px; position: relative; overflow: hidden;}
.img-wrapper:before{ content: ''; position: absolute; top: 0; left: 180%; height: 100%; width: 100%; background: rgba(255,255,255,.3); z-index: 1; transform: skew(45deg); transition: .5s;}
.img-wrapper:hover:before{ left: -180%;}
.img-wrapper img{ height: 400px; width: 300px; filter: grayscale(100%); transition: 2s;}.img-wrapper:hover img{ filter: grayscale(0%); transform: scale(1.1);}
.img-wrapper h2{ background: tomato; font-family: Poppins; color: #fff; text-align: center; text-transform: uppercase; margin: 0; padding: 10px 0; position: absolute; bottom: 0; width: 100%; transform: perspective(400px) rotateY(90deg); transform-origin: right; transition: 1s;}
.img-wrapper:hover h2{ transform: perspective(400px) rotateY(0deg);}
.img-wrapper ul{ position: absolute; top: 0; left: 0; margin: 0; padding: 0; list-style: none; background: rgba(255,255,255,0);}
.img-wrapper ul li{ background: #333; height: 40px; width: 40px; text-align: center; line-height: 40px; transform: perspective(800px) rotateY(90deg); transition: .5s; transform-origin: left;}
.img-wrapper:hover ul li{ transform: perspective(800px) rotateY(0deg);}
.img-wrapper:hover ul li:nth-child(1){ transition-delay: .2s;}
.img-wrapper:hover ul li:nth-child(2){ transition-delay: .6s;}
.img-wrapper:hover ul li:nth-child(3){ transition-delay: .8s;}
.img-wrapper:hover ul li:nth-child(4){ transition-delay: 1s;}
.img-wrapper ul li a{ color: tomato; background: rgba(255,255,255,0);}
.img-wrapper ul li i{ color: tomato; background: rgba(255,255,255,0);}
.img-wrapper ul li i:hover{ color: #fff; background: rgba(255,255,255,0);}