APEX – Wykresy AnyChart pod kontrolą

post_img

APEX umożliwia tworzenie wykresów Flash AnyChart oraz HTML. Proces generowania wykresów przy użyciu interfejsu programowania APEX jest żmudny i nie daje nam pełnej kontroli nad zawartością. Źródłem danych przedstawionych na wykresie wygenerowanym przez interfejs może być zapytanie SQL lub funkcja PL/SQL zwracająca zapytanie SQL. Chciałbym przedstawić tu alternatywny sposób generowania wykresów AnyChart przy użyciu procedury PL/SQL oraz JavaScript.

W APEX dostępnych jest kilka darmowych rodzajów wykresów AnyChart:

  • Column chart,
  • Line Chart,
  • Bar Chart,
  • Range-Bar Chart,
  • Range-Column Chart,
  • Stacked Bar Chart,
  • Stacked Column chart,
  • 100% Stacked Column Chart,
  • Candlestick Chart,
  • 100% Stacked Bar Chart,
  • Pie Chart,
  • Doughnut Chart,
  • Circular Gauge,
  • Scatter Chart.

Pozostałe typy wykresów dostępne są po wykupieniu dodatkowej licencji.

Procedura PL/SQL generująca plik XML

Alternatywny proces generowania wykresów zaczynamy od stworzenia procedury PL/SQL, która będzie tworzyła plik XML wykresu.
Przykładem jest wykres liniowy przedstawiający zarobki pracowników pobrane z tablicy „emp”.

Procedura wykresXML

Uprawnienia do procedury wykresXML

Następnie musimy nadać uprawnienia wykonywania procedury wykresXML dla użytkownika APEX_PUBLIC_USER.
Aby to zrobić należy:

  1. Zalogować się do bazy danych z uprawnieniami systemowymi;
    1
    sqlplus "/ as sysdba"
  2. Nadać uprawnienia do uruchamiania procedury wykresXML dla apex_public_user.
    1
    grant execute on wykresXML to apex_public_user;

Region HTML

Na stronie, na której chcemy umieścić wykres, tworzymy region HTML. Źródłem regionu HTML jest kod JavaScript generujący wykres.

Dla generowanego wykresu ustawiamy naszą procedurę jako źródłowy plik XML:

1
2
var plikXML = „#OWNER#.wykresXML”;
wykres.setXMLFile(plikXML);

Region HTML

Otrzymany wykres

W regionie HTML otrzymujemy wykres AnyChart o zdefiniowanych w naszej procedurze parametrach.

Wygenerowany wykres

Dużą zaletą tego rozwiązania jest prostota konfiguracji jego wyglądu oraz efektów, np. tooltip.
Sposób ustawiania formatu tooltip’ów:

Wynik ustawienia:

Taki sposób tworzenia wykresów AnyChart pozwala na pełną kontrolę zawartości zawartość wykresu. Znacznie przyspiesza ponadto proces wytwarzania aplikacji. Rozwiązanie to pozwala na generację wszystkich dostępnych wykresów AnyChart, AnyGantt, AnyStock , a nie tylko tych, na które pozwala interfejs programisty. Generacja dowolnych wykresów, niezdefiniowanych w licencji Oracle APEX, wymaga zakupu dodatkowej licencji AnyChart.

Źródła

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *