logo-softwarestudio-2020-600

x_run.aspx

Transakcja pozwala na uruchamianie wybranej innej transakcji dodając do niej wartości zdefiniowanych parametrów przekazanych przez użytkownika.

Uruchamianie

Wywołanie transakcji x_run.aspx wymaga podania parametrów: kod, run.

Parametry params i refno są opcjonalne ich występowanie zależy od tego co ma być docelowo uruchomione.

Parametry

Podajemy parametry: kod=CPS1&run=../role_sys/x_cecha.aspx&params=prx|CPS1$caption|Plan sprzedaży&refno=

kod

unikalny symbol nazwy skorowidza RUN który definiuje kontrolki do wyświetlenia

run

wskazuje jaka transakcja ma być uruchomiona

params

przekazuje stałe parametry do uruchamianej transakcji „run”

wartości parametrów należy zastosować znaki, które będą zamienione: znak | zostanie zmieniony na =, znak $ zostanie zamieniony na &, znak * zostanie zamieniony na $

refno

przekazuje unikalny identyfikator wiersza tabeli dla którego uruchamiamy transakcję.

 style

przekazuje formatowanie dla okna z kontrolkami, domyślne ustawienia mogą być dowolnie zmienione, np. ustawiając położenie, rozmiar itp.

 margin:30px;
 margin-left:25%;
 background-color:#DFEDFF;
 border-style:solid;
 border-width:1px;
 border-color:lightsteelblue;
 -webkit-border-radius: 4px;
 -moz-border-radius: 4px;
 border-radius: 4px;
 max-width:700px;
 min-width:410px;
 width:50%;

możemy zmienić układ uruchamiając transakcję z parametrem np.

style=left:15%;right:15%; margin-left:0px; min-width:800px;position:relative;

script

Parametry script, scriptonload i scriptonready – umożliwiają dodanie własnego skryptu do transakcji j_insert_update.

role_sys/x_run.aspx?kod=FOLDERS&script=skrypt_do_x_run&scriptonready=MojaOnReady()&run=../role_adm/user_cfg.aspx

Zawartość formularza

Zawartość formularza, czyli kontrolki jakie pojawić się na nim mają definiujemy za pomocą skorowidza RUN

gdzie:

  • KOD – unikalny identyfikator przekazywany przy uruchamianiu transakcji x_run.aspx
  • RODZAJ KONTROLKI – określa rodzaj kontrolki umieszczanej na formularzu. Domyślnie TEKST pozwalający na wpisywanie dowolnego tekstu do parametru
    • TEKST – dowolna wartość
    • LIKE – dowolna wartość używana jako wzorzec. Wyszukiwane są te rekordy, które pasują do wzorca. Opis konfiguracji w rozdziale „Wyszukiwarka, a pole typu LIKE” poniżej
    • NUMBER – wartości liczbowe – dokładny opis korzystania z pól typu NUMBER w osobnym rozdziale, „Wyszukiwarka, a pole typu NUMBER”, poniżej
    • COMBO – wybór z listy, dla krótkich list słownikowych
    • MULTISELECT- wybór z listy wielu wartości – konfiguracja taka sama jak pola typu COMBO (wyszukiwanie na zasadzie WHERE kolumna IN (’wartosc1′, 'wartosc2′, 'wartosc2′) )
    • COMBOFLY – wybór z listy wymaga wpisania poszukiwanej frazy, zwraca ograniczoną listę wyboru, ale odwołuje się do dowolnie dużej tabeli w bazie, przykład wybór asortymentu, kontrahenta.
    • DATA – wybór z kalendarza
    • ODDO – wybór dat z przedziału
    • CHECKBOX – pole typu checkbox (null/true/false) – pole checkbox domyślnie zamalowane jest kwadracikiem, co zaznaczone, że nie chcemy filtrować według tego pola, gdy zaznaczymy „ptaszka” filtrujemy rekordy z wartością ustawioną na true, gdy pole nie jest zaznaczone (jest puste), filtrujemy rekordy z wartością ustawioną na false
  • OPIS – tekst wyświetlany na formularzu przy kontrolce
  • ZAPYTANIE DLA COMBO – wymaga podania zapytania za pomocą którego utworzona zostanie lista wyboru, np. dla COMBO: KOD, OPIS FROM x_skorowidze WHERE PRX=’RSL’ AND AKTYWNE=’1′ ORDER BY OPIS a dla COMBOFLY: TOP(10) NRIDASN, INDEKS + ’ ’ + NAZWAAS AS IND FROM knaso WHERE INDEKS + NAZWAAS LIKE '%$$SearchString%’ ORDER BY INDEKS
  • NAZWA PARAMETRU – pod jaką nazwą wartość parametru ma być przekazana do transakcji docelowej
  • MAX ILOŚĆ ZNAKÓW – określamy z ilu znaków może składać się wartość parametru, ustawienie 4 powoduje że użytkownik  będzie mógł wpisać do 4 znaków.
  • PARAMETRY – możliwość dodania innych parametrów do kontrolki, np. wpisując wymagane=’1′ spowodujemy że uruchomienie transakcji będzie możliwe jeżeli kontrolka został wypełniona. Parametr sswidth pozwala określić szerokość kontrolki, a dla typu DATA mindate=”-365″ maxdate=”0″ pozwalają ustalić przedział czasowy możliwy do wybrania.

W efekcie takiej konfiguracji po uruchomieniu transakcji x_run.aspx będziemy mieć następujący formularz:

x run 300x206 program magazynowy x run.aspx

Wiele parametrów = wiele kontrolek

Definiując w skorowidzu RUN wiele pozycji możemy powodować, że na formularzu będzie wiele kontrolek przekazujących wiele parametrów. Przykładowo wiele wierszy w tym jeden typu COMBO.

x_run kontrolki

na formularzu będziemy mieć wiele kontrolek do wpisania:

Wyszukiwarka, a pole typu NUMBER

Kontrolka typu NUMBER umożliwia wyszukiwanie wartości numerycznych. W zależności od konfiguracji możemy wyszukiwać konkretne wartości, a także przedziały ograniczone z jednej lub z obu storn.
W celu konfiguracji należy wypełnić kolumnę Rodzaj kontrolki oraz podać odpowiednie Parametry

  • Rodzaj kontrolki – w zależności od wartości tej kolumny będziemy wyszukiwać przedziałów liczb lub konkretnych wartości
    • NUMBER – wyszukiwanie wartości równych (=)
    • NUMBER> – wyszukiwanie wartości większych (>)
    • NUMBER< – wyszukiwanie wartości mniejszych (<)
    • NUMBER>= – wyszukiwanie wartości większych lub równych (>=)
    • NUMBER<= – wyszukiwanie wartości mniejszych lub równych (<=)
    • NUMBER<> – wyszukiwanie wartości różnych (<>)
    • NUMBER>< – wyszukiwanie z przedziału „od – do”. W przypadku, gdy wypełniona zostanie tylko kontrolka „od”, a „do” zostanie pusta, wyszukiwanie zamieniane jest na „większe równe” (>=) podanej wartości. W przypadku, gdy wypełniona zostanie tylko kontrolka „do”, a „od” zostanie pusta, wyszukiwanie zamieniane jest na „mniejsze równe” (<=) podanej wartości.
  • Parametry
    • digits – parametr określający liczbę cyfr całości ile można wpisać – w przypadku braku parametru, domyślnie zostanie przyjęte 5 – np. digits=”3″
    • decimaldigits – parametr określający liczbę cyfr po przecinku ile można wpisać – w przypadku braku parametru, domyślnie zostanie przyjęte 0 – np decimaldigits=”2″
    • min – parametr określający minimalną wartość jaką można wpisać – w przypadku braku parametru, nie będzie minimalnej wartości – np. min=”-100″
    • max – parametr określający maksymalną wartość jaką można wpisać – w przypadku braku parametru, nie będzie maksymalnej wartości – np. max=”999″

Wyszukiwarka, a pole typu LIKE

Aby wyszukanie odbywało się za pomocą wzorca kolumna Rodzaj kontrolki musi przyjmować jedną z trzech wartości:

  • LIKE – wyszukane zostaną rekordy, które zawierają dany ciąg znaków (’%tekst%’)
  • LIKEL – wyszukane zostaną rekordy, które kończą się podanym ciągiem znaków (’%tekst’)
  • LIKER – wyszukane zostaną rekordy, które zaczynają się podanym ciągiem znaków (’tekst%’)

Reszta konfiguracji taka sama jak w przypadku kontrolki typu TEKST

Wyszukiwarka, a pole typu ODDO

Ustawienie pola Rodzaj kontrolki na ODDO pozwala na wybranie przedziału dat. Jest to alternatywna rozszerzona opcja względem zwykłego wyboru daty który pozwala tylko na wybór konkretnej daty. Formularz wyświetla dwa pola. Wybranie daty tylko w jednym z nich powoduje filtrowanie od albo do tej daty, zależnie od wybranego pola.

  • Parametry
    • mindate=”X”
    • maxdate=”X”

    Oba jako argument przyjmują liczbę dni do wyświetlenia w kalendarzu. Liczba ujemna oznacza dni wstecz.

Wybór z listy COMBO

Użytkownik może nie tylko wpisywać dane tekstowe, ale możemy ograniczyć mu do listy wyboru za pomocą kontrolki COMBO.

W tym celu konfigurując pozycję słownika RUN wpisujemy w kolumnie Rodzaj Kontrolki wartość COMBO. Program umieści zamiast zwykłego pola do edycji listę rozwijaną na podstawie zapytania zwracającego listę wyboru.

Wartości listy mogą być odczytywane z bazy SQL lub ustalone w zapytaniu, np. chcąc dać wybór lat możemy w kolumnie Zapytanie dla COMBO wpisać:

* FROM (VALUES(‚2013′,’2013′),(‚2014′,’2014′),(‚2015′,’2015′),(‚2016′,’2016′)) AS tbl(id, opis)

x run combo konfiguracja 300x217 program magazynowy x run.aspx

W efekcie lista wyboru pozwoli użytkownikowi wskazać wartości lat od 2013 do 2016.

x run combo lista 300x217 program magazynowy x run.aspx

Przykład wykorzystania

Wyświetlenie listy folderów do ustawień uprawnień użytkownika

Skorowidz RUN zawiera pozycję z kodem FOLDERS, która ustawiona jest jako COMBO i zawiera następujące zapytanie:

UPPER(folder) AS FOLDER, UPPER(folder) AS FOLDER FROM [x_pliki] group by folder 

W efekcie transakcja pozwala na wybór folderu którego uprawnienia chcemy edytować. Samo wywołanie transakcji jest następujące:

role_sys/x_run.aspx?kod=FOLDERS&run=../role_adm/user_cfg.aspx

Pola typu combo, a baza custom

Aby dane w kontrolkach combo, combofly i multiselect pochodziły z innej bazy niż baza domyślna, w kolumnie parametry należy dodać ssconnectio=”nazwa_bazy” np. ssconnection=”customConnectionString”

Przykład wykorzystania z x_grid.aspx

Lista opcji filtrowania rejestru reklamacji, uruchomienie transakcji x_grid.aspx

Pozycja zapytaniami typu TEKST i COMBO

KOD, OPIS FROM x_skorowidze WHERE PRX=’RSL’ AND AKTYWNE=’1′ ORDER BY OPIS

Nie ustawiamy pozycji jako wymagane, a wiec kolumna Parametry zostaje pusta, tak aby użytkownik mógł wpisać jeden lub więcej wartości.

uruchamiamy transakcję x_run.aspx?kod=DPREK&run=../role_sys/x_grid.aspx&params=widok|dprek3

W efekcie jak użytkownik wpisze czego szuka program uruchomi transakcję docelową ../role_sys/x_grid.aspx?widok|dprek3

do której doda parametry w zależności od tego co wybrał użytkownik, np. otrzymamy rejestr reklamacji dla kanału 1

x_run x_grid

Przykład wyboru daty dla rejestru GRID

Wyświetlając rejestr filtrowany wg dat program zawsze ustawia przedział wg zdefiniowanego przez administratora parametru ilości dni wstecz. Użytkownik może zmienić datę w rejestrze albo przed jego wyświetleniem za pomocą ustawionej transakcji x_run wskazać daty od kiedy i do kiedy mają być wyświetlane dokumenty.

W tym celu należy w skorowidzu X_RUN dodać pozycję np.

  • RODZAJ KONTROLKI – DATA
  • OPIS – DATA OD
  • NAZWA PARAMETRY – DATAOD
  • PARAMETRY – mindate=”-365″ maxdate=”0″ sswidth=’200′

W efekcie

x_run x_grid filtr wg dat
x_grid filtr wg dat

Aby określić datę do kiedy należy dodać kolejną pozycję ustawiając ją w następujący sposób np.:

  • RODZAJ KONTROLKI – DATA
  • OPIS – DATA DO
  • NAZWA PARAMETRY – DATADO
  • PARAMETRY – mindate=”-365″ maxdate=”120″ sswidth=’200′

Przekierowanie na inną transakcję z odczytaniem danych

Transakcję x_run.aspx można wykorzystać do przekierowania na inną transakcję bez pytania użytkownika o dodatkowe parametry, za to można odczytać dowolną informację z dowolnej tabeli i taką informację przekazać do transakcji wynikowej.

Brzmi to skomplikowanie, ale zastosowanie jest następujące. W rejestrze dokumentów użytkownik w tabeli uruchamiając transakcję przekazuje identyfikator wiersza w postaci numeru referencyjnego (refno). Docelowa transakcja jednak oczekuje przekazania innej informacji (innego identyfikatora), która zapisana jest w innej kolumnie w tabeli. Za pomocą transakcji x_run.aspx możemy odczytać taką informację z bazy SQL i przekazać ją do transakcji którą chcemy uruchomić.

Parametry wymagane

  • run – parametr wskazuje ścieżkę i nazwę transakcji do uruchomienia
  • param – parametr przekazuje stałe wartości do docelowej transakcji, należy pamiętać, aby zamiast znaku = stosować znak |, a za miast znaku & stosować znak $
  • tab – parametr określający nazwę tabeli z której ma być odczytana wartość
  • kol – nazwa kolumny z tabeli przekazanej w parametrze tab
  • id – nazwa kolumny będącą identyfikatorem wiersza tabeli, zwykle refno
  • refno – parametr przekazuje wartość jaka ma być odszukana w kolumnie przekazanej jako id

Parametry opcjonalne

  • order – pozwala określić warunek sortowania poszukiwanej informacji, znajduje zastosowanie, gdy w tabeli (tab) znajduje się wiele rekordów – kolumna id nie zwraca unikalnego 1 rekordu. Wówczas możemy chcieć otrzymać wartość z rekordu ostatnio dodanego do tabeli. W takim wypadku jako wartość parametru podajemy kiedy desc. Przykład uruchomienia:
    /role_sys/x_run.aspx?run=/rdlc/wydruk_refno.aspx&param=save|pdf$btnclose|1$ean|drrek$typdok|wysylka_dostawca$refno|&tab=drrek&kol=REFNO_DRREK&id=refno&order=kiedy desc&refno=;

Przykład zastosowania

W rejestrze reklamacji chcemy uruchomić wydruk zbiorczy, dla któeego pozycje są odczytywane wg kolumny NRWEWNETRZNY. W tym celu skorzystamy z transakcji x_run.aspx w następujący sposób

role_sys/x_run.aspx?run=/rdlc/wydruk_refno.aspx&param=typdok|Wysyłka_dostawca$refno|&tab=dprek&kol=nrwewnetrzny&id=refno&refno=

W efekcie na ekranie użytkownika zostanie wyświetlona transakcja /rdlc/wydruk_refno.aspx?typdok=Wysyłka_dostawca&refno=

gdzie na końcu zapytania podstawiona zostanie wartość odczytana z kolumny nrwewnetrzny z tabeli dprek.

Parametr IFF

Uruchamiając transakcje x_run.aspx z parametrem iff wymuszamy działanie uruchamiające transakcję wynikającą z wyniku zapytania SQL do bazy.

Konfiguracja

W skorowidzu IIF ustawiamy dowolny kod, który będzie przekazany jako wartość parametru IIF, np, kod 001.

Dla tego kodu w kolumnie UWAGI wpisujemy zapytanie SQL, które zwróci jako wartość transakcję do uruchomienia.

Przykład zapytania:

SELECT TOP(1)  CASE  WHEN PRX='PRA' THEN '/role_sys/j_insert_update.aspx?kod=abc'  WHEN PRX='DOS' THEN '/role_sys/j_insert_update.aspx?kod=xyz'  ELSE '/role_sys/komunikat.aspx?kod=XXX'  END  FROM [knkon] WHERE NRIDODN=@REFNO

Powyższe zapytanie sprawdza wartość zapisaną w kolumnie PRX i w zależności od wyniku zostanie zwrócona inna transakcja do uruchomienia.

Zmienna @REFNO zostanie zastąpiona wartością parametru refno.

Inne zmienne do wykorzystania:

  • @MAGAZYN
  • @ODDZIAL
  • @MPK
  • @KTO – w zapytaniu należy parametr zapisać z apostrofami – '@KTO’

przykład 2:

SELECT TOP(1)  CASE  WHEN PRX='PRA' THEN '/role_sys/j_insert_update.aspx?kod=abc&refno=@REFNO'  WHEN PRX='DOS' THEN '/role_sys/j_insert_update.aspx?kod=xyz'  ELSE '/role_sys/komunikat.aspx?kod=XXX'  END  FROM [knkon] WHERE NRIDODN=@REFNO and oddzial=@ODDZIAL

Uruchomienie

Jako parametr uruchomienia podajemy kod skorowidza iif

np. uruchamiajac z grida

role_sys/x_run.aspx?iif=001&refno=

Atrybut enterrun

Dla kontrolek typu COMBO, COMBOFLY oraz TEKST możemy dodac atrybut enterrun=’1′, dzięki czemu wprowadzamy możliwość automatycznego wywołania polecenia URUCHOM bez konieczności klikania myszką w przycisk.

Atrybut dodajemy w polu PARAMETRY

W efekcie po wybraniu pozycji z kontrolki COMBO, COMBOFLY zostanie uruchomiona docelowa strona, w przypadku kontrolki typu TEKST uruchomienie następuje po kliknięciu w klawisz ENTER.