Obowiązuje od wersji

Podobne dokumenty
Gniazda rozszerzeń w WF-Mag dla Windows. Przewodnik wdrożeniowca.

Gniazda rozszerzeń w WF-Mag dla Windows. Przewodnik wdrożeniowca.

Procedury SQL obsługi dokumentów w WF-Mag dla Windows. Poradnik wdrożeniowca.

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

Ćwiczenia 2 IBM DB2 Data Studio

Procedury SQL obsługi dokumentów w WF-Mag dla Windows. Poradnik wdrożeniowca.

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

15. Funkcje i procedury składowane PL/SQL

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Właściwości transakcji

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Bloki anonimowe w PL/SQL

BAZY DANYCH Cz III. Transakcje, Triggery

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Procedury SQL obsługi dokumentów w WAPRO Mag. Poradnik wdrożeniowca.

Pakiety podprogramów Dynamiczny SQL

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Wykład 8. SQL praca z tabelami 5

Struktura bazy danych

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Język PL/SQL Procedury i funkcje składowane

SQL 4 Structured Query Lenguage

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Administracja i programowanie pod Microsoft SQL Server 2000

PODSTAWY BAZ DANYCH 13. PL/SQL

na MS SQLServer 2005 i 2008

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Składowane procedury i funkcje

Microsoft SQL Server. Tradycyjna architektura klientserwer. Przeniesienie części logiki na serwer. Programowanie Transact SQL

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Cele. Definiowanie wyzwalaczy

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

Wyzwalacze (triggery) Przykład

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Dodawanie operacji dodatkowych w WAPRO Mag.

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Zaawansowane bazy danych i hurtownie danych semestr I

Październik Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Język PL/SQL Pakiety podprogramów

Tworzenie raportów XML Publisher przy użyciu Data Templates

PL/SQL. Zaawansowane tematy PL/SQL

Bazy danych. dr inż. Arkadiusz Mirakowski

Transakcje inf. podstawowe

w wersji Comarch ERP XL Zmiany techniczne w wersji

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Oracle PL/SQL. Paweł Rajba.

SYSTEM INFORMATYCZNY KS-SEW

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba.

BAZA DANYCH SIECI HOTELI

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

Hurtownia Świętego Mikołaja projekt bazy danych

Baza danych do przechowywania użytkowników

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Język PL/SQL. Rozdział 4. Procedury i funkcje składowane

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

W PostgreSQL mamy do dyspozycji nie tylko funkcje wbudowane, ale również możemy tworzyć własne. Są one zapisywane w tabeli systemowej pg_proc.

Bazy Danych i Usługi Sieciowe

Transakcje jednocześnie ACID

Internetowe bazy danych

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Oracle Label Security

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Procedury i funkcje składowane

WHEN_NEW_FORM_INSTANCE

Imię i Nazwisko Data Ocena. Laboratorium 7

Bazy danych i usługi sieciowe

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Bazy danych 8. Procedury składowane i kursory. P. F. Góra

Bazy danych 11. SQL Procedury składowane, kursory i wyzwalacze

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Jerzy Nawrocki, Wprowadzenie do informatyki

Relacyjne bazy danych. Podstawy SQL

Biuletyn techniczny. Zaawansowane schematy księgowe

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Materiały do laboratorium MS ACCESS BASIC

Instrukcja instalacji aplikacji PlanSoft.org

1. Wyzwalacze BD (ang. triggers)

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Transkrypt:

Obowiązuje od wersji 8.30.0 1. Wstęp czym są gniazda rozszerzeń?... 2 2. Edytor gniazd rozszerzeń - informacje podstawowe... 3 3. Dostępne rodzaje funkcji w gniazdach rozszerzeń... 6 3.1 Procedura SQL... 7 3.2 Skrypt VBS... 9 3.3 Moduł wykonywalny... 9 3.4 Komunikat... 9 3.5 Pytanie... 10 3.6 Koniec... 11 3.7 Tabela dodatkowa... 11 3.8 Formularz tabeli... 12 3.9 IF (warunek) THEN ELSE... 13 3.10 Kartoteka programu.... 14 4. Zmienne (parametry funkcji) gniazd rozszerzeń... 15 5. Edytor gniazd rozszerzeń praca z funkcjami.... 20 6. Przykłady zastosowań gniazd rozszerzeń.... 22 6.1 Przykład 1... 22 6.2 Przykład 2... 26 6.3 Przykład 3... 30 6.4 Przykład 4... 33 7. Zadania aplikacji uruchamiane cyklicznie (gniazda cykliczne)... 43 8. Gniazda rozszerzeń na tabelach dodatkowych... 45 9. Gniazda rozszerzeń dla pól formularza pole wpisywane z przyciskiem do oprogramowania w gnieździe rozszerzeń.... 46 10. Tworzenie skryptów SQL instalujących funkcje w gniazdach... 48 1

2

3

4

5

6

7

8

9

10

11

12

13

14

- - 15

16

17

18

Podczas pracy z czystą bazą danych lub z programem po aktualizacji, zanim rozpoczniemy pracę z gniazdami i zaczniemy je wypełniać, zalecane jest wykonanie dowolnych działań w oknach, z którymi zamierzamy pracować. Następnie należy wylogować się z programu i ponownie zalogować. Wynika to z zastosowanego mechanizmu przypisywania zmiennych do gniazd. Informacje te nie są tworzone i zapisywane podczas procesu instalacji (aktualizacji) bazy programu. Dane te zapisywane są sukcesywnie dopiero podczas pracy programem ponieważ przy liczbie około 700 gniazd rozszerzeń ilość wierszy w tabeli przechowującej przypisania zmiennych do gniazd sięga kilkunastu tysięcy. Zapisywanie tych informacji w trakcie instalacji (aktualizacji) znacznie wydłużyłoby jej czas. Wobec tego dopiero otwieranie kolejnych okien powoduje sprawdzenie czy zmienne są już zarejestrowane w gniazdach dostępnych na tych oknach. Jeśli zmienna nie figuruje na liście zmiennych zarejestrowanych dla gniazda to jest dodawana do bazy danych i do listy rejestrowej zmiennych w programie. Lista ta (ograniczona kontekstem gniazda) prezentowana jest pod klawiszem Wybierz zmienne. 19

20

21

22

23

if exists (select 1 from sysobjects where name = 'MAGSRC_Sprawdzanie_rabatow_dokumentu_handlowego' and type = 'P') drop procedure MAGSRC_Sprawdzanie_rabatow_dokumentu_handlowego go create procedure MAGSRC_Sprawdzanie_rabatow_dokumentu_handlowego @IdObiektuNadrzednego numeric as declare @errmsg varchar(255) begin set xact_abort on set transaction isolation level REPEATABLE READ begin transaction if exists (select 1 from pozycja_dokumentu_magazynowego where id_dok_handlowego = @IdObiektuNadrzednego and rabat2<>0 and rabat<>0) begin select @errmsg = 'Nie mogą być ustawione rabaty na pozycjach i na całym dokumencie!' goto Error end if @@trancount>0 commit transaction goto Koniec Error: raiserror (@errmsg,16,1) if @@trancount>0 rollback tran goto Koniec Koniec: set transaction isolation level READ COMMITTED return end go 24

if exists (select 1 from pozycja_dokumentu_magazynowego where id_dok_handlowego = @IdObiektuNadrzednego and rabat2<>0 and rabat<>0) begin select @errmsg = 'Nie mogą być ustawione rabaty na pozycjach i na całym dokumencie!' goto Error end 25

26

27

28

29

30

31

if exists (select 1 from sysobjects where name = 'MAGSRC_Ustaw_rabat_na_minus_5' and type = 'P') drop procedure MAGSRC_Ustaw_rabat_na_minus_5 go create procedure MAGSRC_Ustaw_rabat_na_minus_5 @Rabat1 decimal(14,4) OUTPUT as declare @errmsg varchar(255) begin set @Rabat1 = -5 return end go 32

33

34

35

Tu umieścimy zmienną @Wynik2, której wartość ustali wywołana 36

if exists (select 1 from sysobjects where name = 'MAGSRC_Pobierz_wiersz_tabeli_Rozliczenia_uslugi' and type = 'P') drop procedure MAGSRC_Pobierz_wiersz_tabeli_Rozliczenia_uslugi go create procedure MAGSRC_Pobierz_wiersz_tabeli_Rozliczenia_uslugi @IdObiektuNadrzednego numeric, @Wynik2 varchar(255) OUTPUT as begin select top 1 @Wynik2 = IDENTYFIKATOR from MAGGEN_Rozliczenie_uslugi where ID_NADRZEDNEGO = @IdObiektuNadrzednego if @@rowcount = 0 set @Wynik2 = 0 return end go 37

38

if exists (select 1 from sysobjects where name = 'MAGSRC_Oblicz_cene_uslugi' and type = 'P') drop procedure MAGSRC_Oblicz_cene_uslugi go create procedure MAGSRC_Oblicz_cene_uslugi @IdFirmy numeric, @IdObiektuNadrzednego numeric, @CenaNettoPLN decimal(14,4) OUTPUT as declare @errmsg varchar(255) begin select top 1 @CenaNettoPLN = r.ilosc_rbh_stawka_1 * s.stawka_1 + r.ilosc_rbh_stawka_2 * s.stawka_2 + r.ilosc_rbh_stawka_3 * s.stawka_3 from MAGGEN_Rozliczenie_uslugi r,maggen_stawki_za_roboczogodzine s where r.id_nadrzednego = @IdObiektuNadrzednego and r.data_sys between s.data_od and s.data_do and s.id_nadrzednego = @IdFirmy order by s.data_do,s.data_od return end go 39

if isnull(@cenanettopln,0.0) = 0.0 begin set @errmsg = 'Cena usługi wynosi 0! Nie można dodać usługi bez podania ceny wynikającej z rozliczenia roboczogodzin wykonania usługi!' raiserror (@errmsg,16,1) end if exists (select 1 from sysobjects where name = 'MAGSRC_Oblicz_cene_uslugi' and type = 'P') drop procedure MAGSRC_Oblicz_cene_uslugi go create procedure MAGSRC_Oblicz_cene_uslugi @IdFirmy numeric, @IdObiektuNadrzednego numeric, @CenaNettoPLN decimal(14,4) OUTPUT as declare @errmsg varchar(255) begin select top 1 @CenaNettoPLN = r.ilosc_rbh_stawka_1 * s.stawka_1 + r.ilosc_rbh_stawka_2 * s.stawka_2 + r.ilosc_rbh_stawka_3 * s.stawka_3 from MAGGEN_Rozliczenie_uslugi r,maggen_stawki_za_roboczogodzine s where r.id_nadrzednego = @IdObiektuNadrzednego 40

and r.data_sys between s.data_od and s.data_do and s.id_nadrzednego = @IdFirmy order by s.data_do,s.data_od if isnull(@cenanettopln,0.0) = 0.0 begin set @errmsg = 'Cena usługi wynosi 0! Nie można dodać usługi bez podania ceny wynikającej z rozliczenia roboczogodzin wykonania usługi!' raiserror (@errmsg,16,1) end return end go if exists (select 1 from sysobjects where name = 'MAGSRC_Przepisanie_ceny_do_wynik1' and type = 'P') drop procedure MAGSRC_Przepisanie_ceny_do_wynik1 go create procedure MAGSRC_Przepisanie_ceny_do_wynik1 @CenaNettoPLN decimal(14,4) OUTPUT, @Wynik1 varchar(255) OUTPUT as declare @errmsg varchar(255) begin set @Wynik1 = @CenaNettoPLN end go 41

42

43

44

45

46

47

48

49

- - 50