Browsing "Older Posts"

Balken Chart (Progress Bar) - Hidden Feature

Von Tobias Arnhold → 8.28.2012
Viele von euch kennen bestimmt die Balken-Grafik die Ihr innerhalb eines APEX Reports erstellen könnt:
Zu diesem Thema gibt es einige sehr gute Anleitungen:
EN:
http://www.inside-oracle-apex.com/more-undocumented-new-features-in-oracle-apex-31/#high_2
http://www.talkapex.com/2009/06/displaying-percentage-bar-in-apex.html
DE:
http://frankschmidt.blogspot.de/2009/06/prozentbalken-in-apex-reports.html

Neben der einfachen Verwendung in den Report Attributes, gibt es auch die Möglichkeit die Charts direkt mit einer APEX_UTIL Funktion zu generieren:
APEX_UTIL Documentation
APEX_UTIL.HTML_PCT_GRAPH_MASK (
    p_number         IN NUMBER    DEFAULT NULL,
    p_size           IN NUMBER    DEFAULT 100,
    p_background     IN VARCHAR2  DEFAULT NULL,
    p_bar_background IN VARCHAR2  DEFAULT NULL,
    p_format         IN VARCHAR2  DEFAULT NULL)
RETURN VARCHAR2;

In diesem Zusammenhang hat Peter Raganitsch die Generierung einer Balken-Grafik innerhalb eines APEX Items beschrieben:
DOAG Tipps & Tricks: So erstellen Sie mit APEX eine Balkengrafik-Formatmaske in einem Page-Item

Nun hat man oft die Notwendigkeit eine bedingte Anzeige (Beispiel: Ampel) abzubilden. Dies geht auch mit den Balken-Grafiken in APEX. Ich zeige dies mal anhand eines Report Beispiels:
select
 case when FINISHED_IN_PERCENT <= 30    
        then APEX_UTIL.HTML_PCT_GRAPH_MASK (FINISHED_IN_PERCENT,100,'cccccc','BF381A')
      when FINISHED_IN_PERCENT >= 31 and 
           FINISHED_IN_PERCENT <= 70
        then APEX_UTIL.HTML_PCT_GRAPH_MASK (FINISHED_IN_PERCENT,100,'cccccc','EFD13B') 
      when FINISHED_IN_PERCENT >= 71
        then APEX_UTIL.HTML_PCT_GRAPH_MASK (FINISHED_IN_PERCENT,100,'cccccc','7DC24B') 
 end as chart,
 ID
from ORDERS
APEX-AT-WORK no image

APEX Tabular Forms mit Before Insert Trigger

Von Tobias Arnhold → 8.20.2012
In vielen meiner Projekte nutze ich Tabular Forms. Bei Standardspalten wie "geändert am" oder "geändert von" ist es leider nicht ohne weiteres möglich das SYSDATE und den APP_USER mitzugeben.

Der Grund liegt in den wenigen Einstellmöglichkeiten (bis mindestens APEX 4.1).  Es gibt nur einen Default Wert den ich setzen kann. Dieser wird aber nicht bei einem Update Prozess gezogen und der alte Wert bleibt bestehen.

Eine Lösung stellt hier ein "before insert or update"-Trigger dar:
CREATE OR REPLACE TRIGGER "TRG_NACHRICHTEN" before
  INSERT OR
  UPDATE ON TBL_NACHRICHTEN FOR EACH row BEGIN
  :NEW.geaendert_am := sysdate;
  :NEW.geaendert_von := UPPER(NVL(v('APP_USER'),USER));
END;
APEX-AT-WORK no image

Neue Version des SQL Developers (3.2)

Von Tobias Arnhold →
Es gibt eine neue Version des Oracle SQL Developers:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Neben vielen Bugfixes und Usability Erweiterungen, wurde auch eine Administrationsumgebung für den APEX Listener hinzugefügt. Siehe Release Notes - New Features:
http://www.oracle.com/technetwork/developer-tools/sql-developer/sqldev-newfeatures32-1731840.html

Aktuell gibt es eine Early Adopter (Beta) des APEX Listeners in der Version 2.0:
http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/listener-beta-1727062.html

Achja wer es bisher verpasst hat, auch APEX gibt es in einer zweiten Version des Early Adopters zum testen:
http://joelkallman.blogspot.de/2012/07/application-express-42-early-adopter-2.html

Noch ne Info:
Am 26.09 findet eine APEX SIG in Karlsruhe statt. Ich selbst halte auch ein Vortrag:
http://www.doag.org/termine/termine.php?tid=440574

IR Bug after import of an application with new id

Von Tobias Arnhold → 8.07.2012
Today I discovered a really cruel bug in APEX.
We migrated an APEX 4.0 application into a new workspace with APEX 4.1.
The application got a new application id. The application used a lot of interactive reports. Some of the report columns where created as "Display as Text (based on LOV, escape special characters)".
After the import all LOV assignments where dropped.

Did anyone else discovered the same issue? Is there any bug fix planned in a newer version of APEX. 
In the new workspace we use version 4.1.0.00.32.