Sabtu, 20 Oktober 2012

How to accomplish dynamic image on form and report?

Posting kali ini kita akan mencoba membuat sebuah dynamic image yang akan tampil di report dan form. Disebut dynamic karena kita bisa me-reference image dari column BLOB, external URL atau default image yang tersimpan dalam #WORKSPACE_IMAGES#.
  1. Alter table yang akan digunakan sebagai penampung dalam contoh ini saya pake EMP.
  2. ALTER TABLE emp ADD
    (EMP_PHOTO blob,
    ATTACH_MIMETYPE VARCHAR2(255),
    ATTACH_FILENAME VARCHAR2(255),
    ATTACH_LAST_UPDATE DATE,
    ATTACH_CHARSET VARCHAR2(128),
    EXTERNAL_URL VARCHAR2(255));
    
  3. Buat report-form dengan wizard.
  4. Pada bagian report edit query dengan seperti ini.
  5. select "EMPNO", 
    "ENAME",
    "JOB",
    "MGR",
    "HIREDATE",
    "SAL",
    "COMM",
    "DEPTNO",
    "EXTERNAL_URL",
    case when dbms_lob.getlength(emp_photo)<>0 then 
        '<img alt="emp Image" height="75" src="'||
        apex_util.get_blob_file_src('P24_EMP_PHOTO',empno)||
        '" style="-moz-border-radius: 4px; -webkit-border-radius: 4px; border: 4px solid #CCC;" title="emp Image" width="75" />'
           when  nvl(dbms_lob.getlength(emp_photo),0)=0  and external_url is not null   then
        '<img alt="emp Image" height="75" src="'||external_url||
        '" style="-moz-border-radius: 4px; -webkit-border-radius: 4px; border: 4px solid #CCC;" title="emp Image" width="75" />'       
           else     
        '<img alt="emp Image" height="75" src="#WORKSPACE_IMAGES#1.jpg" style="-moz-border-radius: 4px; -webkit-border-radius: 4px; border: 4px solid #CCC;" title="emp Image" width="75" />'       
    end as "PHOTO"
    from EMP
    
  6. Pada bagian form tambahkan item: display only dengan source :
  7. declare
     v_exist number(2);
    begin
    select count(1) into v_exist
    from emp
    where empno=:P24_EMPNO and DBMS_LOB.GETLENGTH(EMP_PHOTO)<>0;
    if  v_exist&lt;&gt;0 then
    return '<img src="'||apex_util.get_blob_file_src('P24_EMP_PHOTO',:P24_EMPNO)||'" />';
    elsif  v_exist=0 and :P24_EXTERNAL_URL is not null  then
    return '<img src="'||:P24_EXTERNAL_URL||'" />';
    else
    return '<img src="#WORKSPACE_IMAGES#1.jpg" />';
    end if;
    end;
    
  8. Update/create form dengan upload image ke dtatbase atau mereference URL link di EXTERNAL_URL

Demo bisa diakses di sini

Tidak ada komentar :

Posting Komentar