Platforma StudioSystem oferuje szereg funkcji, które czynią ją idealnym wyborem do tworzenia oprogramowania. Dzięki zintegrowanemu środowisku programistycznemu programiści mogą tworzyć aplikacje w ułamku czasu, jaki zajęłoby to tradycyjnymi metodami. Platforma udostępnia również bibliotekę gotowych komponentów, których można użyć do dostosowania lub rozszerzenia istniejących funkcji. Eliminuje to konieczność wykonywania oddzielnych zadań związanych z kodowaniem lub debugowaniem, umożliwiając programistom skupienie się na tworzeniu unikalnych aplikacji.
W poprzednich artykułach opisałem metodę wykorzystania transakcji j_insert_update.aspx do przygotowania formularza dopisywania pozycji dokumentu. Poniższy artykuł jest kontynuacją i opisuje zmiany w projektowaniu formularza pozwalające na zatwierdzenie dokumentu.
W poprzednim artykule opisałem jak stworzyć formularz taki jak ten:
Łatwo zauważyć, że możemy dane do bazy dodawać, ale brakuje przycisku ZAPISZ, który zapisze dane jako dokument zatwierdzony (zapisze ACH=1 i nada kolejny numer dokumentu).
KROK 1
Zmieniamy funkcje SsOnReady w której wskazujemy że po kliknięciu przez użytkownika na przycisk ZAPISZ ma wykonać się nowa funkcja o nazwie ZapiszDokument()
oraz ukrywamy przycisk, aby był on niedostępny dla użytkownika do momentu dodania pierwszej pozycji dokumentu.
Krok 2
W funkcji wykonywanej po dodaniu pozycji dodaję polecenie
które pokaże przycisk zapisania dokumentu, tak aby użytkownik mógł dokument zatwierdzić.
KROK 3
Dodajemy funkcje ZapiszDokument(), która wykona zapis dokumentu
Funkcja pobiera dane z kontrolek oznaczonych za pomocą znacznika ssupdate i uruchamia metodę UpdateData. Parametry metody:
- nazwa tabeli w bazie SQL w której chcemy zaktualizować dane np. 'dphan’
- Tablica z danymi z kontrolek oznaczonych jako ssupdate (patrz opis poniżej)
- znacznik ACH , standardowo zatwierdzony dokument nadajemy wartość 1,
- parametr wskazujący na nazwę kolumny oraz format numeru dokumentu. Jeżeli wartość parametru jest pusta to numer nie będzie nadawany. W powyższym przykładzie chcę aby numer został zapisany w kolumnie NRDOKUMENTU, a jego typ to ZAM (pierwsze 3 znaki po znaku =), kolejne znaki to sposób formatowania numeru dokumentu, np. 2015-01-00005ZAM ponieważ format to RRRR-MM-XXXXX-TYP
- warunek filtrowania wierszy które mają być aktualizowane, zwykle aktualizujemy wiersze dotyczące danego dokumentu, a więc refno, gdzie zmienna gcRefno zawiera numer referencyjny podawany przy uruchomieniu transakcji w parametrze refno
- parametr wskazujący na nazwę połączenia z bazą danych SQL, domyślnie program używa połączenia o nazwie: softwarestudioConnectionString
- Nazwa funkcji jaka ma być uruchomiona, gdy zapis zakończy się powodzeniem, np. ThisOnSucceeded
- Nazwa funkcji jaka ma być uruchomiona, gdyby wystąpił błąd zapisu, zwykle korzystamy ze standardowej: OnFailed
Zapis danych przy zatwierdzaniu
Zatwierdzając dokument możemy zdecydować, aby dane ze wskazanych kontrolek zostały pobrane i aktualizowały rekordy dokumentu. Do tego celu używam znacznika ssupdate=1, który umieszczam w kolumnie parametry dla wybranych kontrolek:
Rozwiązania zapewnia, że pozycje będą miały przypisaną wartość przy zatwierdzeniu, nawet jeżeli użytkownik dane na zakładce nagłówek uzupełnił na końcu. Ustawiłem je dla kontrolek miejsce dostawy (NRIDCRM), termin dostawy (TERMIN) i opis (UWAGI). Pola te zostaną zaktualizowane przy zatwierdzaniu dokumentu.
Podsumowanie
Za pomocą własnego skryptu można wykreować formularz dopisywania wielopozycyjnych dokumentów wraz z zatwierdzaniem i nadawaniem numeru dokumentu. Można tworzyć logikę biznesową wykorzystując JQuery i zapytani do bazy SQL.
Poniżej cały kod pliku crm_dphan.js jaki wykorzystałem do obsługi opisywanej transakcji rejestrowania zamówienia.
Dokumentacja techniczna StudioSystem. Pytania wdrożeniowe: kontakt z SoftwareStudio.