Select2 to jeden z lepszych pluginów dla APEXa.

Krótko mówiąc - usprawnia i uładnia wybieranie wartości. Za opisem z github:

The Select2 APEX plugin is based on Select2 – an open-source jQuery plugin that greatly improves the functionality and user-friendliness of regular select lists. In Oracle Application Express, the Select2 plugin can serve as a replacement for these four standard item types:

- Select List
- Shuttle
- Text Field with autocomplete
- List Manager

Przedstawię krótko, jak można zaimplementować go w swojej aplikacji.

Przyjmijmy, że chcemy mieć możliwość zapraszania osób na spotkania.
Lista dostępnych do wyboru imion+nazwisk powinna się zawężać w miarę podawania kolejnych znaków (podobnie jak np. przy tworzeniu nowej grupy na Facebooku lub nowym wydarzeniu w Google Calendar)

apex_kolekcje_055.png

W naszym przykładzie, Select2 ułatwi zebranie ID pracowników do danego Page Item.

apex_kolekcje_060.png

Kiedy będziemy już mieli ID w Itemie, to wystarczy je tylko przekazać do obiektu (w naszym przypadku będzie to APEX Collection, jednak mogłaby to być zwyczajna tabela) i wyświetlić - np. w Interactive Report lub Interactive Grid.

Żywy przykład powie więcej niż 1000 słów. Tutaj link do apki z opisywaną LOV i kodem:
https://apex.oracle.com/pls/apex/f?p=280000:120

Dlaczego używam APEX Collection zamiast którejś z kolekcji PL/SQL (Associative Array, Varray, Nested Table)?

Aplikację udostępniam publicznie, więc zależy mi, aby dokonane zmiany były tymczasowe pomiędzy różnymi sesjami APEX.
Z drugiej strony, zmiany powinny być trwałe pomiędzy transakcjami bazodanowymi, które odbędą się podczas korzystania w danej sesji. Czyli np. jeśli użytkownik odświeży daną stronę lub “przeklika się” po różnych innych przykładach, to zmiany które wprowadził na początku, powinny nadal obowiązywać.
Klasyczne temporary tables nie nadawałyby się do tego zadania, dlatego Oracle wprowadziło APEX Collections

Źródła:

  1. https://github.com/nbuytaert1/apex-select2
  2. https://docs.oracle.com/database/121/AEAPI/ap…