اذهب الي المحتوي
abderrahmane82

تقرير PDF بواسطة كود html مع أوراكل أبيكس // PDF report personalized by html code with Oracle Apex

Recommended Posts

abderrahmane82

السلام عليكم و رحمة الله وبركاته
أشارك مع أعضاء منتدانا الكرام ،طريقة إعداد تقارير PDF خاصة باستعمال لغة HTML و بدون الحاجة الى برامج أخرى مثل Oracle Report أو JReport ،خاصة في البرامج الصغيرة ,
أضع لكم في المرفقات ملف التطبيق و Procedure الخاص بإنشاء التقرير,

المثال قي الرابط : طباعة الطلبيات ''Orders'':

 

 

report html.zip

  • أعجبني 1

شارك هذه المشاركه


رابط المشاركه
شارك
alisaleh84

طريقه جميله 
لدرجه انك تعمل 
Chart 
 

 
How to Create Chart Using PL/SQL Dynamic Content
 

1: first Create Region with PL/SQL Dynamic Content Type
ssssssss.PNG
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
  • أعجبني 1

شارك هذه المشاركه


رابط المشاركه
شارك
Ahmed Motaher
في ١٧‏/٦‏/٢٠٢٠ at 22:14, abderrahmane82 said:

السلام عليكم و رحمة الله وبركاته
أشارك مع أعضاء منتدانا الكرام ،طريقة إعداد تقارير PDF خاصة باستعمال لغة HTML و بدون الحاجة الى برامج أخرى مثل Oracle Report أو JReport ،خاصة في البرامج الصغيرة ,
أضع لكم في المرفقات ملف التطبيق و Procedure الخاص بإنشاء التقرير,

المثال قي الرابط : طباعة الطلبيات ''Orders'':

 

 

report html.zip 175.78 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 15 downloads

اشكرك من اعماق قلبي شغل احترافي بصراحه انا عملت تنزيل لملف html من داتا قريد الابليكشن تبعي وشفت تصميم صفحه التقرير html وعدلت Procedure بحيث انه يطلع لي نفس شكل التقرير اللي يظهر عندما تعمل download من interactive grid واشتغل معي  اكثر من رائع 

ملف التعديل في المرفقات 

PRINT_2_HTML.sql

تم تعديل بواسطة Ahmed Motaher
خطا املائي
  • أعجبني 1

شارك هذه المشاركه


رابط المشاركه
شارك
alisaleh84

 

شارك هذه المشاركه


رابط المشاركه
شارك

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان

×
×
  • اضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: إتفاقية الخصوصية