logo-softwarestudio-2020-600

_code_sql

Wykonywanie zapytań do bazy danych za pomocą skryptów JS lub jako wyniki podstawione dla kontrolki typu COMBO (WebCombo oraz WebComboFly) wymaga zdefiniowania zapytań po stronie bazy danych w tabeli _code_sql. Z poziomu modułu konfiguracja program udostępnia opcje przeglądania, edycji i dopisywania kodów zapytań.

Zapytania SQL

Definicje zapytań SQL

Formularz dopisywania i edycji zapytań SQL to standardowa transakcja j_insert_update uruchamiana z kodem (kodtransakcji=SQL_INS_CODE_SQL).

Formularz zawiera następujące pola:

  • Rola – możliwość zdefiniowania do jakiej grupy należy dane zapytanie. Systemowe zapytania zapisujemy kod SYS
  • Unique Id – unikalny kod zapytania, jest generowany automatycznie i pozwala identyfikować rekord, jest to kod używany później do wskazywania jakie zapytanie chcemy uruchomić.
  • Opis – treść podpowiadająca do czego używać należy dane zapytanie
  • Rodzaj kontrolki – opis wskazujący przeznaczenie zapytania np.
    • Combo – zapytanie zwracane dla kontrolki WebCombo
    • CombFly – zapytanie zwracane dla kontrolki WebComboFly
    • Tabela – zapytanie zwraca dane w postaci tablicy wyników, wykorzystane w skryptach JS
    • Insert – zapytanie dopisujące dane do bazy
    • Update – zapytanie aktualizujące dane w bazie
  • Nazwa połączenia z bazą danych (connectionstring, albo baza root, albo custom, odczyt ze skorowidza prx=SQL)
  • Zapytanie SQL – polecenie do wykonania
  • Parametry – opis parametrów jakie należy przekazać do zapytania – pole opcjonalne, stanowi zapis dokumentacji – instrukcja użycia
  • Przykład użycia – przykład wykorzystania zapytania

Zapytania WebCombo

Przykładowe zapytanie SQL odwołujące się do skorowidza, przyjmuje dwa parametry:

  • ROLASYS
  • PRX

Przykład użycia w kodzie JS

data-ssUID=\”450E175F-7969-4D65-B3B4-57ACD2986ACC\” data-ssPAR=\”WMS|MAG\”

Przykład użycia w definicji WebCombo w transakcji j_insert_update

data-ssUID=450E175F-7969-4D65-B3B4-57ACD2986ACC data-ssPAR=WMS|MAG

Uwaga: poszczególne parametry rozdzielone są znakiem |

Zapytania WebComboFly

Przykład zapytania dla kontrolki ComboFly, przyjmuje dwa parametry

  • {0} – szukana,
  • {1} identyfikowator kontrahenta NRIDODN

Przykład uruchomienia w skrypcie JS

data-ssUID=\”434BDF33-FC7D-4D3C-8E7C-070449E353D6\” data-ssPAR=\”$$SearchString|0\”

przykład użycia w transakcji j_insert_update

data-ssUID=434BDF33-FC7D-4D3C-8E7C-070449E353D6 data-ssPAR=$$SearchString|0

Uwaga: poszczególne parametry rozdzielone są znakiem |

Podstawianie danych w trybie edycji

W celu ustawienia kontrolki z danymi w trybie edycji danych, gdy podstawiamy wartość domyślną za pomocą ssvalue, należy zdefiniować zapytanie zwracające dany rekord i podstawić go pod atrybut data-ssUIDE, oraz przekazać parametr za pomocą atrybutu data-ssPARE np.

W kartotece asortymentowej edytowanej za pomocą transakcji insert_update ustawiamy:

data-ssUID=ED6286DE-C4B5-4A8E-9B1B-4EDBB84229C2 data-ssPAR=$$SearchString|KON data-ssUIDE=E4FD0962-FD3B-4F8F-B728-6DC939023D3E data-ssPARE=$$SearchString

gdzie atrybut data-ssUID wskazuje na zapytanie
(SELECT TOP(50) NRIDODN as id, SKROCO + ' (' + upper(MIEJSCOWOSC) + ')' as label FROM knkon WHERE ROLASYS='WMS' AND AKTYWNE=1 AND PRX='{1}' AND ACH='1' AND ODDZIAL=(select top(1) ODDZIAL from _users where username=@KTO) AND NAZWA+SKROCO LIKE '%{0}%' ORDER BY SKROCO) wykorzystywane do odszukania rekordów

a atrybut data-ssUIDE wskazuje na zapytanie
(SELECT TOP(1) NRIDODN as id, SKROCO + ' (' + upper(MIEJSCOWOSC) + ')' as label FROM knkon WHERE NRIDODN = {0}), które zwraca 1 rekord z danymi.

Tabela

Przykład zapytania SQL wykorzystywanego w skryptach JS do pobierania danych tabelarycznych, powyższy przyjmuje 1 parametr (numer referencyjny) za pomocą którego zwracamy dane dla danego dokumentu magazynowego.

Przykład wykorzystania w skrypcie JS za pomocą funkcji ssDataSQL()

ssDataSQL("5D6DEE90-3495-44D1-8045-77E5B0F5E778", gcRefno)

funkcja przyjmuje dwa parametry:

  • Unique Id zapytania SQL
  • numer referencyny

Insert

Przykład użycia, definiujemy zmienną cPar i wypełniamy listą parametrów rozdzielonych znakiem |

let cPar = gcRefno + "|" + $("#NRIDODN").jqxComboBox('val') + "|" + $("#NRIDASN").jqxComboBox('val');
cPar += "|" + $("#NRIDWMS").jqxComboBox('val'); // {3}
cPar += "|" + $("#PALETAKOD").jqxComboBox('val'); // {4}
cPar += "|" + $("#NRPALETY").val(); // {5}
cPar += "|" + $("#NRSERII").val(); // {6}
if ($("#TERMINWAZNOSCI").val().length > 0) {
cPar += "|'" + $("#TERMINWAZNOSCI").val() + "'"; // {7}
}
else {
cPar += "|NULL";
}
if ($("#DATAPRODUKCJI").val().length > 0) {
cPar += "|'" + $("#DATAPRODUKCJI").val() + "'"; // {8}
}
else {
cPar += "|NULL";
}
cPar += "|" + $("#ILOSC").jqxNumberInput('val'); // {9}
cPar += "|" + $("#UWAGIPOZ").val(); // {10}

Uruchamiamy funkcje ssExSQL()

AddSuccessEnd(ssExSQL("99784D40-2117-442B-BB22-563AD3DDB1ED", cPar));

Po wykonaniu zapytania uruchomiona zostanie funkcja AddSuccessEnd();

Update

ssExSQL("5D6DEE90-3495-44D1-8045-77E5B0F5E778", ssVar[1])

Execute Stored Procedure

Za pomocą definicji _code_sql możemy uruchomić dowolną procedurę składowaną i przekazać do niej parametry. 

Przykład użycia:

EXECUTE [dbo].[sp_wms_dpmag_from_dpzle] {0},{1},@KTO

Chcemy uruchomić procedurę składowania sp_wms_dpmag_from_dpzle, która wymaga trzech parametrów: dpmag.REFNO, dpzle.REFNO oraz nazę login użytkownika. Wartości {0} oraz {1} zostaną podstawione z przekazanych parametrów.

Uruchamiamy funkcje w js np.:

ssExSQL("FB12449A-A235-430C-ADE5-DC07CB87CB95", gcRefno + "|" + OdczytValue("refno_zlecenie"));