logo-softwarestudio-2020-600

j_insert_update.aspx

Program StudioSystem za pomocą uniwersalnej transakcji j_insert_update.aspx pozwala użytkownikowi na wyświetlenie okna z kontrolkami do edycji informacji zapisanej we wskazanej tabeli. Transakcja podobna do transakcji x_insert_update.aspx, jednakże zasadniczą różnicą jest możliwość definiowania zakładek w formularzu dopisania/edycji.

UWAGA: ograniczenie rozwiązania polega na możliwości edycji danych tylko dla wskazanej jednej tabeli np. dane kartotekowe lub uzupełnianie danych dokumentów. Zaawansowane programowanie za pomocą JQuery (javascript) można dowolnie zmienić sposób działania formularza, i obsługę wielu tabel, dodawać przyciski, tabelki i inne obiekty.

Z poziomu modułu KONFIGURACJA można zaprojektować formularz z jakich elementów będzie się składać ekran dopisywania lub edycji danych.

Dopisanie formularza

W celu ustawienia parametrów pozwalających zaprojektować formularz należy uruchomić moduł KONFIGURACJI.

Nowy formularz dopisywany jest przez użycie polecenia DODAJ lub KOPIUJ.

Dopisujemy definicje parametrów formularza wprowadzając następujące informacje:

  • Kod transakcji – zalecane jest rozpoczęcie nazwy od INS_ + nazwa tabeli której edycja lub dopisywanie będzie obsługiwane, np. INS_KNASO przeznaczone jest jako formularz kartoteki asortymentowej;
  • Nazwa – należy podać nazwę tabeli do której będą zapisywane dane, w naszym przykładzie będzie to tabela KNASO;
  • Źródło danych – domyślnie SoftwareStudioConnectionString;
  • Zapytanie SQL – należy podać zapytanie SELECT zawierające jakie kolumny mają być obsługiwane; dopuszcza się stosowanie symbolu *, np. SELECT TOP(1) * from knaso. Należy pamiętać o podaniu klauzuli TOP(1);
  • Filtr kolumna – podajemy nazwę kolumny w tabeli wg której będzie odszukiwanie właściwego rekordu dla odczytania w przypadku trybu pracy UPDATE, np. NRIDASN;
  • Szerokość strony – wskazujemy w pikselach jaki chcemy mieć rozmiar w zakresie szerokości formularza, ponieważ program może być uruchamiany na urządzeniach z różną rozdzielczością, można wskazać jaką chcemy wymusić szerokość. Zalecana wielkość to 1000 lub więcej. Jeżeli chcemy aby okno było automatycznie dopasowane do rozmiaru okna klienta to wpisujemy wartość 0, wówczas program ustawi szerokość na 100%.

Następnie należy wygenerować kolumny czyli jakie pola będą dostępne na formularzu, w tym celu uruchamiamy polecenie UTWÓRZ/ AKTUALIZUJ KOLUMNY.

Dla już utworzonych kolumn do edycji należy używać polecenia EDYTUJ KOLUMNY.

Wyświetlone zostanie okno edycji:

Parametry:

  • KOLEJNOŚĆ – pozwala określić jakie obiekty będą w jakiej kolejności umieszczane na formularzu
  • NAZWA KOLUMNY – nazwa z bazy SQL z jakiej dane są odczytywane i zapisywane
  • ZAKŁADKA – nazwa zakładki wyświetlona w formularzu (WYMAGANE)
  • TYTUŁ – etykieta wyświetlana obok okienka edycji
  • SZEROKOŚĆ KOLUMNY – w pikselach podajemy jakie chcemy mieć szerokie okno edycji, domyślnie 120 pikseli
  • WIDOCZNA – kolumna ustawiona jako niewidoczna nie będzie wyświetlana na formularzu mimo, że znajduje się w zapytaniu SQL
  • WYMAGANE – oznaczenie na TAK powoduje że dane okienko będzie wymagało wypełnienia, w przypadku braku danych, okienko będzie wyświetlane w czerwonym obramowaniu i nie będzie można zapisać danych
  • KLUCZ DOMYŚLNY – należy wskazać jaka kolumna stanowi unikalny identyfikator wiersza, np. NRIDASN, takie okienko może być wyświetlana ale bez możliwości edycji. Zaznaczenie klucza domyślnego skutkuje także autoatycznym nadaniem unikalnego identyfikatora rekordu w tabeli, w przypadku wywołania transakcji jako dopisania.
  • TYP KOLUMNY – pozwala wskazać w jaki sposób można dane edytować
    • Text – wprowadzanie danych tekstowych
    • Date – przeznacozny do wprowadzania dat
    • Numeric – umożliwia wporwadzanie wartości numerycznych
    • CheckBox – edycja pól logicznych, na zasadzie TAK/NIE
    • Combo – lista rozwijana umożliwiająca wybranie jednej pozycji ze słownika
    • ComboChkBox – lista rozwijana umożliwiająca wybranie wielu pozycji z listy. Definiowana tak samo jak pole typu Combo. Do bazy zapisywane są kody zaznaczonych pozycji rozdzielone przecinkami.
    • ComboFly – lista rozwijana wyszukująca pozycje dynamicznie z bazy na podstawie wpisanej przez użytkownika frazy. Szczegółowy opis niżej.
    • Combo kaskadowe – pozycje na liście rozwijanej uzależnione od wartości innego pola typu combo. Szczegółowy opis niżej.
    • RadioButton – przyciski umożliwiające wybór tylko jednej z wielu dostępnych opcji. Budowane dynamicznie na podstawie zapytania podanego przez użytkownika. Opis konfiguracji poniżej.
    • Separator – możliwość rozdzielenia pozycji na formularzu linią poziomą
    • Password – pole tekstowe, którego wartość przy zapisywaniu jest szyfrowana w bazie, a przy odczycie wartość prezentowana jest za pomocą symboli zastępczych *. W celu odczytania wartości zaszyfrowanej należy skorzystać z metody deszyfrowania (decrypt.aspx). Zastosowanie do zapisu newralgicznych danych w bazie np. haseł.
    • Image – pozwala na wyświetlanie oraz dodawanie plików graficznych (obrazków w formacie jpg)
    • FieldsetStart i FieldsetStop – to powiązane pola pozwalające na wyświetlanie ramki, za pomocą której możemy powiązać kontrolki w pewne grupy. Zastosowanie patrz niżej.
  • SPOSÓB FORMATOWANIA pozwala wymusić sposób formatowania np. dla kolumn typu DATA należy wpisać yyyy-MM-dd
  • WYRÓWNANIE – skorowidz wyboru wyrównania danych w komórce
  • MAX ILOŚĆ ZNAKÓW – pozwala dla typu kolumny Text na określenie ile znaków można wpisać do okienka, domyślnie brak ograniczeń, należy więc precyzyjnie zabezpieczyć aby użytkownik nie przekraczał wielkości dopuszczalnych
  • WARTOŚĆ DOMYŚLNA – jeżeli wprowadzono wartość domyślną to będzie ona proponowana do zapisu. Można wprowadzać zmienne aby zamiast stałej wartości wpisywane zostały informacje systemowe lub przypisane dla użytkownika:
    • @KTO – zmienna podstawia nazwę aktualnie zalogowanego użytkownika, zmienną należy przypisywać w transakcji INSERT do kolumny LOGIN
    • @ODDZIAL – zmienna zwraca wartość symbolu oddział przypisanego do zalogowanego użytkownika
    • @ROLASYS – zmienna zwraca wartość symbolu ROLI przypisanej do zalogowanego użytkownika
    • @MPK – zmienna zwraca wartość symbolu KOMÓRKI przypisanej do zalogowanego użytkownika
    • @MAGAZYN – zmienna zwraca wartość symbolu MAGAZYNU przypisanej do zalogowanego użytkownika
    • @DATA – zwraca datę systemową
    • @DATACZAS – zwraca datę i czas systemową
    • @EMPTY – podstawiana jest pusta wartość zastosowanie w trybie update, gdy nie chcemy aby użytkownik widział poprzednią wartość pola.
    • @NRIDODN – Session[„NRIDODN_LOGIN”].ToString()
    • @KTRHID – dane z pola KTRHID dla danego użytkownika
    • @MAIL – adres mailowy zalogowanego użytkownika
    • @FIRMA – identyfikator firmy zalogowanego użytkownika
    • @REFNO – identyfikator unikalny dla danego rekordu
    • @UNIQUEID – nadawanie unikalnego identyfikatora w formacie 32 znaków np. 450E175F-7969-4D65-B3B4-57ACD2986ACC
  • MULITLINE – ustawienie na TAK pozwala na wyświetlanie okienka do wpisywania dowolnie długich opisów, okienko jest wysokie na 2 wiersze
  • POGRUBIENIE – ustawienie na TAK powoduje, że etykieta opisu pola wyświetlana jest czcionką pogrubioną
  • BRAK EDYCJI INSERT – ustawienie na TAK pozwala na wyświetlenie informacji, ale brak jest możliwości wprowadzania zmian w transakcji w trybie dopisywanie
  • BRAK EDYCJI UPDATE- ustawienie na TAK pozwala na wyświetlenie informacji, ale brak jest możliwości wprowadzania zmian w transakcji w trybie modyfikacji
  • Zapytanie dla COMBO – w tym polu należy wpisać zapytanie do bazy zwracające wyniki dla pola Combo bądź parametry do definiowanego pola o określonym typie (np. DATA). W zapytaniu obsługiwane jest filtrowanie wg zmiennych systemowych:
    • @ODDZIAL – oddział odczytany z zalogowanego użytkownika
    • @MAGAZYN – magazyn odczytany z zalogowanego użytkownika
    • @ROLA – rola odczytana z zalogowanego użytkownika
    • @ROLASYS – rolasys odczytana z zalogowanego użytkownika
    • @MPK – MPK odczytane z zalogowanego użytkownika
    • @KTRHID – analityka kontrahenta (KTRHID) przypisana do użytkownika

np. SELECT NRIDWMS, ADRES FROM KNWMS WHERE AKTYWNE='1' AND ODDZIAL=@ODDZIAL AND MAGAZYN=@MAGAZYN ORDER BY ADRES

  UWAGA! Podczas konfiguracji pól w formularzu dopisania, pola, które maja przypisane zmienne, np. @MAGAZYN, @KTO itp. mozna oznaczyć jako niewidoczne, ale nalezy je przypisac koniecznie do zakładki, która jest aktywna, w przeciwnym wypadku dopisanie rekordu do bazy nie będzie możliwe – zostanie wyświetlony błąd.

 

 

Dostępne parametry dla pól

Parametry dla definiowanego pola wpisujemy w kolumnie PARAMETRY. Podając parametry można decydować o różnych właściwościach kontrolki. Jeżeli parametry nie zostaną zdefiniowane wówczas zostaną przyjęte  wartości domyślne.

Dostępne parametry przy definiowaniu pól:

  • typu DATA:
    • Mindate – wskazuje wartość minimalną daty np. mindate=-730 (ilość dni w stosunku do daty bieżącej)
    • Maxdate – wskazuje wartość maksymalna daty, np. Maxdate=365 (ilość dni w stosunku do daty bieżącej)

Parametry uruchomienia transakcji

Transakcja wymaga podania parametru identyfikującego jakie ustawienia mają zostać wykorzystane.

Jeżeli transakcja ma pracować w trybie dopisywania to parametr nazywa się kodtransakcji, jeżeli w trybie edycji to refno, który wskazuje jaki rodzaj konfiguracji ma być użyty, przykład uruchomienia:

dla aktualizacji zapisów (edycja – update)

role_sys/x_insert_update.aspx?refno=INS_KNASO

dla dopisania nowego rekordu (insert)

role_sys/x_insert_update.aspx?kodtransakcji=INS_KNASO

Opcjonalne parametry:

  • metoda=insert – zdefiniowanie parametru umożliwia wykorzystanie transakcji do kopiowania zapisanych juz rekordów w bazie, np. skopiowania kartoteki asortymentowej z przypisaniem do innego magazynu.
  • bufor=1 – udostępnieni przycisku BUFOR pozwalającego na zapis ACH=0

Jako ostatni parametr podajemy nazwę kolumny (pola) z bazy stanowiącego unikalny identyfikator dla danej tabeli np.

  • NRIDASN – dla KNASO
  • NRIDODN – dla KNKON
  • REFNO – dla dpmag

itp.

np. role_sys/q_insert_update.aspx?return=ZamknijOkno&kodtransakcji=46EEC766-67AA-4234-86AE-DA2FA883BA80&refno=6370665605853368

Parametr return, pozwala na wskazanie jaka transakcja ma być uruchomiona po zapisaniu zamian lub kliknięciu w przycisk ANULUJ. Ponadto parametr return ustawiony z wartością off (return=off) powoduje, że przycisk anuluj nie jest wyświetlany a po zapisaniu zamian ukrywany jest przycisk zapisz, transakcja nie przekierowuje na inną. Zastosowanie ma gdy chcemy z niej korzystać w oknie nad tabelą grid – okno dialogbox ustawione na TAK.

Przykład uruchomienia: role_sys/y_insert_update.aspx?refno=PAL_INS_KNASO&return=off&nridasn=

Parametr return z wartością ZamknijOkno spowoduje, że po zapisaniu danych na formularzu program zamknie aktualne okno, najczęściej wykorzystywane przy edycji w rejestrze x_grid.

Przykład uruchomienia:

rola_sys/j_insert_update.aspx?refno=WMS_INS_KNWMS&return=ZamknijOkno&nridwms=

Jeżeli parametr return odwołuje się do innej transakcji wóczas wymagane jest zastosowanie zamienników (zamiennych znaków), które nie mogą być przekazane wprost w parametrze. Są to: ?, =, &

Znaki należy zastępować wg poniżej zasady:

znak ? zastępujemy *

znak = zastępujemy |

znak & zastępujemy $

przykład zastosowania

kodtransakcji=INT_INS_DNPRO&return=/role_sys/x_grid.aspx*refno|INT_SS_DNPRO&refno=

w efekcie program uruchomi nastęującą transakcje:

/role_sys/x_grid.aspx?refno=INT_SS_DNPRO

Parametr readonly

Uruchamiając transakcję z parametrem  readonly=1 spowodujemy, że wszystkie kontrolki zostaną ustawione jako niedostępne do edycji, przycisk ZAPISZ oraz BUFOR będzie wyłączony (ukryty) a dostępny będzie tylko przycisk Anuluj.

Parametr leftpanelwidth

Za pomocą parametru leftpanelwidth możemy ustawiać szerokość lewego panelu z zakładkami (analogicznie do transakcji g_grid). Uruchamiając transakcje z parametrem leftpanelwidth=0 powodujemy, że lewy panel ma szerokość 0 pikseli więc jest niewidoczny.

Parametr insertforce

Wymusza wczytanie pustego formulaża podczas edycji. Insertforce=1 – generuje nowe refno dla klucza domyslnego, insertforce=2 – do klucza domyslnego przekazuje refno zaznaczonego wiersza.

Parametr codesql

obsluga parametru codesql – pozwala na wywołanie wskazanego UID z tabeli _code_sql i wykonanie zawartych tam poleceń SQL. Wywołanie następuje po zapisaniu formularza.

przykład:

role_sys/j_insert_update.aspx?codesql=D3C4DC8E-6888-4F1C-8598-B1775EB57C66&kodtransakcji=MMS_INS_DMCMS&return=ZamknijOkno&refno=

gdzie D3C4DC8E-6888-4F1C-8598-B1775EB57C66 to:

DECLARE @REF_NO bigint
SET @REF_NO={0}

INSERT INTO _historia (PRX, LOGIN, REFNO, TYTUL, NUMERDOK, MAGAZYN, MPK, UWAGI, OPIS)
VALUES
(’MMS’,@KTO, @REF_NO, 'Edycja formularza’, 'MMS_INS_DMCMS’, @MAGAZYN, @MPK, 'uwagi’,’opis’)

W efekcie po zapisaniu formularza, wykonane zostną polecenia SQL, w tym wypadku zapis w tabeli _historia

Parametry przekazujące wartość

Lista parametrów może zawierać dowolne parametry, które mogą przekazywać wartości. Wartości podane są podstawiane pod kontrolkę typu tekstowego jako wartość domyślną.

Przykładowo, chcemy aby transakcja automatycznie miała podstawioną wartość dla pola MAGAZYN jako SS. Uruchamiając transakcję dodajemy parametr zaczynający się od znaku podkreślenia _ + nazwa pola dla którego chcemy przypisać wartość. Parametr podstawiający wartość SS dla pola magazyn nazywać się musi _magazyn.

role_sys/y_insert_update.aspx?refno=PAL_INS_KNASO&_magazyn=SS&return=off&nridasn=

Rozwiązanie można połączyć z transakcją x_grid, gdzie wartość parametru będzie odczytywana z dowolnej kolumny tabeli.

http://www.programmagazyn.pl/studio-system/transakcje/role_sys/x_grid-aspx/x_grid-aspx-toolbar-menu/

 

 Przekierowanie na inną transakcję

Klikając na przycisk ZAPISZ po prawidłowym zapisaniu danych, program wraca do miejsca z którego została wywołana transakcja y_insert_update.aspx. Wdrożeniowiec może jednak zdecydować, że po zapisaniu zamian należy uruchomić wskazaną konkretną transakcję. W tym celu wykorzystując parametr return wskazujemy co ma być uruchomione.

Przykład uruchomienia: role_sys/y_insert_update.aspx?refno=PAL_INS_KNASO&return=x_grid.aspx?refno=PAL_DOST&nridasn=

po zapisaniu program przekieruje na transakcje x_grid.aspx?refno=PAL_DOST

Klikając na przycisk ZAPISZ po prawidłowym zapisaniu bądź aktualizacji danych może zostać wywołana dowolna transakcja, np. x_mail.aspx. Ponieważ transakcja x_mail w niektórych wypadkach wymaga podania wielu parametrów, a system musi rozróżnić które parametry dotyczą transakcji x_mail, a które transakcji insert_update parametry dotyczące transakcji x_mail należy podać po gwiazdce (*), znak & zastąpić znakiem $, natomiast znak = zastąpić znakiem |.

Np. role_sys/j_insert_update?kodtransakcji=INS_UWA&leftpanelwidth=200&_UWAGI=Aktualizacja &return=/role_sys/x_mail.aspx*kodeml|TEST$connection|CustomConnectionString$tab|TEST$kol|MAIL$id|NRIDODN$refno|@REFNO&refno=

W efekcie po zaktualizowaniu wartości pola UWAGI i uruchomieniu ZAPISZ zostanie wywołana transakcja:

role_sys/x_mail.aspx?kodeml=TEST&connection=CustomConnectionString&tab=TEST&kol=MAIL&id=NRIDODN&refno=

x_mail

Przycisk BUFOR

Możemy dodać przycisk BUFOR wyświetlany pomiędzy przyciskiem ZAPISZ i ANULUJ, który spowoduje zapis danych formularza z ACH=0 bez kontroli poprawności danych.

W tym celu należy uruchamiając transakcję podać parametr bufor=1

Przykład uruchomienia dla polecenia DOPISZ (w trybie edycji nie jest zalecane stosowanie polecenia do bufora)

kodtransakcji=INS_KNKON&bufor=1&nridasn=

Przycisk Zapisz

Uruchamiając transakcję domyślnie użytkownik ma dostęp do przycisku umożliwiającego zapisanie zamian, możemy jednak przycisk wyłączyć (gdy chcemy dać użytkownikowi możliwość tylko zapisu i automatycznego wysłania powiadomienia e-mail) uruchamiając z parametrem zapisz=0.

np. j_insert_update.aspx?kodtransakcji=EWI_INS_KNKON&style=text-align:left;&mail=1&zapisz=0&mpk=03&nridodn=

Przycisk Zapisz i wyślij

Możemy włączyć dodatkowe polecenie Zapisz i wyślij (wysyłanie wiadomości-mail) uruchamiając przekazujemy parametr mail=1

np. j_insert_update.aspx?kodtransakcji=EWI_INS_KNKON&style=text-align:left;&mail=1&zapisz=0&mpk=03&nridodn=

Przycisk Anuluj

Mamy możliwość wyłączenia przycisku anuluj używając parametru anuluj=0. W każdym innym przypadku przycisk „Anuluj” będzie widoczny.

Wysyłanie powiadomień e-mail

Możemy włączyć i skonfigurować tryb zapisywania powiadomień e-mail, które są automatycznie generowane w momencie zapisu za pomocą formularza insert_update.

Powiadomienia e-mail polegają na zapisaniu w tabeli dpuwa dokumentów do wysyłki ze znacznikiem ACH=S, PRX=EML, TYPDOK=EML

W celu włączenia takiej funkcjonalności należy uruchamiając transakcję podać następujące parametry:

  • mail=1 – wyświetla przycisk ZAPISZ I WYŚLIJ
  • zapisz=0 – aby uniemożliwić użytkownikowi tylko zwykły zapis danych

parametry pozwalające określić grupę adresatów powiadomień

  • projekt=XXXX – gdzie XXXX to numer projektu, zostaną powiadomieni użytkownicy przypisani do danego projektu
  • mpk=YYY – filtrowanie użytkowników programu (tabela_users) wg kolumny MPK
  • magazyn=YYY – filtrowanie użytkowników programu (tabela_users) wg kolumny MAGAZYN
  • oddzial=YYY – filtrowanie użytkowników programu (tabela_users) wg kolumny ODDZIAL

np. j_insert_update.aspx?kodtransakcji=EWI_INS_KNKON&style=text-align:left;&mail=1&zapisz=0&mpk=03&nridodn=

powyższe polecenie pozwala użytkownikowi zapisać dane i wysyła (zapisuje) powiadomienie e-mail dla użytkowników platformy StudioSystem któzy mają przypisany symbol komórki (MPK) jako 03.

Obsługa plików graficznych – typ Image

Dla dowolnego pola z zapytania można ustawić typ danych jako Image, w efekcie program będzie wyświetlał oraz pozwalał na zapisanie pliku graficznego jpg.

Przykładowo ustawiamy dla pola mail typ kolumny jako Image, w kolumnie sposób formatowania podajemy dowolne polecenie stylu HTML formatujące obrazek, domyślnie jest to określenie jego rozmiaru (width:100px; height: 100px;)

W efekcie przy edycji formularza mamy wyświetlone pole w rozmiarze 100 pikseli na 100,

Jeżeli plik nie istnieje to wyświetla się pusty element, poniżej którego może się wyświetlać poleceni pozwalające na dodawanie plików (Wybierz plik). Po kliknięciu na przycisk wyświetli się standardowe okno systemu Windows pozwalające na przeszukiwanie lokalnego komputera i wybranie pliku obrazku do wgrania (format jpg). Zapisanie danych automatycznie zapisuje także obrazek.

Dodawanie plików

Dostęp do funkcji dodawania plików (lub zamiany) zależy od ustawienia parametrów

  • brak edycji przy update
  • brak edycji przy insert

Po ustawieniu braku dostępu do edycji, polecenie Wybierz plik nie jest dostępne.

Ustawienie rozmiaru obrazka

Jeżeli w formatowaniu obrazka nie podamy rozmiaru pliku to będzie wyświetlany oryginalny rozmiar pliku, możemy jednak określić jaki rozmiar (kolumna SPOSÓB FORMATOWANIA) chcemy wyświetlać podając szerokość i wysokość, zmieniając na width:200px; height: 200px; spowodujemy, ze obrazek będzie większy.

 Techniczne rozwiązanie

Pliki są zapisywane w folderze App_Fot\numer referecyjny\nazwa pola

Przykładowo, jeżeli w naszej konfiguracji ustawiamy obsługę obrazka dla pola o nazwie EMAIL to zapis obrazka dla rekordu z numerem referencyjnym 3033155339720 zostanie zapisany w następujący sposób:

App_Fot\3033155339720\email.jpg

Uwaga: Aplikacja wymaga ustawienia w systemie plików NTFS na serwerze pełnych praw do zapisu i modyfikacji dla użytkownika SYSTEM

folder App_Fot

Kaskadowe pole typu Combo

Kaskadowe pole typu Combo jest to pole Combo, którego wartości na liście rozwijanej uzależnione są od innego pola typu Combo.

Aby zdefiniować kaskadowe pole typu combo musimy zacząć od zdefiniowania pola combo, od którego będziemy się później uzależniać. Definiujemy je zgodnie z opisem tworzenia pola combo powyżej. Następnym korkiem będzie stworzenie pola uzależnionego. Jako typ kolumny wybieramy Combo, w kolumnie zapytanie do combo wpisujemy parametr TRUE, a w kolumnie parametry podajemy:

  • ssparentcombo – nazwa kolumny, od której jesteśmy uzależnieni np. ssparentcombo=”NRIDODN”
  • ssselect – zapytanie do naszego combo bez słowa kluczowego SELECT. W zapytaniu wymagana jest klauzula WHERE, która będzie miała co najmniej jeden warunek nazwa_kolumny_od_której_jesteśmy_uzależnieni=$$SearchString (W przypadku przyrównywania wartości tekstowych $$SearchString musi być w pojedynczych cudzysłowach – '$$SearchString’). Przykład parametru ssselect:
    ssselect=”UPPER(NRIDCRM) , NAZWISKO FROM kncrm WHERE (PRX = 'KON’) AND (AKTYWNE = 1) AND NRIDODN=$$SearchString ORDER BY NAZWISKO”
Nazwa kolumnyTytułTyp kolumnyZapytanie dla ComboParametry
NRIDODNKontrahentComboSELECT UPPER(NRIDODN), SKROCO FROM knkon WHERE (AKTYWNE = 1) ORDER BY SKROCO 
NRIDKONOsoba kontaktowaComboTRUEssparentcombo=”NRIDODN”
ssselect=”UPPER(NRIDCRM) , NAZWISKO FROM kncrm WHERE (PRX = 'KON’) AND (AKTYWNE = 1) AND NRIDODN=$$SearchString ORDER BY NAZWISKO”

ComboFly

Wyświetlanie list wyboru za pomocą COMBO jest przydatne, gdy użytkownik wybiera z listy kilku, kilkudziesięciu pozycji. W przypadku konieczności odczytywania danych z dużych tabel (tysiące, setki tysięcy rekordów) wybór taki nie jest możliwy za pomocą zwykłego COMBO. Problem ten rozwiązuje zastosowanie pola typu ComboFly.

Wygląda i działa podobnie do zwykłego COMBO, jednak zwraca określoną i ograniczoną ilość wierszy wyniku w zależności od tego co jako wartość szukaną wpisze użytkownik.

Przykład zastosowania

Formularz kartoteki magazynowej wymaga podania w celu powiązania z kartoteką kontrahenta, dostawcy i producenta. W celu konfiguracji dodajemy 3 pola typu ComboFly

W kolumnie ZAPYTANIE DLA COMBO wpisujemy zapytanie SQL które będzie tworzyć listę wyników, np.

TOP(10) upper(NRIDODN), (SKROCO + ' (' + MIEJSCOWOSC + ')') AS SKROCO FROM knkon WHERE SKROCO like '$SearchString%' AND AKTYWNE = 1 AND ACH <> 'X' AND ODDZIAL=@ODDZIAL ORDER BY SKROCO

Należy pamiętać, aby określić maksymalną ilość wierszy jaka ma być zwraca na liście poprzez klauzulę TOP(n), przykładowo chcemy zezwalać na zwrot wyników TOP(10).

Wynik filtrowany jest wg kolumny SKROCO jako zawiera (zaczyna się) od wpisanej przez użytkownika frazy (SKROCO like '$$SearchString%’), zmienna $$SearchString zostaje zastąpiona wartościami wpisywanymi przez użytkownika w polu ComboFly.

W konfiguracji należy też wpisać parametry w kolumnie PARAMETRY

  • ssminLegth – określa po ilu znakach wpisanych przez użytkownika rozpoczyna się szukanie wyników, jeżeli podamy wartość 0 lub 1 oznacza że pierwsza litera uruchamia wyszukiwanie.
  • ssplaceHolder – określa tekst jaki ma być wyświetlony na zasadzie informacji dla użytkownika co ma wpisać, aby odszukać wyniki.
  • sstext – określa zapytanie które wykonywane jest w sytuacji w trybie edycji, pozwala odczytać wartość wcześniej zapisaną w bazie i podstawienie tej wartości do kontrolki ComboFly. Zapytanie powinno zaczynać się TOP(1) aby wynik zwracał 1 rekord, następnie kolumna będą identyfikatorem, tekst do wyświetlenia oraz warunek filtrowania ze zmienną $$SearchString.

np.

ssminLength='0' ssplaceHolder='Nazwa kontrahenta' sstext='top(1) nridodn, skroco from knkon where nridodn=$SearchString'

lub

ssminLength='1' ssplaceHolder='Nazwa dostawcy' sstext="top(1) nridodn, (SKROCO + ' (' + MIEJSCOWOSC + ')') AS skroco from knkon where nridodn=$SearchString"

efekcie

combofly insert update
  • ssselect – zapytanie tworzące listę wyników np.
    ssselect="KOD, OPIS FROM x_skorowidze WHERE PRX='STA' AND AKTYWNE='1' AND OPIS LIKE '%$SearchString%'"
  • sstext – zapytanie pozwalające wczytać dane podczas edycji – np.
    sstext="KOD, OPIS FROM x_skorowidze WHERE PRX='STA' AND AKTYWNE='1' AND KOD='$SearchString'"
  • ssplaceholder – parametr opcjonalny – placeholder kontrolki np
    ssplaceHolder="wpisz 2 znaki, aby rozpocząć szukanie"
  • ssminlength – parametr opcjonalny – liczba określająca po ilu znakach rozpocząć wyszukiwanie, w przypadku jego braku domyślna wartość to 2, np.
    ssminlength="3"
  • ssconnectionstring – parametr opcjonalny pozwalający wskazać jako źródło danych inne połączenie niż domyślna baza. Można wykorzystać, aby pobrać dane z bazy CUSTOM np. ssconnectionstring=customConnectionString

RadioButton

W konfiguracji insert-update w kolumne Typ kolumny należy wybrać RadioButton.
Następnie w kolumnie Zapytanie dla Combo należy zdefiniować zapytanie na podstawie którego budowane będą poszczególne opcje kontrolki.
np.

SELECT KOD, OPIS FROM x_skorowidze WHERE AKTYWNE = 1 AND PRX = 'STA' AND KOD1='CRMZD'

W kolumnie Parametry można opcjonalnie zdefiniować układ elementów po przez parametr sshorizontal

sshorizontal="1"

Z takim parametrem kolejne opcje układać będą się obok siebie (w poziomie). Bez tego parametru, domyślnie, budowane są w pionie. Kontrolki (PRIORYTET i DOŚWIADCZENIE).

FieldsetStart i FieldsetStop

Wybrane kontrolki możemy na formularzu wyświetlać w ramkach, aby użytkownikowi pokazać pewne dane w grupach.

W edycji formularza ustawiamy

Dla pola fieldsetStart informacja zapisana jako tytuł zostanie wykorzystane jako tytuł ramki

Możemy sekcje formatować, jeżeli w kolumnie PARAMERTY podamy w jaki sposób sekcja ma być wyświetlana (wpisujemy dla definicji FieldSetStart)

style=”width:400px;margin:5px;padding:5px; height:200px; float:left;”

Styl pola tekstowego

Pola tekstowe można swobodnie personalizować (zmienić ich wygląd) za pomocą standardowych poleceń CSS. W tym celu dla kontrolki typu TEXT w kolumnie PARAMETRY wpisujemy parametr o nazwie style, poszczególne wartości rozdzielamy jednak nie znakiem średnika jak to się robi w CSS, ale za pomocą znaku |. Znak średnika używamy jako separator poszczególnych parametrów.

Przykład zastosowania

Formularz dopisywania kartoteki zawiera kontrolki bez formatowania.

Pole indeksu chcemy aby było wyświetlane większą czcionką np. o rozmiarze 30 pikseli. W kolumnie parametry wpisujemy:

style=font-size:30px

W efekcie otrzymujemy następującą zmianę

Następnie chcemy, aby kolor tekstu był wyświetlany jako niebieski

style=font-size:30px|color:blue

Styl wiersza ssstyle

Domyślnie każdy wiersz ma szerokość 100% w związku z czym każda kontrolka znajduje się w jednym wierszu. Wykorzystując kolumnę PARAMETRY możemy za pomocą parametru ssstyle przekazać sposób formatowania danego wiersza. Dzięki czemu możemy spowodować, aby kontrolki były wyświetlane obok siebie.

W kolumnie parametry wpisujemy: ssstyle=width:400px, 

W efekcie

lub

ssstyle=width: 350px

[siblings]