Thorvaldsen
Administrator
Dołączył: 06 Lip 2015
Posty: 71
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5
|
Wysłany: Pon 12:03, 04 Kwi 2016 Temat postu: Tworzenie własnego modułu branżowego |
|
|
Poniżej opiszę krok po kroku jak stworzyć swój najprostszy moduł branżowy do Hermes SQL. Najprostszy moduł czyli po prostu kawałek kodu który jest ładowany przy logowaniu użytkownika. Może on zawierać różne funkcje, procedury czy zmienne które od tego momentu stają się dostępne z każdego miejsca w programie. Pokażę także jak uruchomić dowolny kod w momencie zalogowania.
0. Przygotowanie
Uruchamiamy Microsoft SQL Server Management Studio i łączymy się z naszą bazą danych.
W dowolnym miejscu na dysku (może to być katalog użytkownika, zmapowany dysk sieciowy, katalog Hermesa) tworzymy katalog w którym będzie przechowywany kod modułu. Tam utworzymy plik prg z kodem naszego modułu.
1. Tworzenie bazy
W pierwszej kolejności tworzymy bazę danych naszego modułu. Baza może mieć dowolną nazwę i musi znajdować się na tym samy serwerze SQL co baza Hermes.
2. Tworzenie niezbędnych tabel
W naszej bazie musimy stworzyć 3 tabele. Poniżej podaję kod SQL do utworzenia każdej z nich.
CONFIG
Kod: | CREATE TABLE [CONFIG] (
[NR_WERSJI] [numeric](10, 0) NOT NULL CONSTRAINT [DF_CONFIG_NR_WERSJI] DEFAULT (0),
[NAZWA] [VARCHAR] (50) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_CONFIG_NAZWA] DEFAULT (''),
[PATH_APP] [VARCHAR] (254) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_CONFIG_PATH_APP] DEFAULT (''),
[NAME_APP] [VARCHAR] (50) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_CONFIG_NAME_APP] DEFAULT (''),
CONSTRAINT [PK_CONFIG] PRIMARY KEY CLUSTERED
(
[NAZWA]
) ON [PRIMARY]
)
|
M_FIRMA
Kod: |
CREATE TABLE [M_FIRMA] (
[NR_WERSJI] [numeric](10, 0) NOT NULL CONSTRAINT [DF_M_FIRMA_NR_WERSJI] DEFAULT (0),
CONSTRAINT [PK_CONFIG] PRIMARY KEY CLUSTERED
(
[NR_WERSJI]
) ON [PRIMARY]
)
|
M_MENU
Kod: |
CREATE TABLE [M_MENU] (
[NR] [tinyint] NOT NULL CONSTRAINT [DF_M_MENU_NR] DEFAULT (''),
[MENU] [tinyint] NOT NULL CONSTRAINT [DF_M_MENU_MENU] DEFAULT (''),
[OPIS] [varchar] (100) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_M_MENU_OPIS] DEFAULT (''),
[ICO] [varchar] (254) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_M_MENU_ICO] DEFAULT (''),
[AKCJA] [varchar] (254) COLLATE Polish_CI_AS NOT NULL CONSTRAINT [DF_M_MENU_AKCJA] DEFAULT (''),
CONSTRAINT [PK_M_MENU] PRIMARY KEY CLUSTERED
(
[NR],
[MENU]
) ON [PRIMARY]
)
|
3. Edycja tabel i wstawianie danych
Na początku tabelę CONFIG naszego modułu uzupełniamy podstawowymi wartościami.
Kod: |
INSERT INTO CONFIG(nr_wersji, nazwa, path_app, name_app) VALUES([b]0[/b],'[b]Nazwa modułu[/b]','[b]C:\Przyklad\Sciezki\[/b[','[b]firma.prg[/b]')
|
Są tam 4 parametry:
- Pierwsza wartość to numer wersji można wstawić dowolny numer, a następnie go aktualizować, jeżeli Hermes wykryje zmianę to uruchamiana jest procedura aktualizacji, ale nie będę jej tu omawiał. Na początek może być 0 albo 1. Oczywiście musi to być liczba całkowita!
- Nazwa modułu jest dowolna.
- Ścieżka do folderu z modułem. Musi kończyć się znakiem '\'. Tutaj można wykorzystać zmienną _xsc\ za którą zostanie podstawiona ścieżka do katalogu Hermesa.
- Nazwa pliku prg (z rozszerzeniem). Teoretycznie może to być nawet plik exe, albo dll czy inny obsługiwany przez Hermesa.
Kolejna rzecz to tabela M_FIRMA tam wstawiamy tylko numer wersji. UWAGA - taki sam jak w tabeli CONFIG.
Kod: |
INSERT INTO M_FIRMA(nr_wersji) VALUES(0)
|
Tabelę M_MENU w tym najprostszym przykładzie pomijamy. Może zostać pusta.
Ostatni etap to aktualizacja danych w tabeli firmy natywnej bazy Hermes, tam edytujemy pole baza_mod dla wybranej firmy i wpisujemy tam nazwę uprzednio utworzonej bazy naszego modułu.
4. Utworzenie pliku prg
W uprzednio stworzonym katalogu tworzymy plik prg zgodny z tym co wpisalismy w pole name_app w tabeli CONFIG. W pliku możemy tworzyć normalne procedury i funkcje w języku FOXPRO.
5. Tworzenie kodu który uruchamia się zawsze po załadowaniu modułu
W tym celu wystarczy zdefiniować w pliku modułu procedurę o nazwie M_AUTORUN w niej dodajemy dowolny kod który będzie się wywoływał po każdym logowaniu. Można tam ładować zewnętrzne biblioteki, aktualizować zmienne globalne, odczytywać dane z bazy itp.
Przykład:
Kod: |
PROCEDURE M_AUTORUN
ALERT("WITAJ SWIECIE!")
ENDPROC
|
Po każdym zalogowaniu pojawi się komunikat z przyciskiem OK i komunikatem WITAJ SWIECIE!.
Post został pochwalony 0 razy
Ostatnio zmieniony przez Thorvaldsen dnia Pon 11:27, 03 Paź 2016, w całości zmieniany 2 razy
|
|