Transakcja j_insert_update.aspx umożliwia dzięki podłączaniu własnych plików ze skryptami wprowadzanie zmian w wyglądzie i zachowaniu transakcji i zdefiniowanych na niej obiektów. Niniejszy artykuł opisuje zaawansowane rozwiązania dla programistów JQuery pozwalające na dodatkowe działania w ramach transakcji, przykład dotyczy podłączenia akcji po wybraniu przez użytkownika pozycji ze skrowidza, odczytanie informacji w bazie danych i podstawienie wyniku do innej kontrolki na formularzu. Przed przystąpieniem do analizowania przykładu zalecam zapoznanie i opanowanie poprzednich artykułów dotyczących zaawansowanego programowania w transakcji j_insert_update.aspx
Zakładam, że transakcja ma zdefiniowane parametry wskazujące na dodatkowy plik js do załadowania, np.
script=../role_crm/crm_knkon&scriptonload=MojaOnLoad()&scriptonready=MojaOnReady()&refno=CRM_INS_KNKON&return=ZamknijOkno&nridodn=
Przygotowujemy w dołączanym pliku /role_crm/crm_knkon.js funkcje MojaOnLoad
function MojaOnLoad() { $('#NRIDKNKAR').bind('select', function (event) { var args = event.args; var item = args.item; var cZrodlo = PobierzDataTable("top(1) UPPER(NRIDKAR), MIEJSCOWOSC, ULICA FROM KNKAR WHERE NRIDKAR=" + item.value); if (cZrodlo.length == 1) { $("#MIEJSCOWOSC").val(cZrodlo[0].MIEJSCOWOSC); } });
}
Powyższe działanie funkcji polega na zdefiniowaniu zdarzenia select (wybranie przez użytkownika pozycji ze skorowidza typu COMBO), gdzie skorowidz posiada unikalną nazwę NRIDKAR. Następnie funkcja odczytuje dane z bazy SQL za pomocą uniwerslanej funkcji StudioSystem o nazwie: PobierzDataTable, jeżeli zostanie zwrócony 1 rekord to kontrolka o nazwie MIEJSCOWOSC, zostanie wypełniona wartością odczytaną z bazy danych.
Sprawdzamy definicję za pomocą ustawień kreatora transakcji insert_update
Formularz standardowo wygląda następująco:
Chcemy wybrać z listy handlowców osobę: Adam Siemiątkowski, która w kartotece handlowca ma wpisane dane adresowe w polu miejscowość: pOZNAŃ
Czyli zgodnie z działaniem naszej funkcji, spodziewamy się, że wybierając na formularzu pracownika Adam Siemiątkowski automatycznie program odczyta jego miejscowość i wartość miejscowości pracownika przepisze do pola MIEJSCOWOŚĆ kontrahenta. Wiem, wiem, przykład nie bardzo rozsądny, ale ma za zadanie pokazać sposób działania i metodę postępowania.
Sprawdzamy więc,
wybieramy na liście pracownika i oto mamy, pole MIEJSCOWOŚĆ automatycznie zostało wypełnione informacją odczytaną z bazy danych
Podsumowanie
Wykorzystując wiedzę dotycząca programowania javascript i JQuery możemy swobodnie manipulować kontrolkami, jakie mamy dostępne (zdefiniujemy sobie) na formularzu, odczytując dowolne dane z bazy tworząc relacje i kontrole.