Platforma

j_insert_update - zaawansowane programowanie - pozycje dokumentu cz. 3

Platforma StudioSystem i zaawansowane programowanie dają ogromne możliwości tworzenia oprogramowania.

st.studiosystem.com.pl
insert_update ssupdate
insert_update ssupdate

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.