السبت، 10 أغسطس 2019

Create Custom PDF Report in Oracle Apex using BIRT

Create Custom PDF Report in Oracle Apex using BIRT

1. Download Birt Designer from Here Or any version you like


2. Download Birt Run-time from here Or any version you like

3. start design you report Emp_1 in Birt Designer

3.1. Create Data source
oracle.jdbc.OracleDriver (v10.2)
jdbc:oracle:thin:@localhost:1521:xe








3.2. Create your Data set
will contain you sql Query 




select * from  EMP

3.3. start Design You Report
3.4 Save You Report

4. Copy Birt Rn-time folder to tomcat setup source
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webappsyo

5- Copy you report Emp_1 that you Created before to
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\birt

6- don't forgit to copy your ojdbc file to
C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

7- in Oracle Apex App
create Button and make BehaviorRedirect to URL
and use this 
http://localhost:8080/Birt/run?__report=Emp_1.rptdesign&__format=pdf

where Emp_1 is your report Name


8- run your Page in Oracle Apex and Press You Button you will get


9- Finally Our Arabic Video

  


Thanks 

الخميس، 8 أغسطس 2019

Chart Using PL/SQL Dynamic Content

How to Create Chart Using PL/SQL Dynamic Content


1: first Create Region with PL/SQL Dynamic Content Type

2: Add this Code

declare
    l_cnt              integer := 0;
    max_bars           integer := 16;
    l_total_bars       integer := 0;
    l_start            integer := 1;
    l_display_cnt      integer := 0;
    l_max_bar_sz       number  := 0;
    l_numeric_title    varchar2(255) := 'Customer Categories';
begin

-- determine how many bars exist
    for c1 in (
    select count(*) c
    from (
       select to_char(CREATED,'YYYY.MM') m
       from EBA_CUST_CATEGORIES t
       where IS_ACTIVE = 'Y'
       group by to_char(CREATED,'YYYY.MM')
       )
)
  loop
        l_total_bars := c1.c;
    end loop;

    -- calculate how many to show
    l_start := l_total_bars - max_bars;
    l_start := greatest(l_start,1);

    if l_total_bars > 0 then
        sys.htp.prn('<ul class="barGraph">');
        sys.htp.prn('<li class="barHeaders">');
        sys.htp.prn('<label><span></span></label>');
        sys.htp.prn('<big></big>');
        sys.htp.prn('<span class="noBorder"><strong>'||sys.htf.escape_sc(l_numeric_title)||'</strong></span>');
        sys.htp.prn('</li>');

        -- figure out maximum size of a bar within the window of displayed bars
        l_cnt := 0;
        l_max_bar_sz := 0;
        for c1 in 
          ( select to_char(CREATED,'YYYY.MON') m ,count(*) s
  from EBA_CUST_CATEGORIES t
       where IS_ACTIVE = 'Y'
            group by to_char(CREATED,'YYYY.MON')
           )
        loop
            l_cnt := l_cnt+1;

            if l_cnt >= l_start then
               if c1.s > l_max_bar_sz 
               then
                  l_max_bar_sz := c1.s;
               end if;
            end if;
        end loop;

        -- display chart
        l_cnt := 0;
        for c1 in 
          ( select to_char(CREATED,'YYYY.MON') m , count(*) c
            from EBA_CUST_CATEGORIES t
            where IS_ACTIVE = 'Y'
            group by to_char(CREATED,'YYYY.MON')
            order by 1
          )
        loop
        l_cnt := l_cnt+1;

        if l_cnt >= l_start then
            l_display_cnt := l_display_cnt + 1;
            sys.htp.prn('<li>');
            sys.htp.prn('<label><span>'||substr(c1.m,1,4)||'</span> '||substr(c1.m,6)||'</label>');
            sys.htp.prn('<big><small style="height: '||to_char(round((c1.c/l_max_bar_sz)*100))||'%"></small></big>');
            sys.htp.prn('<span class="noBorder">'||trim(to_char(c1.c,'999G999G999G999G999G990'))||'</span>');
            sys.htp.prn('</li>');
        end if;

        if l_display_cnt > max_bars then
            exit;
        end if;

        end loop;
        sys.htp.prn('</ul>');
    end if;


htp.p(' 
<style>
ul.barGraph
      {
      margin:12px !important;
      list-style:none;
      white-space:nowrap
      }
ul.barGraph li
      {
      display:inline-block;
      width:48px
      }
ul.barGraph li:hover big small
      {
      background-color:#4A6D98
      }
ul.barGraph li.barHeaders
      {
      width:128px
      }
ul.barGraph li.barHeaders > span
      {
      text-align:left
      }
ul.barGraph li > label{
      display:block;
      font:normal 11px/12px Arial,sans-serif;
      color:#444;
      text-align:center
      }
ul.barGraph li > label span
      {
      display:block;
      font:normal 11px/12px Arial,sans-serif;
      color:#767676
      }
ul.barGraph li > big
      {
      height:120px;
      margin:8px;
      position:relative;
      display:block
      }
ul.barGraph li > big > small
      {
      display:block;
      position:absolute;
      bottom:0;
      width:30px;
      -moz-border-radius:4px;
      -webkit-border-radius:4px;
      border-radius:4px;
      background-color:#6A9CDA;
      -moz-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;
      -webkit-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;
      box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;
      border:1px solid #4A6D98
      }
ul.barGraph li > span
      {
      display:block;
      text-align:center;
      font:normal 11px/16px Arial,sans-serif;
      color:#444;
      border-top:1px solid #F0F0F0;
      padding:8px
      }
ul.barGraph li > span.noBorder
      {
      border-top:none;
      padding-top:0
      }
ul.barGraph li > span a
      {
      color:##405580
      }
</style>
');
end;

---

Demo
Sample App
user:demo
Pass:demo1234

الثلاثاء، 6 أغسطس 2019

How to Support me in patreon

                                                  ليه تدعمنا
م / على صالح خلف الله
senior Oracle Apex Developer
Support in patreon
دعمك للمحتوى هيساعدنى اكمل فى الفيديوهات بمعدل أكثر
مما يثري المحتوى العربي للتقنيه
ونساعد كل الناس الجديده فى المجال انها تلاقى البدايه
-----
شكرا

hide column in classic report [Card Template] Using Custom Template and CSS




you can hide column in classic report in stranded template
by 2 ways
by condition
like
Rows returned
select 1 from dual where 1=2or by using
Authorization Scheme to column
but if You try to make the same for some other template like CARD Template
this will not work
so that you can flow this steps
1 : Copy card template
2: edit the new card template and one substituting  #CARD_STATUS#
<li class="t-Cards-item #CARD_MODIFIERS#">
#CARD_INITIALS#

#CARD_TITLE#

#CARD_TEXT#
#CARD_STATUS# ">#CARD_SUBTEXT#
</div>
<span class="t-Card-colorFill u-color #CARD_COLOR#"></span>
</a>
</div>
</li>
--
3: Assign the new template to your report and add case to check any condition
select
'fa-user' CARD_ICON,
ENAME CARD_TITLE,
JOB CARD_TEXT,
MGR LABEL_01,
HIREDATE CARD_SUBTEXT,
SAL COMMENT_TEXT,
CASE
when UPPER(JOB) Like Upper('SALESMAN')
then 'Status_CLASS'
else ''
end CARD_STATUS
from EMP
--
in our case when JOB = SALESMAN
we will set value for our column CARD_STATUS by  'Status_CLASS'
-----
now our template contain class Status_CLASS
only when JOB = SALESMAN
-----
4: add inline css code for our class
.Status_CLASS
{display: none;}
at the end
any raw contain [job =SALESMAN] will add  a new class for our column CARD_SUBTEXT  which will hide content

How to create Multi language Application in Oracle apex 19.1

Part 1



Part 2

Oracle Apex classic report template

How to Create lookup table in oracle Apex

oracle apex Error Handling (Arabic)

Custom Authentication in oracle apex ( Arabic)



custom Authentication  in oracle apex ( Arabic)






Print custom PDF Report Using PL/SQL Dynamic Region in Oracle Apex 19.1

Print custom PDF Report Using PL/SQL Dynamic Region in Oracle Apex 19.1



How to Solve Ords Issue : The request could not be mapped to any database.

 The request could not be mapped to any database.  Check the request URL is correct, and that URL to database mappings have been correctly c...