Podstawowe informacje
Formularz zadania udostępnia API, które ułatwia wykonywanie podstawowych operacji na potrzeby dostosowania go do potrzeb klienta.
Serwisy
Wszystkie serwisy są dostępne bezpośrednio na globalnym scope (na podstawie ich nazwy) - od wersji systemu 3.2.5 lub do poprania za pomocą ServiceFactory.
- ActivityInfoService - odpowiedzialny za przechowywanie podstawowych informacji o zadaniu, dostępny z globalnego scope za pomocą wywołania:
var activityInfoService = ServiceFactory.getActivityInfoService();
- CommentService - odpowiedzialny za komentarze zadania, dostępny z globalnego scope za pomocą wywołania:
var commentsService = ServiceFactory.getCommentsService();
- FormService - odpowiedzialny za zakładkę formularza ze zmiennymi formularza, dostępny z globalnego scope za pomocą wywołania:
var formService = ServiceFactory.getFormService();
- MessageService - odpowiedzialny za wyświetlanie wiadomości w postaci animowanych "chmurek" dla użytkownika aktualnie korzystającego z formularza, dostępny z globalnego scope za pomocą wywołania:
var messageService = ServiceFactory.getMessageService();
- VariableService - odpowiedzialny za zarządzanie zmiennymi formularza nie znajdującymi się w tabelach dynamicznych, dostępny z globalnego scope za pomocą wywołania:
var variableService = ServiceFactory.getVariableService();
- VariableSetService - odpowiedzialny za zarządzanie tabelami dynamicznymi i zmiennymi znajdującymi się w nich, dostępny z globalnego scope za pomocą wywołania:
var variableSetService = ServiceFactory.getVariableSetService();
SuncodeFormService
API formularza posiada także dodatkowy serwis SuncodeFormService. Jest on również dostępny na globalnym scope (window) i jest obsługiwany niezależnie od pozostałych serwisów.
Zdarzenia gotowości formularza
Funkcja addOnReadyEvent daje możliwość dodania dowolnej ilości akcji, jakie zostaną wykonane po zbudowaniu formularza (wszystkie komponenty na formularzu będą już dostępne). Funkcja ta ma nazwę addOnReadyEvent. Przykładowe wykorzystanie jest następujące:
SuncodeFormService.addOnReadyEvent( function() { alert( 'Pierwsza akcja' ); } ); SuncodeFormService.addOnReadyEvent( function() { alert( 'Druga akcja' ); } );
Użycie serwisu w powyższy sposób spowoduje, że po zbudowaniu formularza zostaną kolejno wyświetlone wiadomości: 'Pierwsza akcja' i 'Druga akcja'. Kolejność wykonywania akcji jest zależna od ładowania skryptów, a w ramach jednego pliku od kolejności dodawania akcji.
Funkcja addOnReadyEvent przyjmuje jeden parametr:
- event (typ Function) - funkcja JavaScript wykonana po zbudowaniu formularza
Funkcja ta nie zwraca żadnych rezultatów.
Grupowanie akcji obliczania wyglądu formularza
Od wersji 3.1.6 możliwe jest dodatkowe grupowanie akcji zmieniających układ formularza (layout). Takie grupowanie zmian układu jest znacznie szybsze niż wykonywanie tych akcji osobno.
SuncodeFormService.suspendLayouts(); try { // wiele akcji variableService.hide('a'); variableSetService.hide('a'); } finally { SuncodeFormService.resumeLayouts(); }
Od wersji 3.1.22 możliwe jest wywołanie grupowych akcji bez konieczności użycia bloków try oraz finally poprzez podanie parametrów w wywołaniu. W miejsce function należy podać funkcje, która zostanie wywołana, a następnie scope wywołania tej funkcji.
SuncodeFormService.suspendLayouts(function, scope);
Ustawienia konfiguracyjne formularza
W wersji 3.1.10 wprowadzono mechanizm ustawień formularza. Umożliwia on dynamiczne ustawienie danych właściwości poprzez API:
// ustawienie właściwości SuncodeFormService.setConfig('config.key', 'value'); // pobranie właściwości var conf = SuncodeFormService.getConfig('config.key'); // można także sprecyzować wartość domyślną, zwróconą w przypadku, gdy właściwość nie zostanie ustawiona var conf = SuncodeFormService.getConfig('config.key', 'default value');
Tabela zawiera wszystkie dostępne opcje konfiguracyjne formularza
Nazwa | Typ | Wartość domyślna | Dostępne od | Opis |
---|---|---|---|---|
autoupdate.blurifchange | Boolean | false | 3.1.10 | Domyślnie AutoUpdate na zdarzeniu blur wykonuje się zawsze, nawet wtedy, gdy nie zmienimy wartości pola. Aby AutoUpdate był wywoływany po wyjściu z pola, jeżeli jego wartość zmieniła się od wejścia w to pole należy wywołać kod: SuncodeFormService.setConfig('autoupdate.blurifchange', true); |
variableset.copyrow.target | String | bottom | 3.1.13 | Dopuszczalne wartości: bottom, below Aby kopiowany wiersz wstawiony został poniżej zaznaczonego należy wywołać kod: SuncodeFormService.setConfig('variableset.copyrow.target', 'below'); Jeżeli nie ustawiono tej opcji lub została ona ustawiona na 'bottom' kopiowany wiersz zostanie dodany na dole tabeli. |
variable.variabletoview.genericformat | Boolean | false | 3.2.0 | Domyślnie dla zmiennych nieedytowalnych funkcja: VariableService.getValue('id'); // lub VariableService.getValue('id', false); Zwraca zmienne typu całkowitego, zmiennoprzecinkowego, kwotowego, datowego i "data i czas" w formacie tekstowym. Aby zmienne liczbowe i datowe zwracane były w odpowiadającym im typie języka JavaScript:
Należy wywołać kod: SuncodeFormService.setConfig('variable.variabletoview.genericformat', true); |