j_insert_update – zaawansowane programowanie cz. trzecia

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=

insert_update on select

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

insert_update on select 1

 

Formularz standardowo wygląda następująco:

insert_update on select 2

Chcemy wybrać z listy handlowców osobę: Adam Siemiątkowski, która w kartotece handlowca ma wpisane dane adresowe w polu miejscowość: pOZNAŃ

insert_update on select 3

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,

insert_update on select 4

 

wybieramy na liście pracownika i oto mamy, pole MIEJSCOWOŚĆ automatycznie zostało wypełnione informacją odczytaną z bazy danych

insert_update on select 5

 

 

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.