Selasa, 14 Mei 2013

Multiple Interactive Report with Synchronize Link

Beberapa pertanyaan tentang bagaimana memanipulasi interactive report (IR) dalam satu page sambil menunggu APEX 5. kita bisa lakukan dengan cara berikut.
Contoh kasus kita akan membuat sebuah 3 IR dalam satu page.

  • Page 27 adalah IR1 (DEMO_CUSTOMERS).
  • Page 29 adalah IR2 (DEMO_ORDERS).
  • Page 30 adalah IR3 (DEMO_ORDERS).

Pada page 27 buatlah 3 region seperti gambar berikut :

  • Region IR 1 : IR report dengan link: redirect ke page 27 dengan ngisi item P27_CUSTOMER_ID dengan value #CUSTOMER_ID# dengan request REDIR
  • Region IR 2 : dengan subregion Frame 2.
    • Bagian header
    • <iframe src="f?p=&APP_ID.:29:&SESSION."
            style="width:500px;height:500px"
            name="details"
            scrolling="no" marginwidth="0" marginheight="0"
            frameborder="0" vspace="0" hspace="0" >
      
    • Bagian footer
    • </iframe>
      
  • Region IR 3 : dengan subregion Frame 3.
    • Bagian header
    • <iframe src="f?p=&APP_ID.:30:&SESSION."
            style="width:500px;height:500px"
            name="details1"
            scrolling="no" marginwidth="0" marginheight="0"
            frameborder="0" vspace="0" hspace="0" >
      
    • Bagian footer
    • </iframe>
      

Lalu pada page 29 dan 30 buatlah IR dengan hidden item P29_CUSTOMER_ID dan P30_CUSTOMER_ID dengan query report:
select ORDER_ID, CUSTOMER_ID, ORDER_TOTAL, ORDER_TIMESTAMP
from DEMO_ORDERS
where customer_id=:P29_CUSTOMER_ID

Lalu langkah terakhir pada page 27 buatlah sebuah dynamic action
  • Event:Page Load
  • Condition: Request=Expression1 dengan Expression 1 =REDIR
  • True Actions : Execute javascript Code
  • code :
  • top.frames['details'].location.href = 'f?p=&APP_ID.:29:&SESSION.::&DEBUG.::P29_CUSTOMER_ID:&P27_CUSTOMER_ID.';top.frames['details1'].location.href = 'f?p=&APP_ID.:30:&SESSION.::&DEBUG.::P30_CUSTOMER_ID:&P27_CUSTOMER_ID.';
    

Demo aplikasi bisa lihat disini.