poniedziałek, 30 grudnia 2013

Automatyczne odświeżanie raportów

W niektórych aplikacjach pojawiają się raporty, które ze względu na swoją istotność bądź potrzeby klienta, wymagają aktualizacji danych co kilka sekund. Poniżej przedstawię dwie krótkie metody pozwalające na uzyskanie takiej funkcjonalności.

Metoda 1. Wykorzystanie Plug-in „Timer” i Dynamic Actions(DA)
Plug-in „Timer” do pobrania tutaj

Pierwsza DA będzie uruchamiać Plug-in „Timer” z określonym interwałem czasowym, a druga DA odświeży raport na podstawie zdarzenia wywołanego przez Plug-in.

1. Dynamic Action [1]

Event: Page Load



Timer Name: pole nie obowiązkowe, natomiast przydatne jeżeli chcemy włączać / wyłączać Timer
Expire in x Milliseconds: 5000 (5 sekund)

Na co warto zwrócić uwagę:
Occurrence: Infinitive – w naszym przypadku chcemy zachować ciągłość odświeżania danych na raporcie
Zaznaczyć Fire on page load – Uruchomienie DA przy załadowaniu strony. Oczywiście nic nie stoi na przeszkodzie aby zrobić sobie dowolną kondycję np.: pod przyciski i manipulować odświeżaniem.

2. Dynamic Action [2]
Event: Timer Expired
Action: Refresh
Region: Region (Raport), który będzie odświeżany

Wskazówki: Najszybciej przetestować na current_timestamp lub to_char(sysdate, ‘HH24:MI:SS’)

Metoda 2. Użycie funkcji JavaScript w sekcji Region Header lub Region Footer

1. Ustawienie Static ID na raporcie, który będzie odświeżany
Edycja Raportu -> Attributes -> Static ID wprowadzamy np: REFRESH_CUSTOMER
2. Dodanie kodu JavaScript w sekcji Region Header lub Region Footer

<script type="text/javascript">
setInterval("jQuery('##REGION_STATIC_ID#').trigger('apexrefresh');", 7000);
</script>

Powyższy kod pobiera ID regionu (raportu), a następnie funkcja setInterval określa co ile powinna wykonywać się operacja odświeżania (w tym przypadku wartość wynosi 7000 - czyli co 7 sekund).


To tyle, wystarczy odświeżyć stronę i sprawdzić czy dane na raporcie aktualizują się co 7 sekund.

Brak komentarzy:

Prześlij komentarz