2017-12-06 7 views
0

Ich habe einen interaktiven Bericht in Apex 5, und jedes Mal, wenn die Seite geladen wird, soll es genau so aussehen, wie es beim ersten Mal angezeigt wurde, mit den Standardeinstellungen.Wie programmiere ich einen Apex 5-Bericht programmgesteuert in den Standardzustand zurück?

Das Problem besteht darin, dass wenn der Benutzer einen Filter anwendet oder Spalten ausblendet, der Bericht beim nächsten Laden der Seite diese Konfiguration speichert.

Ich versuchte, das APEX_IR.RESET_REPORT Verfahren hier nicht dokumentiert zu verwenden: entweder

https://docs.oracle.com/database/121/AEAPI/apex_ir.htm#BABEJAFB

aber es funktioniert nicht funktioniert, oder rückgängig macht nur die letzte Änderung muss oder viele Läufe arbeiten tatsächlich.

habe ich versucht, eine dynamische Wirkung auf Seite Last mit diesem Code:

DECLARE 
    v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE; 
BEGIN 


    SELECT region_id INTO v_region_id 
    FROM APEX_APPLICATION_PAGE_REGIONS 
    WHERE application_id = :APP_ID 
    AND page_id = :APP_PAGE_ID 
    AND static_id = 'Images_Report'; 


    APEX_IR.RESET_REPORT( 
     P_page_id => :APP_PAGE_ID, 
     P_region_id => v_region_id, 
     p_report_id => null 

); 

END; 

Und ich habe auch versucht, diesen Code

DECLARE 
    v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE; 
BEGIN 


    SELECT region_id INTO v_region_id 
    FROM APEX_APPLICATION_PAGE_REGIONS 
    WHERE application_id = :APP_ID 
    AND page_id = :APP_PAGE_ID 
    AND static_id = 'Images_Report'; 


    APEX_IR.RESET_REPORT( 
     P_page_id => :APP_PAGE_ID, 
     P_region_id => v_region_id, 
     p_report_id => APEX_IR.GET_LAST_VIEWED_REPORT_ID(
         p_page_id => :APP_PAGE_ID, 
         p_region_id => v_region_id 
         ) 

); 

END; 

Ich erwarte, dass der Bericht als in Standardzustand suchen (bei der ersten Ausführung), jedes Mal wenn ich die Seite lade.

Stattdessen zeigt der Bericht den letzten Status, selbst wenn sich der Benutzer abmeldet, meldet sich an und startet die Anwendung neu.

+0

Haben Sie versucht, den Cache zu löschen, wenn die Zielseite definieren? – Blurryface

+0

@Blurryface Ich setze den leeren Cache auf den Knopf, der zum interaktiven Bericht umleitet, aber es funktioniert nicht. (Option Schaltfläche> Eigenschaften> Verhalten> Ziel> Sitzungsstatus löschen> Cache löschen) – xatil

+0

Das ist seltsam. Wie in @scott erwähnt, können Sie entweder URL mit RIR als leeren Cache in Ihrer URL haben oder RIR/CIR oder die Zielseite in Ihrem Textfeld für den leeren Cache, wenn Sie stattdessen die Aktion "Umleiten zu einer Seite" wählen. Dies sollte alle Filter löschen. – Blurryface

Antwort

0

senden RIR als klarer Cache Parameter in der URL

https://docs.oracle.com/database/apex-5.1/HTMDB/linking-to-interactive-reports.htm#GUID-B917CEB3-A0B9-414B-A90A-7B44DD15EA67

URL wie

f?p=102:94:6722612001859::NO:RIR:: 

https://docs.oracle.com/database/apex-5.1/HTMDB/understanding-url-syntax.htm#HTMDB03019

In der Dokumentation wird dies in Bezug auf die apex_ir.reset_report Verfahren aussehen würde

Diese Prozedur sollte nur in Seitenübergabeprozessen verwendet werden.

Welche sein könnte, warum Sie Probleme hatten

Verwandte Themen