Projektowanie i implementacja systemów informatycznych Materiały szkoleniowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Projektowanie i implementacja systemów informatycznych Materiały szkoleniowe"

Transkrypt

1 Projektowanie i implementacja systemów informatycznych Materiały szkoleniowe 1

2 Spis treści Spis treści... 2 Wstęp... 3 Diagram encji...4 Model encji:...4 Oracle Forms Builder...5 Okna i Kanwy...5 Podstawowe własności okna:...5 Podstawowe własności kanwy:... 7 Przydatne wbudowane programy dla okien:...9 Przydatne wbudowane programy dla kanw: Ćwiczenie Menu...18 Podstawowe własności elementów menu: Ćwiczenie Bloki danych...21 Podstawowe własności bloku: Ćwiczenie Elementy bloków Ćwiczenie Aplikacje wieloformularzowe Przydatne wbudowane programy:...54 Biblioteki PL/SQL...57 Ćwiczenie Borland C++ Builder...62 ODBC Przykład instalacji sterowników ODBC Przykład konfiguracji ODBC i BDE...64 Karta Data Access...67 Karta Data Controls Ćwiczenie Tematy na zaliczenie...76 ETAP ETAP ETAP

3 Wstęp Projektowanie i implementacja systemów informatycznych Celem zawartego w tym dokumencie materiału jest przedstawienie możliwości tworzenia aplikacji z wykorzystaniem narzędzi firmy Oracle. W pracy tej szczególny nacisk został położony na tworzenie formularzy z wykorzystaniem programu Form Builder. Zaprezentowane zostały też wcześniejsze etapy realizacji projektu informatycznego bazujące na Oracle Designer i DeZign For Databases firmy Datanamic, jednakże jest to ujęcie bardziej poglądowe i prezentacyjne. Materiału zawartego w tej pracy nie należy traktować jako kompletnego podręcznika wyczerpującego tematykę tworzenia aplikacji w oparciu o wspomniane programy. 3

4 Diagram encji Projektowanie i implementacja systemów informatycznych Obecnie dostępnych jest na rynku wiele aplikacji umożliwiających zaprojektowanie bazy danych w postaci modelu/diagramu encji. Można wymienić chociażby takie programy jak: Oracle Designer (Entity Relationship Diagrammer), Microsoft Visio, Datanamic DeZign for Databases. Tworzenie diagramu encji zostanie przedstawione na podstawie produktu DeZign for Databases firmy Datanamic ( Model encji: 4

5 Oracle Forms Builder Projektowanie i implementacja systemów informatycznych Okna i Kanwy Każdy formularz musi posiadać przynajmniej jedno okno i jedną kanwę. Okno stanowi ramę w ramach której rozpościera się kanwa z umieszczonymi na niej elementami wizualnymi (Uwaga: Formularz musi zawierać przynajmniej jeden blok z przynajmniej jednym elementem nawigowalnym). W ramach kanwy można zdefiniować widoczną część kanwy zwaną widokiem. Podstawowe własności okna: 5

6 Name unikalna w ramach formularza nazwa okna. Służy do jego programowej identyfikacji. Title tytuł okna wyświetlany na pasku tytułowym. Primary Canvas Kanwa związana z oknem jako podstawowa. Horizontal Toolbar Canvas kanwa definiująca poziomy pasek narzędzi. Vertical Toolbar Canvas kanwa definiująca pionowy pasek narzędzi. Windows Style własność określająca styl okna. Możliwe wartości to: - Dokument okna podstawowe, - Dialog okna dialogowe. Modal własność określająca modalność okna. Możliwe wartości to: - Nie okno nie jest modalne, wartość domyślna, okien tego typu może być wyświetlonych wiele w tym samym czasie, nie muszą być aktywowane w momencie wyświetlenia, - Tak okno jest modalne, okna tego typu są aktywowane w chwili wyświetlenia, przed powrotem do innego okna muszą zostać zamknięte. Hide on Exit określa czy okno ma być ukrywane przy wyjściu. Możliwe wartości to: - No wartość domyślna, po przejściu do elementu znajdującego się w innym oknie, okno nie jest automatycznie ukrywane, - Yes po przejściu do elementu znajdującego się w innym oknie nastąpi automatyczne ukrycie okna z którego nastąpiła nawigacja. Close Allowed określa czy dozwolone jest zamykanie okna. Możliwe wartości to: - Yes wartość domyślna, zamykanie jest wówczas dozwolone, - No zamykanie za pomocą menu systemowego nie jest wówczas dozwolone. Move Allowed określa czy możliwe jest przesuwanie okna. Możliwe wartości to: - Yes wartość domyślna, przesuwanie okna jest dozwolone, - No przesuwanie okna jest zablokowane. Resize Allowed określa czy możliwa jest zmiana wielkości okna. Możliwe wartości to: - Yes wartość domyślna, zmiana welkości okna jest dozwolona, - No zmiana wielkości okna jest zablokowana. Maximize Allowed definiuje dostępność operacji maksymalizacji okna. Możliwe wartości to: - Yes wartość domyślna, maksymalizacja okna jest dozwolona, - No maksymalizacja okna nie jest dozwolona. Minimize Allowed definiuje dostępność operacji minimalizacji okna. Możliwe wartości to: - Yes wartość domyślna, minimalizacja okna jest dozwolona, - No minimalizacja okna nie jest dozwolona. Minimized Title określa napis pojawiający się na pasku startowym Windows po zminimalizowaniu okna. 6

7 Icon Filename specyfikuje nazwę pliku ikony okna. Inherit Menu określa czy okno ma wyświetlać menu bieżącego formularza. Dozwolone wartości to: - Yes wartość domyślna, menu jest dziedziczone po formularzu, - No menu nie jest dziedziczone po formularzu. X Posiotion określa współrzędną poziomą położenia lewego górnego rogu okna w ramach systemu współrzędnych zdefiniowanych dla formularza. Y Position określa współrzędną pionową położenia lewego górnego rogu okna w ramach systemu współrzędnych zdefiniowanych dla formularza. Width określa szerokość okna w ramach systemu współrzędnych zdefiniowanych dla formularza. Height określa wysokość okna w ramach systemu współrzędnych zdefiniowanych dla formularza. Bevel specyfikuje rodzaj ramki otaczającej okno. Możliwe wartości to: - Raised (Podniesiony) kant okna podniesiony, - Lowered (Obniżony) wartość domyślna, kant okna obniżony, - None (Brak) brak kantu okna, - Inset (Wsunięty) kant okna wsunięty, - Outset (Wysunięty) kant okna wysunięty, - Plain (Zwykły) standardowy kant okna. Show Horizontal Scroll Bar definiuje dostępność poziomego paska przewijania. Możliwe wartości to: - No wartość domyślna, poziomy pasek przewijania nie jest dostępny dla okna, - Yes poziomy pasek przewijania jest dostępny dla okna. Show Vertical Scroll Bar definiuje dostępność pionowego paska przewijania. Możliwe wartości to: - No wartość domyślna, pionowy pasek przewijania nie jest dostępny dla okna, - Yes pionowy pasek przewijania jest dostępny dla okna. Podstawowe własności kanwy: 7

8 Name określa unikalną w ramach formularza nazwę kanwy. Umożliwia programowe odwoływanie się do kanwy (odczytywanie bądź zmianę własności). Canvas Type definiuje typ kanwy. Dozwolone wartości to: - Content (Wypełniająca) wartość domyślna, podstawowy rodzaj kanwy wypełniającej okno, każde okno musi posiadać kanwę wypełniającą, w danej chwili może być wyświetlana w określonym oknie tylko jedna kanwa wypełniająca, - Stacked (Nakładana) kanwa nakładana na kanwę wypełniającą, umożliwia programowe przesłanianie bądź wyświetlanie elementów na niej umieszczonych. Kanwę nakładaną można nałożyć na kanwę wypełniającą w Edytorze Układu (ang. Layout Editor) w opcji menu Wiew -> Stacked Views... - Horizontal Toolbar Canvas (Poziomy pasek narzędzi) kanwa poziomego paska narzędziowego, - Vertical Toolbar Canvas (Pionowy pasek narzędzi) kanwa pionowego paska narzędziowego, 8

9 - Tab (Karty) kanwa kart, umożliwia zdefiniowanie zakładek. Raise on Entry określa czy kanwa ma być automatycznie przenoszona na wierz przy wejściu do elementu wyświetlanego na tej kanwie, dotyczy to sytuacji, gdy w ramach jednego okna wyświetlanych jest wiele kanw. Możliwe wartości to: - No wartość domyślna, kanwa nie jest automatycznie przenoszona na wierz, - Yes kanwa jest automatycznie przenoszona na wierzch po wejściu do elementu na niej wyświetlanego. Popup Menu definiuje nazwę menu podręcznego (kontekstowego, prawego klawisza myszy) dla danej kanwy. Dozwolone wartości to: - <Null> wartość domyślna, oznacza że aktualnie nie jest zdefiniowane żadne menu podręczne dla kanwy, - nazwa menu podręcznego Visible określa czy kanwa jest aktualnie widoczna. Możliwe wartości to: - Yes wartość domyślna, kanwa jest wówczas widoczna, - No kanwa jest ukryta, Window określa nazwę okna w ramach którego jest wyświetlana dana kanwa w momencie uruchomienia. Viewport X Position on Canvas określa współrzędną poziomą lewego górnego rogu widoku odniesioną w stosunku do lewego górnego rogu kanwy. Viewport Y Position on Canvas określa współrzędną pionową lewego górnego rogu widoku odniesioną w stosunku do lewego górnego rogu kanwy. Width określa szerokość kanwy w systemie współrzędnych zdefiniowanych dla formularza. Height określa wysokość kanwy w systemie współrzędnych zdefiniowanych dla formularza. Bevel specyfikuje rodzaj ramki otaczającej kanwę. Możliwe wartości to: - Raised (Podniesiony) kant kanwy podniesiony, - Lowered (Obniżony) wartość domyślna, kant kanwy obniżony, - None (Brak) brak kantu kanwy, - Inset (Wsunięty) kant kanwy wsunięty, - Outset (Wysunięty) kant kanwy wysunięty, - Plain (Zwykły) standardowy kant kanwy. Przydatne wbudowane programy dla okien: SHOW_WINDOW wyświetla okno. Składnia: - SHOW_WINDOW(window_id Window); - SHOW_WINDOW (window_id Window, x NUMBER, 9

10 y NUMBER); - SHOW_WINDOW (window_name VARCHAR2); - SHOW_WINDOW (window_name VARCHAR2, x NUMBER, y NUMBER); Parametry: - window_id specyfikuje unikalny identyfikator okna (można go odczytać za pomocą funkcji FIND_WINDOW), - window_name napis określający nazwę okna, - x współrzędzna pozioma lewego górnego rogu okna, - y współrzędna pionowa lewego górnego rogu okna. HIDE_WINDOW ukrywa okno. Jest równoważna z wywołaniem procedury SET_WINDOW_PROPERTY i ustawieniem własności VISIBLE na PROPERTY_FALSE. Składnia: - PROCEDURE HIDE_WINDOW (window_id Window); - PROCEDURE HIDE_WINDOW (window_name VARCHAR2); Parametry: - window_id specyfikuje unikalny identyfikator okna (można go odczytać za pomocą funkcji FIND_WINDOW), - window_name napis określający nazwę okna, SET_WINDOW_PROPERTY procedura pozwalająca na ustawienie wybranej własności okna. Składnia: - SET_WINDOW_PROPERTY (window_id Window, property NUMBER, value VARCHAR2); - SET_WINDOW_PROPERTY (window_id Window, property NUMBER, x NUMBER); - SET_WINDOW_PROPERTY (window_id Window, property NUMBER, x NUMBER, y NUMBER); - SET_WINDOW_PROPERTY (window_name VARCHAR2, property NUMBER, value VARCHAR2); 10

11 - SET_WINDOW_PROPERTY (window_name VARCHAR2, property NUMBER, x NUMBER); - SET_WINDOW_PROPERTY (window_name VARCHAR2, property NUMBER, x NUMBER, y NUMBER); Parametry: - window_id specyfikuje unikalny identyfikator okna (można go odczytać za pomocą funkcji FIND_WINDOW), - window_name napis określający nazwę okna, - property jedna z dostępnych własności: BACKGROUND_COLOR kolor tła, DIRECTION kierunek układu. Dostępne wartości: DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT, FILL_PATTERN wzór wypełniający, FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki w punktach, FONT_SPACING szerokość czcionki wyrażona jako wielkość odstępu pomiędzy dwoma znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor pierwszego planu, HEIGHT wysokość okna. HIDE_ON_EXIT ukrywanie okna przy wyjściu. Możliwe wartości to: PROPERTY_TRUE, PROPERTY_FALSE, ICON_NAME nazwa pliku ikony, POSITION pozycja (x,y) lewego górnego rogu okna, TITLE tytuł okna, VISIBLE widoczność okna. Możliwe wartości to: PROPERTY_TRUE, PROPERTY_FALSE, WHITE_ON_BLACK wygląd monochromatyczny biały tekst na czarnym tle, WINDOW_SIZE rozmiar okna (szerokość i wysokość okna), WINDOW_STATE stan okna. Możliwe wartości to: NORMAL, MAXIMIZE, MINIMIZE, WIDTH szerokość okna, X_POS współrzędna x lewego górnego rogu okna, Y_POS współrzędna y lewego górnego rogu okna, - value jedna z dostępnych wartości własności: PROPERTY_TRUE ustawienie wartości na true, 11

12 Projektowanie i implementacja systemów informatycznych PROPERTY_FALSE ustawienie wartości na false, NORMAL normalny stan okna, MAXIMIZE okno zmaksymalizowane, MINIMIZE okno zminimalizowane, x współrzędna pozioma lewego górnego rogu okna, bądź szerokość okna, zależne od kontekstu, y współrzędna pozioma lewego górnego rogu okna, bądź szerokość okna, zależne od kontekstu. GET_WINDOW_PROPERTY funkcja pobierająca wartość wybranej własności okna. Funkcja zwraca wartość w postaci napisu. Składnia: - FUNCTION GET_WINDOW_PROPERTY (window_id Window, property NUMBER); - FUNCTION GET_WINDOW_PROPERTY (window_name VARCHAR2, property NUMBER); Parametry: - window_id specyfikuje unikalny identyfikator okna (można go odczytać za pomocą funkcji FIND_WINDOW), - window_name napis określający nazwę okna, - property jedna z dostępnych własności: BACKGROUND_COLOR kolor tła, DIRECTION kierunek układu. Dostępne wartości: DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT, FILL_PATTERN wzór wypełniający, FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki w punktach, FONT_SPACING szerokość czcionki wyrażona jako wielkość odstępu pomiędzy dwoma znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor pierwszego planu, HEIGHT wysokość okna. HIDE_ON_EXIT ukrywanie okna przy wyjściu. Możliwe wartości to: PROPERTY_TRUE, PROPERTY_FALSE, ICON_NAME nazwa pliku ikony, TITLE tytuł okna, VISIBLE widoczność okna. Możliwe wartości to: PROPERTY_TRUE, PROPERTY_FALSE, WINDOW_SIZE rozmiar okna (szerokość i wysokość okna), 12

13 WINDOW_STATE stan okna. Możliwe wartości to: NORMAL, MAXIMIZE, MINIMIZE, WIDTH szerokość okna, X_POS współrzędna x lewego górnego rogu okna, Y_POS współrzędna y lewego górnego rogu okna, Przydatne wbudowane programy dla kanw: SET_CANVAS_PROPERTY ustawia podaną własność dla danej kanwy. Składnia: - SET_CANVAS_PROPERTY (canvas_id CANVAS, property NUMBER, value VARCHAR2); - SET_CANVAS_PROPERTY (canvas_id CANVAS, property NUMBER, x NUMBER); - SET_CANVAS_PROPERTY (canvas_id CANVAS, property NUMBER, x NUMBER, y NUMBER); - SET_CANVAS_PROPERTY (canvas_name VARCHAR2, property NUMBER, value VARCHAR2); - SET_CANVAS_PROPERTY (canvas_name VARCHAR2, property NUMBER, x NUMBER); - SET_CANVAS_PROPERTY (canvas_name VARCHAR2, property NUMBER, x NUMBER, y NUMBER); Parametry: - canvas_id identyfikator kanwy, można go odczytać za pomocą funkcji FIND_CANVAS, - canvas_name nazwa kanwy, - property ustawiana własność. Parametr ten może przyjmować następujące wartości: BACKGROUND_COLOR kolor tła, CANVAS_SIZE wielkość kanwy (szerokość i wysokość), FILL_PATTERN wzór wypełniający kanwę, 13

14 FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki w punktach, FONT_SPACING szerokość czcionki wyrażona jako wielkość odstępu pomiędzy dwoma znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor obiektów pierwszego planu, HEIGHT wysokość kanwy w znakach, TOPMOST_TAB_PAGE nazwa domślnej zakładki, której zawartość w pierwszej kolejności zobaczy operator, VISUAL_ATTRIBUTE nazwa atrybutu wizualnego, który ma definiować własności wizualne kanwy, WIDTH szerokość kanwy wyrażona w znakach. - value jedna z dostępnych wartości własności, - x liczba określająca współrzędna poziomą lub szerokość, - y liczba określająca współrzędna pionową lub wysokość. GET_CANVAS_PROPERTY pobiera podaną własność dla danej kanwy. Odczytana wartość zwracana jest jako nappis. Składnia: - FUNCTION GET_CANVAS_PROPERTY (canvas_id Canvas, property NUMBER); - FUNCTION GET_CANVAS_PROPERTY (canvas_name VARCHAR2, property NUMBER); Parametry: - canvas_id identyfikator kanwy, można go odczytać za pomocą funkcji FIND_CANVAS, - canvas_name nazwa kanwy, - property odczytywana własność. Parametr ten może przyjmować następujące wartości: BACKGROUND_COLOR kolor tła, FILL_PATTERN wzór wypełniający kanwę, FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki w punktach, FONT_SPACING szerokość czcionki wyrażona jako wielkość odstępu pomiędzy dwoma znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor obiektów pierwszego planu, HEIGHT wysokość kanwy w znakach, 14

15 TAB_PAGE_X_OFFSET odległość współrzędnych poziomych pomiędzy lewym gówrnym rogiem kanwy zakładkowej i lewym górnym rogiem karty, TAB_PAGE_Y_OFFSET odległość współrzędnych pionowych pomiędzy lewym gówrnym rogiem kanwy zakładkowej i lewym górnym rogiem karty, VISUAL_ATTRIBUTE nazwa atrybutu wizualnego, który ma definiować własności wizualne kanwy. Jeżeli nie ustawiono żadnego atrybutu wizualnego dla kanwy, to zwracana jest wartośc CUSTOM (jeśli zmieniono wybrane ustawienia wizualne kanwy) lub DEFAULT. WIDTH szerokość kanwy wyrażona w znakach. SHOW_VIEW powoduje wyświetlenie w podanych współrzędnych danej kanwy. Jeśli wołana kanwa już była wyświetlona, to wywołanie tej funkcji spowoduje jej przeniesienie na wierzch. Składnia: - SHOW_VIEW(view_id ViewPort); - SHOW_VIEW(view_name VARCHAR2); Parametry: - view_id identyfikator wyświetlanej kanwy, można go odczytać za pomocą funkcji FIND_VIEW, - view_name nazwa kanwy, HIDE_VIEW powoduje ukrycie podanej kanwy. Przed wywołaniem tej procedury aby aktualnym elementem był element położony na innej kanwie niż kanwa aktualnie ukrywana. Składnia: - HIDE_VIEW(view_id ViewPort); - HIDE_VIEW(view_name VARCHAR2); Parametry: - view_id identyfikator ukrywanej kanwy, można go odczytać za pomocą funkcji FIND_VIEW, - view_name nazwa kanwy, Ćwiczenie 1 1. Utwórz nowy formularz (File->New->Form). Wywołaj kreator bloków danych (Tools->Data Block Wizard) i utwórz blok bazodanowy oparty na tabeli MARKI. Wyświetl pola: KOD, NAZWA. Umieść je na kanwie typu Karty (Zakładkowej). Zapewnij wyświetlenie 15 wierszy w formie tabelarycznej. Dodaj pasek przewijania, a ramkę grupującej zatytułuj Marki samochodów. Dodaj podpowiedzi i opisy dla pól KOD i NAZWA. Uporządkuj dane według nazwy marki (własność ORDER BY). 15

16 2. Zmień nazwę okna na OKNO_MARKI_TYPY. Ustaw tytuł okna na Marki samochodów i typy nadwozi. Ustaw jako główną kanwę okna zdefiniowaną wcześniej kanwę kart. Zapewnij aby nie była dozwolona maksymalizacja okna i zmiana jego rozmiarów. 3. Zmień nazwę kanwy kart na KANWA_MARKI_TYPY, a istniejącej karty na MARKI. Dodatkowo ustaw etykietę karty na Marki. 4. Utwórz na poziomie formularza wyzwalacz WHEN- NEW_FORM_INSTANCE, który zapewni maksymalizację okna MDI i automatyczne wyświetlanie danych po wejściu do formularza. Wykorzystaj kod: -- Zmaksymalizuj okno MDI set_window_property(forms_mdi_window,window_state, MAXIMIZE); -- Przejdź do bloku MARKI go_block('marki'); -- Wykonaj zapytanie execute_query; 5. Utwórz atrybut wizualny AKTUALNY_REKORD i ustaw dla niego własność definiującą kolor tła na green. Dla bloku MARKI określ własność definiującą grupę atrybutów wizualnych bieżącego rekordu na AKTUALNY REKORD. 6. Zapisz formularz pod nazwą marki_typy.fmb i przetestuj jego działanie. 7. Utwórz za pomocą kreatora bazodanowy blok danych TYPY_NADWOZI oparty na tabeli TYPY_NADOWZI. Zapewnij wyświetlanie wszystkich kolumn w postaci 15 wierszy. Dodaj stosowne opisy i podpowiedzi dla wszystkich pól bloku. Pola nowego bloku mają być wyświetlone na nowej karcie (tej samej kanwy). Dodaj pasek przewijania, a ramkę zatytułuj Typy nadwozi. Zapewnij porządkowanie danych po nazwie kodzie typu nadwozia (własność ORDER BY). 8. Zmień nazwę kanwy na TYPY_NADWOZI, zaś etykietę na Typy. 9. Zdefiniuj grupę atrybutów wizualnych bieżącego rekordu na AKTUALNY_REKORD. 10.Zapisz formularz i go przetestuj. Zauważ, że przełączanie pomiędzy kartami nie powoduje automatycznego odświeżenia i wczytania danych. 16

17 11.Zapewnij automatyczne odświeżanie i wczytywanie danych w momencie przechodzenia pomiędzy kartami. Wykorzystaj wyzwalacz WHEN-TAB- PAGE-CHANGED na poziomie formularza: DECLARE tp_nm VARCHAR2(30); tp_id TAB_PAGE; tp_lb VARCHAR2(30); BEGIN -- Znajdź kartę tp_nm:= GET_CANVAS_PROPERTY('KANWA_MARKI_TYPY', topmost_tab_page); -- Odczytaj id karty tp_id := FIND_TAB_PAGE(tp_nm); -- Pobierz etykietę karty tp_lb := GET_TAB_PAGE_PROPERTY(tp_id, label); -- Odśwież odpowiedni blok IF tp_lb='marki' THEN go_block('marki'); execute_query; ELSIF tp_lb='typy' THEN go_block('typy_nadwozi'); execute_query; ELSE null; END IF; END; 12.Zapisz formularz i zweryfikuj jego funkcjonowanie. 17

18 Menu Aby umieścić menu w formularzu konieczne jest utworzenie w Forms Builder modułu menu (File->New->Menu). Moduł źródłowy menu zapisywany jest w pliku z rozszerzeniem mmb, uruchomieniowy mmx, zaś skonwertowany do postaci tekstowej mmt. Do projektowania wyglądu menu służy Edytor Menu o wyglądzie przedstawionym poniżej: Zbiór dostępnych własności jest uzależniony od poziomu danego elementu (węzeł, liść). Najbardziej rozbudowany zestaw własności występuje dla elementów końcowych: 18

19 Podstawowe własności elementów menu: Ćwiczenie 2 0. Utwórz nowe menu (File->New->Menu). Kliknij dwukrotnie na ikonie przy nazwie modułu menu i uruchom edytor menu. Zdefiniuj element menu o nazwie Słowniki. W ramach niego zdefiniuj element Marki i typy nadwozi. Dla niego określ wykonywany kod elementu menu tab aby wywoływał formularz marki_typy. Wykorzystaj kod: -- wywołaj formularz marki_typy CALL_FORM('marki_typy', no_hide, do_replace, no_query_only, ''); 1. Zapisz menu pod nazwą menu_main.mmb i skompiluj zawartość generując postać uruchomieniową mmx. 19

20 2. Utwórz nowy formularz (File->New->Form). W nowym formularzu utwórz ręcznie kanwę i nowy blok niebazodanowy. Umieść w tym bloku element tekstowy i zapewnij jego wyświetlanie na zdefiniowanej kanwie. Szerokość bądź wysokość tego elementu ustaw na 0. We własnościach formularza podaj nazwę modułu menu menu_main. 3. W ramach kanwy zapewnij oprawę graficzną strony tytułowej aplikacji, np. umieść zdjęcie poprzez wybranie Edycja->Import. 4. Na poziomie formularza dodaj wyzwalacz WHEN-NEW-FORM- INSTANCE powodujący maksymalizację okna MDI. Wykorzystaj kod: -- Zmaksymalizuj okno MDI set_window_property(forms_mdi_window,window_state, MAXIMIZE); 5. Zapisz formularz pod nazwą main.fmb. Przed uruchomieniem go zapewnij aby pliki menu_main.mmx i marki_typy.fmx znajdowały się na ścieżce FORMS90_PATH (np. w pracowni C:\oracle\ids\cgenf61\admin). W razie konieczności zmodyfikuj wpis w rejestrze. Pliki fmx i mmx można wygenerować wybierając z menu opcję Program->Compile module. 6. Uruchom formularz main.fmb. Sprawdź czy prawidłowo wyświetla się zdefiniowane menu i czy wybór opcji Marki i typy nadwozi powoduje uruchomienie stosownego formularza. 20

21 Bloki danych Bloki danych stanowią logiczny zbiór elementów (przycisków, kolumn tabeli). Bloki mogą być: bazodanowe oparte na tabeli, grupujące przede wszystkim elementy odpowiadające kolumnom z tabeli, niebazodanowe (kontrolne) grupujące inne elementy (np. przyciski). Podstawowe własności bloku: Name określa unikalną w ramach formularza nazwę bloku. Umożliwia programowe odwoływanie się do bloku (odczytywanie bądź zmianę 21

22 własności). Blok bazodanowy utworzony za pomocą kreatora ma domyślnie taką samą nazwę jak tabela, na której się opiera, Navigation style definiuje styl nawigacji. Dozwolone wartości to: - Same Record wartość domyślna, określa nawigację w ramach tego samego rekordu, - Change Record określa nawigację do następnego rekordu, - Change Data Block określa nawigację do następnego blioku danych, Previous Navigation Data Block określa nazwę poprzedniego bloku w nawigacji, jeśli wartość ta nie jest zdefiniowana to jako poprzedni blok w nawigacji zostanie przyjęty blok poprzedzający dany blok w Nawigatorze Obiektów, Next Navigation Data Block określa nazwę następnego bloku w nawigacji, jeśli wartość ta nie jest zdefiniowana to jako następny blok w nawigacji zostanie przyjęty blok następujący po danym bloku w Nawigatorze Obiektów, Current Record Visual Attribute Group nazwa grupy atrybutów wizualnych dla bieżącego rekordu, Number of Record Buffered ilość rekordów buforowanych w momencie pobierania wierszy z bazy danych, Number of Record Displayed ilosć rekordów wyświetlanych, Query All Records definiuje czy ma nastąpić odczyt wszystkich wierszy z bazy w momencie wykonania zpaytania w danym bloku. Możliwe wartości to: - No wartość domyślna, nie następuje pobranie wszystkich wierszy, - Yes w momencie wykonania zapytania odczytywane są wszystkie wiersze z bazy, własność ta jest istotna dla różnego rodzaju podumowań, Record Orientation orientacja rekordu. Możliwe wartości to: - Vertical wartość domyślna, definiuje pionową orientację rekordów na formularzu, - Horizontal definiuje poziomą orientację rekordów na formularzu, Single Record okręśla czy w ramach bloku ma występować tylko pojedynczy rekord. Możliwe wartości to: - No wartość domyślna, w bloku może wystepować wiele rekordów, - Yes w bloku może występować tylko jeden rekord, wartość używana często w przypadku bloków kontrolnych, Database Data Block określa czy dany blok jest blokiem bazodanowym. Dozwolone wartości to: - Yes wartość domyślna, definiuje blok bazodanowy, - No definiuje blok niebazodanowy, Query Allowed określa czy w danym bloku dozwolone jest wykonywanie zapytania. Dozwolone wartości to: - Yes wartość domyślna, zapytanie jest dozwolone, 22

23 - No zapytanie nie jest dozwolone, Query Data Source Type określa typ źródła danych dla bloku. Możliwe wartości to: - None brak zdefiniowanego źródła, blok nie jest bazodanowy, - Table wartość domyślna, źródłow danych dla bloku stanowi tabela, - Procedure źródło danych dla bloku stanowią odpowiednie procedury skłądowane, - Transactional Triggers źródło danych stanowią wyzwalacze trensakcyjne, - FROM clause query źródło danych zdefiniowane jest w postaci zapytania, Query Data Source Name nazwa źródła danych dla bloku, WHERE Clause klauzula WHERE dodawana do zapytania w momencie wysyłania zapytania do bazy, ORDER BY Clause klauzula ORDER BY definiująca sposób sortowania wyników zapytania pobranych z bazy, Insert Allowed określa czy możliwe jest dodawanie wierszy w danym bloku. Możliwe wartości to: - Yes wartość domyślna, dodawanie wierszy jest mozliwe w bloku, - No dodawanie wierszy w bloku nie będzie mozliwe, Update Allowed określa czy możliwe jest modyfikowanie wierszy w danym bloku. Możliwe wartości to: - Yes wartość domyślna, modyfikowanie wierszy jest mozliwe w bloku, - No modyfikowanie wierszy w bloku nie będzie możliwe, Delete Allowed - określa czy możliwe jest usuwanie wierszy w danym bloku. Możliwe wartości to: - Yes wartość domyślna, usuwanie wierszy jest mozliwe w bloku, - No usuwanie wierszy w bloku nie będzie mozliwe, Show Scroll Bar określa czy dla bloku ma wystepować pasek przewijania. Możliwe wartości to: - Yes pasek przewijania jest dostępny, - No wartość domyślna, pasek przewijania nie jest dostępny, Scroll Bar Canvas definiuje nazwę kanwy, na której ma być wyświetlony pasek przewijania, Scroll Bar Tab Page definiuje dla kanwy zakładkowej (Tab) nazwę zakładki, na której ma się pojawić pasek przewijania, Scroll Bar Orientation określa orientację paska przewijania. Możliwe wartości to: - Vertical wartość domyślna, definiuje pionową orientację paska przewijania, - Horizontal definiuje poziomą orientację paska przewijania, Scroll Bar X Position definiuje współrzędną x lewego górnego narożnika paska przewijania, 23

24 Scroll Bar Y Position definiuje współrzędną y lewego górnego narożnika paska przewijania, Scroll Bar Width definiuje szerokość paska przewijania, Scroll Bar Length definiuje długosć paska przewijania, Visual Attribute Group określa grupę atrybutów wizualnych dla bloku, Foreground Color określa kolor pierwszoplanowy, Background Color określa kolor tła, Fill Patern określa wzór wypełnienia. SET_BLOCK_PROPERTY procedura pozwalająca na ustawienie wybranej własności dla bloku. Składnia: - SET_BLOCK_PROPERTY (block_id Block, property VARCHAR, value VARCHAR); - SET_BLOCK_PROPERTY (block_id Block, property VARCHAR, x NUMBER); - SET_BLOCK_PROPERTY (block_id Block, property VARCHAR, x NUMBER, y NUMBER); - SET_BLOCK_PROPERTY (block_name VARCHAR2, property VARCHAR, value VARCHAR); - SET_BLOCK_PROPERTY (block_name VARCHAR2, property VARCHAR, x NUMBER); - SET_BLOCK_PROPERTY (block_name VARCHAR2, property VARCHAR, x NUMBER, y NUMBER); Parametry: - block_id specyfikuje unikalny identyfikator bloku (można go odczytać za pomocą funkcji FIND_BLOCK), - block_name nazwa bloku, - property jedna z dostępnych własności: 24

25 Projektowanie i implementacja systemów informatycznych ALL_RECORDS określa, że w momencie wykonania zapytania powinny zostać pobrane wszystkie wiersze z bazy spełniające zadane kryteria, BLOCKSCROLLBAR_POSITION określa współrzędne x i y bloku paska przewijania, BLOCKSCROLLBAR_X_POS określa współrzędną x bloku paska przewijania, BLOCKSCROLLBAR_Y_POS określa współrzędną y bloku paska przewijania, COORDINATION_STATUS określa status koordynacji bloku podrzędnego pozostającego w relacji master-detail (nadrzędny-podrzędny). Dostępne wartości to: COORDINATED i NON_COORDINATED, CURRENT_RECORD_ATTRIBUTE określa nazwę atrybutu wizualnego skojarzonego z bieżącym wierszem danego bloku, CURRENT_ROW_BACKGROUND_COLOR określa kolor tła bieżącego wiersza bloku, CURRENT_ROW_FILL_PATTERN określa wzór wypełniający bieżący wiersz danego bloku, CURRENT_ROW_FONT_NAME określa nazwę czcionki używanej dla bieżącego wiersza danego bloku, CURRENT_ROW_FONT_SIZE określa wielkość czcionki dla bieżącego wiersza danego bloku, CURRENT_ROW_FONT_SPACING określa szerokość czcionki jako odległość pomiędzy znakami, CURRENT_ROW_FONT_STYLE określa styl czcionki dla bieżącego rekordu danego bloku, CURRENT_ROW_FONT_WEIGHT określa szerokość czcionki dla bieżącego rekordu danego bloku, CURRENT_ROW_FOREGROUND_COLOR określa kolor pierwszoplanowy dla bieżącego wiersza danego bloku, DEFAULT_WHERE definiuje klauzulę WHERE, DELETE_ALLOWED określa czy dozwolone jest usuwanie rekordów w danym bloku. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, DML_DATA_TARGET_NAME określa nazwę docelowego źródła danych dla bloku, ENFORCE_PRIMARY_KEY określa, że każdy wiersz zmieniony lub dodany do bloku musi posiadać unikalną charakterystykę. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, INSERT_ALLOWED określa czy dozwolone jest dodawanie rekordów w danym bloku. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, 25

26 Ćwiczenie 3 Projektowanie i implementacja systemów informatycznych KEY_MODE określa czy klucz główny podlega procesowi modyfikacji. Własność ta jest używana dla źródeł danych innych niż RDBMS Oracle. Dozwolone wartości to: UPDATEABLE_PRIMARY_KEY i NON_UPDATEABLE_PRIMARY_KEY, LOCKING_MODE określa tryb blokowania wierszy w bazie. Dozwolone wartości to: DELAYED i IMMEDIATE, MAX_QUERY_TIME specyfikuje maksymalny czas trwania zapytania, MAX_RECORDS_FETCHED określa maksymalną ilość pobieranych wierszy, NAVIGATION_STYLE specyfikuje styl nawigacji w danym bloku. Dozwolone wartości to: SAME_RECORD, CHANGE_RECORD, CHANGE_BLOCK, NEXT_NAVIGATION_BLOCK określa nazwę następnego bloku w nawigacji, OPTIMIZER_HINT podpowiedź dla optymalizatora poleceń, ORDER_BY specyfikuje klauzulę ORDER BY pozwalającą na sortowanie danych w bloku według zadanego porządku, PRECOMPUTE_SUMMARIES określa czy wartości wyliczane są obliczane przed standardowym wykonaniem zapytania w bloku, PREVIOUS_NAVIGATION_BLOCK określa nazwę QUERY_ALLOWED specyfikuje czy dozwolone jest wykonywanie zapytań w danym bloku. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, QUERY_DATA_SOURCE_NAME określa nazwę źródła danych dla bloku, QUERY_HITS określa ilość odczytanych rekordów, UPDATE_ALLOWED specyfikuje czy dozwolone jest wykonywanie modyfikacji wartości elementów w danym bloku, UPDATE_CHANGED_COLUMNS określa czy procesowi modyfikacji powinny podlegać tylko te kolumny, których wartość uległa zmianie w formularzu, - value wartość dla ustawianej własności - x współrzędna pozioma lub szerokość listy wartości, - y współrzędna pionowa lub wysokość listy wartości. 1. Utwórz nowy formularz (File->New->Form). Dodaj do niego za pomocą kreatora (Tools->Data Block Wizard) blok oparty na tabeli MARKI. Zapewnij wyświetlanie 5 wierszy zawierających kolumnę KOD (kod 26

27 marki) i NAZWA (nazwa marki). Dodaj pasek przewijania. Uzupełnij stosownie podpowiedzi dla wyświetlanych pól. 2. Dodaj za pomocą kreatora blok oparty na tabeli MODELE. Powiąż go relacją z blokiem MARKI. Zapewnij wyświetlanie 10 wierszy zawierających kolumnę NAZWA (nazwa modelu). Dodaj pasek przewijania. Uzupełnij stosownie podpowiedzi dla wyświetlanego pola. 3. Ustaw tytuł okna na Marki i modele samochodów. Dodaj atrybut wizualny zapewniający kolorowanie tła bieżącego rekordu na kolor cyan. 4. Zapewnij aby utworzony formularz typu master-detail (nadrzędnypodrzędny) wyglądał następująco: 5. Dodaj na poziomie formularza wyzwalacz WHEN-NEW-FORM- INSTANCE zapewniający automatyczne wyświetlenie danych i maksymalizację okna MDI: -- Wykonanie zapytania po wywołaniu formularza go_block('marki'); execute_query; -- Zmaksymalizuj okno MDI set_window_property(forms_mdi_window, 27

28 WINDOW_STATE,MAXIMIZE); 6. Na poziomie bloku MODELE dodaj wyzwalacz PRE-INSERT obsługujący numerację identyfikatora modelu: select modele_id_seq.nextval into :modele.id from dual; 7. Zapisz formularz pod nazwą marki_modele.fmb i przetestuj jego działanie. 28

29 Elementy bloków Projektowanie i implementacja systemów informatycznych. SET_ITEM_PROPERTY procedura pozwalająca na ustawienie wybranej własności dla podanego elementu. Składnia: - SET_ITEM_PROPERTY (item_id ITEM, property NUMBER, value VARCHAR2); - SET_ITEM_PROPERTY (item_name VARCHAR2, property NUMBER, value VARCHAR2); - SET_ITEM_PROPERTY (item_id ITEM, property NUMBER, x NUMBER); - SET_ITEM_PROPERTY (item_name VARCHAR2, property NUMBER, x NUMBER); - SET_ITEM_PROPERTY (item_id ITEM, property NUMBER, x NUMBER, y NUMBER); - SET_ITEM_PROPERTY (item_name VARCHAR2, property NUMBER, x NUMBER, y NUMBER); Parametry: - item_id specyfikuje unikalny identyfikator elementu (można go odczytać za pomocą funkcji FIND_ITEM), - item_name nazwa elementu. - property jedna z dostępnych własności: ALIGNMENT wyrównanie tekstu (dotyczy wyłącznie elementów tekstowych i elementów wyświetlania). Dostępne wartości to: ALIGNMENT_START, ALIGNMENT_END, ALIGNMENT_LEFT, ALIGNMENT_CENTER, ALIGNMENT_RIGHT, 29

30 Projektowanie i implementacja systemów informatycznych AUTO_HINT specyfikuje czy ma być automatycznie wyświetlana podpowiedź w linii statusu po wejściu do danego elementu. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE. AUTO_SKIP specyfikuje czy kursor automatycznie nawiguje do następnego elementu w sytuacji gdy użytkownik wprowadzi ostatni element w polu tekstowym. Własność ta dotyczy wyłącznie elementów tekstowych. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, BACKGROUND_COLOR kolor tła, BORDER_BEVEL styl ramki otaczającej daną instancję elementu. Dostępne wartości to: RAISED, LOWERED, PLAIN, CASE_INSENSITIVE_QUERY określa czy zapytanie wprowadzane w elemencie jest wrażliwe na wielkość liter. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, CASE_RESTRICTION określa ograniczenia dotyczące wielkości liter. Dostępne wartości to: UPPERCASE, LOWERCASE, NONE, COMPRESS określa czy dane muzyczne mają podlegać kompresji przed zapisaniem do pliku. Dostępne wartości to: COMPRESSION_ON, COMPRESSION_OFF, ORIGINAL_SETTING, CONCEAL_DATA specyfikuje czy dane wprowadzane w elemencie mają być widoczne (wartość PROPERTY_FALSE) czy też nie (wartość PROPERTY_TRUE). CURRENT_RECORD_ATTRIBUTE nazwa atrybutu wizualnego dla bieżącego rekordu, CURRENT_ROW_BACKGROUND_COLOR kolor tła dla bieżącego rekordu, CURRENT_ROW_FILL_PATTERN wzór wypełniający dla bieżącego rekordu, CURRENT_ROW_FONT_NAME nazwa czcionki dla bieżącego rekordu, CURRENT_ROW_FONT_SIZE rozmiar czcionki dla bieżącego rekordu, CURRENT_ROW_FONT_SPACING szerokość czcionki dla bieżącego rekordu wyrażona jako odległość pomiędzy znakami, CURRENT_ROW_FONT_STYLE styl czcionki dla bieżącego rekordu, CURRENT_ROW_FONT_WEIGHT szerokość czcionki dla bieżącego rekordu, 30

31 CURRENT_ROW_FOREGROUND_COLOR kolor pierwszoplanowy dla bieżącego rekordu, CURRENT_ROW_WHITE_ON_BLACK definiuje wyświetlanie monochromatyczne (biały tekst na czarnym tle), DIRECTION określa kierunek wyświetlania. Dostępne wartości to: DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT, DISPLAYED specyfikuje czy element jest wyświetlany/dostępny bądź ukryty/niedostępny, ECHO określa czy znaki wprowadzane w elemencie tekstowym są widoczne. Dostępne wartości to: PROPERTY_TRUE (znaki nie są ukrywane) i PROPERTY_FALSE (znaki są ukrywane), FILL_PATTERN wzór wypełniający pole, FIXED_LENGTH określa czy ma być sprawdzana ilość znaków wprowadzonych w polu z tą która jest wyspecyfikowana jako maksymalna wielkość pola. Jeśli przyjmuje wartość PROPERTY_TRUE, to oznacza to że element jest poprawny tylko wtedy gdy ilość wprowadzonych znaków jest równa zdefiniowanej maksymalnej długości pola. Jeżeli przyjmuje wartość PROPERTY_FALSE, to ta zależność nie jest sprawdzana, FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki, FONT_SPACING szerokość czcionki definiowana jako odległość pomiędzy znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor pierwszego planu, FORMAT_MASK maska formatu pola, HEIGHT wysokość pola, HINT_TEXT tekst podpowiedzi wyświetlany w linii statusu, ICON_NAME nazwa pliku ikony, IMAGE_DEPTH określa ilość kolorów dla elementu reprezentującego obraz, INSERT_ALLOWED określa dostępność elementu do modyfikacji. Dostępne wartości to: PROPERTY_TRUE, PROPERTY_FALSE, ITEM_IS_VALID specyfikuje czy dany element jest poprawny czy też nie. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, ITEM_SIZE określa szerokość i wysokość elementu, 31

32 Projektowanie i implementacja systemów informatycznych KEEP_POSITION określa zapamiętywane pozycji kursora w elemencie. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, LABEL etykieta elementu, LOCK_RECORD_ON_CHANGE określa czy po zmiana wartości elementu rekord ma podlegać automatycznemu zalokowaniu. Wartość PROPERTY_TRUE oznacza, że po zmiana rekord automatycznie ulegnie zalokowaniu, PROPERTY_FALSE nie ulegnie zalokowaniu, LOV_NAME nazwa listy wartości (LOV) skojarzonej z danym elementem, MERGE_CURRENT_ROW_VA określa łączenie (a nie zastępowanie) atrybutu wizualnego bieżącego rekordu z atrybutem wizualnym przypisanym do danego elementu, MERGE_TOOLTIP_ATTRIBUTE określa łączenie (a nie zastępowanie) atrybutu wizualnego elementu z atrybutem wizualnym przypisanym do podpowiedzi, MERGE_VISUAL_ATTRIBUTE określa łączenie (a nie zastępowanie) wyspecyfikowanego atrybutu z bieżącym atrybutem wizualnym obiektu, MOUSE_NAVIGATE określa czy ma nastąpić przeniesienie focusa po nawigacji do danego elementu za pomocą myszy. Dostępne wartości to: PROPERTY_TRUE, PROPERTY_FALSE, NAVIGABLE określa dostępność elementu do nawigacji za pomocą klawiatury. PROPERTY_TRUE oznacza, że element jest dostępny w nawigacji, PROPERTY_FALSE nie jest dostępny w nawigacji, NEXT_NAVIGATION_ITEM specyfikuje następny element w nawigacji, POPUPMENU_CONTENT_ITEM określa ustawienia menu kontekstowego dla elementu OLE. Możliwe wartości to: POPUPMENU_COPY_ITEM, POPUPMENU_CUT_ITEM, POPUPMENU_DELOBJ_ITEM, POPUPMENU_INSOBJ_ITEM, POPUPMENU_LINKS_ITEM, POPUPMENU_OBJECT_ITEM, POPUPMENU_PASTE_ITEM, POPUPEMNU_PASTESPEC_ITEM, POSITION pozycja elementu, PREVIOUS_NAVIGATION_ITEM określa nazwę następnego elementu w nawigacji, PRIMARY_KEY specyfikuje czy każdy rekord wpisany lub zmodyfikowany musi posiadać unikalną charakterystykę. 32

33 Dozwolone wartości to: PROPERTY_TRUE, PROPERTY_FALSE, PROMPT_ALIGNMENT_OFFSET określa odstęp pomiędzy elementem a opisem, PROMPT_BACKGROUND_COLOR kolor tła dla opisu, PROMPT_DISPLAY_STYLE styl opisu wyświetlanego dla elementu. Dostępne są wartości: PROMPT_FIRST_RECORD, PROMPT_HIDDEN, PROMPT_ALL_RECORDS, PROMPT_EDGE krawędź przy której ma być umieszczony opis. Dostępne wartości: START_EDGE, END_EDGE, TOP_EDGE, BOTTOM_EDGE, PROMPT_EDGE_ALIGNMENT określa wyrównanie opisu w ramach danej krawędzi. Dostępne wartości to: ALIGNMENT_START, ALIGNMENT_END, ALIGNMENT_CENTER, PROMPT_EDGE_OFFSET określa odstęp pomiędzy elementem i jego opisem, PROMPT_FILL_PATTERN wzór wypełniający dla opisu, PROMPT_FONT_NAME nazwa czcionko dla opisu, PROMPT_FONT_SIZE rozmiar czcionki dla opisu, PROMPT_FONT_SPACING szerokość czcionki opisu wyrażona jako odstęp pomiędzy znakami, PROMPT_FONT_STYLE styl czcionki dla opisu, PROMPT_FONT_WEIGHT szerokość czcionki dla opisu, PROMPT_FOREGROUND_COLOR kolor pierwszego planu dla opisu, PROMPT_TEXT tekst opisujący element, PROMPT_TEXT_ALIGNMENT wyrównanie tekstu opisu. Dostępne są wartości: ALIGNMENT_START, ALIGNMENT_LEFT, ALIGNMENT_RIGHT, ALIGNMENT_CENTER, ALIGNMENT_END, PROMPT_VISUAL_ATTRIBUTE atrybut wizualny dla opisu elementu, PROMPT_WHITE_ON_BLACK określa monochromatyczny charakter opisu (biały tekst na czarnym tle), QUERYABLE określa czy pole jest dostępne przy wprowadzaniu kryteriów zapytania. Dozwolone są wartości: PROPERTY_TRUE, PROPERTY_FALSE, QUERY_ONLY specyfikuje dostępność elementu w operacjach typu insert, update. Dostępne wartości to: PROPERTY_TRUE, PROPERTY_FALSE. REQUIRED określa wymagalność pola. Dostępne są wartości: PROPERTY_TRUE, PROPERTY_FALSE, 33

34 Projektowanie i implementacja systemów informatycznych SHOW_FAST_FORWARD_BUTTON określa dostępność przycisku przewijania do przodu dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_PLAY_BUTTON określa dostępność przycisku do odtwarzania dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_RECORD_BUTTON określa dostępność przycisku do nagrywania dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_REWIND_BUTTON określa dostępność przycisku przewijania dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_SLIDER określa dostępność paska postępu dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_TIME_INDICATOR określa dostępność wskaźnika czasu dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, SHOW_VOLUME_CONTROL określa dostępność regulacji głośności dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, TOOLTIP_BACKGROUND_COLOR kolor tła dla podpowiedzi w dymku, TOOLTIP_FILL_PATTERN wzór wypełniający dla podpowiedzi w dymku, TOOLTIP_FONT_NAME nazwa czcionki dla podpowiedzi w dymku, TOOLTIP_FONT_SIZE rozmiar czcionki dla podpowiedzi w dymku, TOOLTIP_FONT_SPACING szerokość czcionki dla podpowiedzi w dymku określana jako odległość pomiędzy znakami, TOOLTIP_FONT_STYLE styl czcionki dla podpowiedzi w dymku, TOOLTIP_FONT_WEIGHT szerokość czcionki dla podpowiedzi w dymku, TOOLTIP_FOREGROUND_COLOR kolor pierwszoplanowy dla podpowiedzi w dymku, TOOLTIP_TEXT tekst podpowiedzi umieszczanej w dymku, TOOLTIP_WHITE_ON_BLACK specyfikuje monochromatyczny charakter wyświetlania podpowiedzi w dymku (biały tekst na czarnym tle), 34

35 UPDATE_ALLOWED określa czy możliwa jest modyfikacja wartości w danym elemencie. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, UPDATE_COLUMN określa czy kolumna powinna być traktowana jako zmodyfikowana w poleceniu update zapisującym dane do bazy. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, UPDATE_NULL określa możliwość modyfikacja elementu tylko na wartością pustą (PROPERTY_TRUE) lub pozwala na dowolne modyfikacje (PROPERTY_FALSE), UPDATE_PERMISSION specyfikuje zezwolenie na modyfikację elementu. Dozwolone są wartości: PROPERTY_TRUE, PROPERTY_FALSE, VALIDATE_FROM_LIST określa walidację elementu za pomocą skojarzonej z nim listy wartości. Możliwe wartości to: PROPERTY_TRUE, PROPERTY_FALSE, VISIBLE określa widoczność elementu. Dostępne wartości to: PROPERTY_TRUE i PROPERTY_FALSE, VISUAL_ATTRIBUTE określa nazwę atrybutu wizualnego, WHITE_ON_BLACK określa monochromatyczny sposób wyświetlania elementu (biały tekst na czarnym tle), WIDTH szerokość elementu, X_POS liczba określająca współrzędną poziomą elementu, Y_POS liczba określająca współrzędną poziomą elementu, - value wartość dla ustawianej własności. Często jest to napis lub jedna z dostępnych wartości własności: PROPERTY_TRUE ustawienie wartości na true, PROPERTY_FALSE ustawienie wartości na false, - x współrzędzna pozioma lub szerokość elementu, - y współrzędna pionowa lub wysokość elementu. GET_ITEM_PROPERTY funkcja pobierająca wartość wskazanej własności danego elementu. Zwracana jest wartość w postaci zmiennej typu napisowego. Składnia: - FUNCTION GET_ITEM_PROPERTY (item_id ITEM, property NUMBER); - FUNCTION GET_ITEM_PROPERTY (item_name VARCHAR2, property NUMBER); Parametry: - item_id specyfikuje unikalny identyfikator elementu (można go odczytać za pomocą funkcji FIND_ITEM), - item_name nazwa elementu, 35

36 - property jedna z dostępnych własności: AUTO_HINT zwraca napis TRUE jeśli jest automatyczne wyświetlanie podpowiedzi, FALSE jeśli podpowiedzi nie są automatycznie wyświetlane, AUTO_SKIP zwraca napis TRUE jeśli własność automatycznego pomijania jest ustawiona na Yes, FALSE jeżeli własność jest ustawiona na No, BACKGROUND_COLOR kolor tła, BLOCK_NAME nazwa bloku, w którym występuje danym element, BORDER_BEVEL zwraca wartości: RAISED, LOWERED, PLAIN w zależności od tego jak wyświetlana jest krawędź elementu, CASE_INSENSITIVE_QUERY zwraca napis TRUE jeśli pole nie jest wrażliwe na wielkość liter, FALSE jeśli jest wrażliwe na wielkość liter, CASE_RESTRICTION zwraca napis UPPERCASE gdy element wyświetla napisy zapisane wielkimi literami, LOWERCASE małymi, NONE wielkość liter nie ma znaczenia, COLUMN_NAME nazwa kolmny w bazie danych, z którą powiązany jest dany element, COMPRESS określa czy dane muzyczne podlegały kompresji (TRUE tak, FALSE nie), CONCEAL_DATA zwraca TRUE jeżeli napis wpisywany w pole jest ukrywane, FALSE jeżeli jest wyświetlany, CURRENT_RECORD_ATTRIBUTE zwraca nazwę atrybutu wizualnego aktualnego rekordu, CURRENT_ROW_BACKGROUND_COLOR kolor tła dla aktualnego rekordu, CURRENT_ROW_FILL_PATTERN wzór wypełniający dla aktualnego rekordu, CURRENT_ROW_FONT_NAME nazwa czcionki dla aktualnego rekordu, CURRENT_ROW_FONT_SIZE wielkość czcionki dla aktualnego rekordu, CURRENT_ROW_FONT_SPACING wielkość czcionki dla aktualnego rekordu wyrażona jako odstęp pomiędzy znakami, CURRENT_ROW_FONT_STYLE nazwa stylu czcionki dla aktualnego rekordu, CURRENT_ROW_FONT_WEIGHT szerokość czcionki dla aktualnego rekordu, CURRENT_ROW_FOREGROUND_COLOR kolor pierwszego planu dla aktualnego wiersza, 36

37 CURRENT_ROW_WHITE_ON_BLACK określa czy element jest wyświetlany w sposób monochromatyczny (biały tekst na czarnym tle), DATABASE_VALUE dla elementu bazodanowego zwraca wartość elementu odczytaną z bazy danych, DATATYPE zwraca typ danych elementu: ALPHA, CHAR, DATE, JDATE, EDATE, DATETIME, INT, RINT, MONEY, RMONEY, NUMBER, RNUMBER, TIME, LONG, GRAPHICS, IMAGE. DIRECTION zwraca kierunek wyświetlania elementu: RIGHT_TO_LEFT, LEFT_TO_RIGHT. DISPLAYED określa czy element jest wyświetlany (TRUE lub FALSE), ECHO zwraca informację o tym czy wpisywanie danych w elemencie powoduje wyświetlanie znaków czy też nie (TRUE lub FALSE), EDITOR_NAME zwraca nazwę edytora skojarzonego z elementem, EDITOR_X_POS zwraca współrzędną x dla edytora, EDITOR_Y_POS zwraca współrzędną y dla edytora, ENFORCE_KEY zwraca nazwę elementu, którego wartość jest kopiowana do danego elementu jako klucza obcego (w momencie tworzenia nowego rekordu w relacji nadrzędznypodrzędny), ENABLED zwraca TRUE jeśli element jest dostępny, FALSE gdy jest niedostępny, FILL_PATTERN wzór wypełniający element, FIXED_LENGTH zwraca napis TRUE jeżeli następuje jeśli element ma zdefiniowaną stałą wielkość, FALSE jeśli nie jest sprawdzana ilość znaków z maksymalnym rozmiarem pola, FONT_NAME nazwa czcionki, FONT_SIZE rozmiar czcionki, FONT_SPACING szerokość czcionki określona jako odległość pomiędzy znakami, FONT_STYLE styl czcionki, FONT_WEIGHT szerokość czcionki, FOREGROUND_COLOR kolor pierwszego planu, FORMAT_MASK zwrca maskę formatu zdefiniowną dla elementu tekstowego, HEIGHT zwraca wysokość czcionki, HINT_TEXT zwraca tekst podpowiedzi wyświetlany w linii statusu, ICON_NAME zwraca nazwę pliku ikony, 37

38 Projektowanie i implementacja systemów informatycznych ICONIC_BUTTON zwraca TRUE gdy przycisk posiada ikonę, FALSE jeśli przycisk nie zawiera ikony, IMAGE_DEPTH zwraca ilość (głębię) kolorów dla elementu typu obraz, IMAGE_FORMAT zwraca format elementu typu obraz, INSERT_ALLOWED zwraca TRUE jeśli dozwolone wstawianie nowych wartości i modyfikacja istniejących, ITEM_CANVAS zwraca nazwę kanwy, z którą jest skojarzony element, ITEM_IS_VALID określa czy element jest poprawny (TRUE lub FALSE), ITEM_NAME zwraca nazwę elementu, ITEM_TAB_PAGE zwraca nazwę zakłdaki (karty), z którą jest skojarzony dany element, ITEM_TYPE zwraca typ elementu (BUTTON przycisk, CHART ITEM wykres, CHECKBOX pole wyboru, DISPLAY ITEM element wyświetlania, IMAGE obraz, LIST lista, OLE OBJECT kontrolka OCX lub kontener OLE, RADIO GROUP grupa przycisków radiowych, TEXT ITEM element tekstowy, VBX CONTROL kotrolka VBX), JUSTIFICATION wyrównanie tekstu elementu (START, END, LEFT, CENTER, RIGHT), KEEP_POSITION zwraca napis TRUE jeśli zapamiętywana jest pozycja kursora w polu (przy ponownym do niego wejściu kursor ustawia się w poprzedniej pozycji), FALSE gdy pozycja nie jest zapamiętywana, LABEL zwraca napis reprezentujący etykiętę pola, LIST zwraca napis TRUE jeżeli pole jest skojarzone z listą wartości (LOV), FALSE jeśli lista wartości (LOV) nie jest przypisana do pola, LOCK_RECORD_ON_CHANGE zwraca TRUE gdy następuje lokowanie rekordu po zmianie wartości w polu, FALSE jeśli zmiana wartości w polu nie pociąga za sobą lokowania rekordu, LOV_NAME zwraca nazwę listy wartości (LOV) skojarzonej z elementem, LOV_X_POS zwraca współrzędną x listy wartości (LOV), LOV_Y_POS zwraca współrzędną y listy wartości (LOV), MAX_LENGTH zwraca maksymalny rozmiar pola, MERGE_CURRENT_ROW_VA określa łączenie (a nie zastępowanie) atrybutu wizualnego bieżącego rekordu z atrybutem wizualnym przypisanym do danego elementu, 38

39 Projektowanie i implementacja systemów informatycznych MERGE_TOOLTIP_ATTRIBUTE określa łączenie (a nie zastępowanie) atrybutu wizualnego elementu z atrybutem wizualnym przypisanym do podpowiedzi, MERGE_VISUAL_ATTRIBUTE określa łączenie (a nie zastępowanie) wyspecyfikowanego atrybutu z bieżącym atrybutem wizualnym obiektu, MOUSE_NAVIGATE zwraca TRUE jeśli nawigacja za pomocą myszki przenosi focus do danego elementu, FALSE jeżeli nie przenosi, MULTI_LINE zwraca napis TRUE jeśli element umożliwia wprowadzanie napisów wieloliniowych, FALSE element przechwuje pojedynczą linię, NAVIGABLE zwraca TRUE jeśli element jest nawigowalny, FALSE gdy element nie jest nawigowalny, NEXTITEM zwraca nazwę następnego elementu w Nawigatorze Obiektów, NEXT_NAVIGATION_ITEM zwrca nazwę następnego elementu w nawigacji, POPUPMENU_CONTENT_ITEM zwraca ustawienia menu kontekstowego dla obiektu OLE, PREVIOUSITEM zwraca nazwę poprzedniego elementu w Nawigatorze Obiektów, PREVIOUS_NAVIGATION_ITEM zwraca nazwę poprzedniego elementu w nawigacji, PRIMARY_KEY zwraca napis TRUE jeśli element wchodzi w skłąd klucza głównego, FALSE jeśli element nie jest kluczem głównym, PROMPT_ALIGNMENT_OFFSET zwrca odległość pomiędzy elementem i jego opisem, PROMPT_BACKGROUND_COLOR kolor tła opisu pola, PROMPT_DISPLAY_STYLE styl wyświetlania opisu pola (FIRST_RECORD, HIDDEN, ALL_RECORDS), PROMPT_EDGE zwraca krawęź, przy której jest umieszczany opis pola (START, END, TOP, BOTTOM), PROMPT_EDGE_ALIGNMENT zwraca wyrównanie opisu pola (START, END, CENTER), PROMPT_EDGE_OFFSET zwraca odległość pomiędzy opisem i polem, PROMPT_FILL_PATTERN wzór wypełniający opis pola, PROMPT_FONT_NAME nazwa czcionki dla opisu pola, PROMPT_FONT_SIZE wielkość czcionki dla opisu pola, PROMPT_FONT_SPACING szerokość czcionki opisu pola wyrażona jako odległóść pomiędzy znakami, PROMPT_FONT_STYLE styl czcionki opisu pola, 39

40 PROMPT_FONT_WEIGHT szerokość czionki dla opisu pola, PROMPT_FOREGROUND_COLOR kolor pierwszego planu dla opisu pola, PROMPT_TEXT tekst opisu pola, PROMPT_TEXT_ALIGNMENT zwraca sposób wyrównania opisu pola (START, LEFT, RIGHT, CENTER, END), PROMPT_VISUAL_ATTRIBUTE zwraca nazwę atrybutu wizualnego opisu pola, PROMPT_WHITE_ON_BLACK określa czy opis pola jest wyświetlany w sposób monochromatyczny (białe napisy na czarnym tle), QUERYABLE zwrca napis TRUE jeśli element może być uwzględniany w kryteriach zapytania, FALSE gdy element nie jest uwzględniany w kryteriach wprowadzanego zapytania, QUERY_LENGTH zwraca ilość znaków, które może wprowadzić operator w trybie wprowadzania zapytania, QUERY_ONLY zwraca napis TRUE jeżeli pole może być używane tylko w zapytanie, FALSE gdy pole może podlegać też innym operacjom, RANGE_HIGH zwraca największą możliwą wartość zdefiniowaną dla pola, RANGE_LOW zwraca najmniejszą możliwą wartość zdefiniowaną dla pola, REQUIRED zwraca napis TRUE jeśli pole jest obowiązkowe, FALSE gdy pole nie jest obowiązkowe, SCROLLBAR określa dostępność paska przewijania (TRUE lub FALSE), SHOW_FAST_FORWARD_BUTTON określa dostępność przycisku przewijania do przodu dla elementu muzycznego, SHOW_PLAY_BUTTON określa dostępność przycisku do odtwarzania dla elementu muzycznego, SHOW_RECORD_BUTTON określa dostępność przycisku do nagrywania dla elementu muzycznego, SHOW_REWIND_BUTTON określa dostępność przycisku przewijania dla elementu muzycznego, SHOW_SLIDER określa dostępność paska postępu dla elementu muzycznego, SHOW_TIME_INDICATOR określa dostępność wskaźnika czasu dla elementu muzycznego, SHOW_VOLUME_CONTROL określa dostępność regulacji głośności dla elementu muzycznego. Dozwolone wartości to: PROPERTY_TRUE i PROPERTY_FALSE, 40

41 SHOW_PALETTE zwraca napis TRUE jeśli możliwa jest manipulacja kolorów dla elementu obrazowgo, TOOLTIP_BACKGROUND_COLOR kolr tła dla podpowiedzi w dymku, TOOLTIP_FILL_PATTERN wzór wypełniający dla podpowiedzi w dymku, TOOLTIP_FONT_NAME nazwa czcionku dla podpowiedzi w dymku, TOOLTIP_FONT_SIZE rozmiar czcionki dla podpowiedzi w dymku, TOOLTIP_FONT_SPACING szerokość czcionki podpowiedzi w dymku określona jako odstęp pomiędzy znakami, TOOLTIP_FONT_STYLE styl czcionki dla podpowiedzi w dymku, TOOLTIP_FONT_WEIGHT szerokość czcionki dla podpowiedzi w dymku, TOOLTIP_FOREGROUND_COLOR kolor pierwszoplanowy dla podpowiedzi w dymku, TOOLTIP_WHITE_ON_BLACK określa czy podpowiedź w dymku jest wyświetlana w sposób monochromatyczny (biały napis na czarnym tle), TOOLTIP_TEXT zwrca tekst napisu umieszczany w dymku podpowiedzi, UPDATE_ALLOWED zwraca napis TRUE jeśli element zzwala na modyfikację wartości, FALSE gdy modyfikacja nie jest dozwolona, UPDATE_COLUMN zwraca napis TRUE jeżeli element ma być traktowany jako zmodyfikowany, UPDATE_NULL zwrca napis TRUE jeśli wartość elementu może być zmodyfikowana tylko na wartośc pustą (NULL), FALSE jeśli dowolna modyfikacja jest dopuszczalna, UPDATE_PERMISSION określa dostępność modyfikacji pola (TRUE lub FALSE), VALIDATE_FROM_LIST zwraca napis TRUE jeżeli element jest walidowany za pomocą listy wartości (LOV), FALSE gdy element nie podlega walidacji za pomocą listy wartości, VISIBLE zwraca napis TRUE jeśli element jest widoczny, FALSE element niewidoczny, VISUAL_ATTRIBUTE zwraca nazwę atrybutu wizualnego skojarzonego z polem, WHITE_ON_BLACK - określa czy pole wyświetlane jest w sposób monochromatyczny (biały napis na czarnym tle), WIDTH szerokość pola, 41

42 WINDOW_HANDLE zwraca nazwę uchwytu do obiektu. Wartość 0 oznacza, że środowiskiem uruchomieniowym nie jest system Microsoft Windows, WRAP_STYLE okresla styl łamania tekstu w polu (WORD łamanie z uwzględnieniem wyrazów, NONE brak łamania), X_POS zwraca liczbę określającą współrzędną poziomą elementu, Y_POS zwraca liczbę określającą współrzędną poziomą elementu, SET_LOV_PROPERTY procedura pozwalająca na ustawienie wybranej własności dla listy wartości (LOV). Składnia: - SET_LOV_PROPERTY (lov_id LOV, property NUMBER, value NUMBER); - SET_LOV_PROPERTY (lov_name VARCHAR2, property NUMBER, value NUMBER); - SET_LOV_PROPERTY (lov_id LOV, property NUMBER, x NUMBER, y NUMBER); - SET_LOV_PROPERTY (lov_name VARCHAR2, property NUMBER, x NUMBER, y NUMBER); Parametry: - lov_id specyfikuje unikalny identyfikator listy wartości LOV (można go odczytać za pomocą funkcji FIND_LOV), - lov_name nazwa listy wartości (LOV). - property jedna z dostępnych własności: AUTO_REFRESH specyfikuje automatyczne odświeżanie listy wartości przy każdym wywołaniu, GROUP_NAME określa powiązanej z listą wartości grupy rekordów, LOV_SIZE określa szerokość i wysokość listy wartości, POSITION pozycja listy wartości, TITLE tytuł listy wartości, 42

43 - value wartość dla ustawianej własności. Może być to nazwa grupy rekordów lub jedna z dostępnych wartości własności: PROPERTY_TRUE ustawienie wartości na true, PROPERTY_FALSE ustawienie wartości na false, - x współrzędzna pozioma lub szerokość listy wartości, - y współrzędna pionowa lub wysokość listy wartości. GET_LOV_PROPERTY funkcja zwracająca wartość wybranej własności dla podanej listy wartości (LOV). Składnia: - FUNCTION GET_LOV_PROPERTY (lov_id, property LOV); - FUNCTION GET_LOV_PROPERTY (lov_name VARCHAR2, property NUMBER); Parametry: - lov_id specyfikuje unikalny identyfikator listy wartości LOV (można go odczytać za pomocą funkcji FIND_LOV), - lov_name nazwa listy wartości (LOV). - property jedna z dostępnych własności: AUTO_REFRESH określa automatyczne odświeżanie danych listy przy każdym jej wyświetleniu (TRUE lub FALSE), GROUP_NAME zwraca nazwę grupy rekordów powiązanej z daną listą wartości (LOV), HEIGHT wysokość listy wartości (LOV), WIDTH zwraca szerokość listy wartości, X_POS zwraca współrzędną x lewego górnego rogu listy wartości (LOV), Y_POS zwraca współrzędną y lewego górnego rogu listy wartości (LOV), SHOW_LOV funkcja wyświetla wskazaną listę wartości (LOV) i zwraca napis TRUE jeśli użytkownik wybrał jedną z wartości, FALSE gdy nie została wybrana żadna wartość. Składnia: - SHOW_LOV (lov_id LOV); - SHOW_LOV (lov_id LOV, x NUMBER, y NUMBER); - SHOW_LOV (lov_name VARCHAR2); 43

44 - SHOW_LOV (lov_name VARCHAR2, x NUMBER, y NUMBER); Parametry: - lov_id specyfikuje unikalny identyfikator listy wartości (można go odczytać za pomocą funkcji FIND_LOV), - lov_name nazwa listy wartości. - x współrzędna x listy wartości, - y współrzędna y listy wartości. SET_ALERT_PROPERTY procedura pozwalająca na ustawienie wybranej własności dla alertu. Składnia: - SET_ALERT_PROPERTY (alert_id ALERT, property NUMBER, message VARCHAR2); - SET_ALERT_PROPERTY (alert_name VARCHAR2, property NUMBER, message VARCHAR2); Parametry: - alert_id specyfikuje unikalny identyfikator alertu (można go odczytać za pomocą funkcji FIND_ALERT), - alert_name nazwa alertu, - property jedna z dostępnych własności: ALERT_MESSAGE_TEXT tekst komunikatu wyświetlanego w alercie, TITLE tytuł okienka z alertem, - message tekst danej własności. SHOW_ALERT funkcja wyświetla wskazany alert i zwraca wartość numeryczna określającą naciśnięty przycisk (ALERT_BUTTON1, ALERT_BUTTON2, ALERT_BUTTON3). Składnia: - SHOW_ALERT (alert_id Alert); - SHOW_ALERT (alert_name VARCHAR2); Parametry: - alert_id specyfikuje unikalny identyfikator alertu (można go odczytać za pomocą funkcji FIND_ALERT), - alert_name nazwa alertu. 44

45 Ćwiczenie 4 1. Utwórz nowy formularz (File->New->Form). Dodaj do niego za pomocą kreatora (Tools->Data Block Wizard) blok oparty na tabeli Samochody. Zapewnij obsługę kolumn ID, ROK, KOLOR, OPIS, MODEL_ID, TYP i wyświetlanie 15 wierszy zawierających kolumny ROK, KOLOR, OPIS. Dodaj pasek przewijania. Uzupełnij stosownie podpowiedzi dla wyświetlanych pól. Ustaw właściwość ramki otaczającej blok SAMOCHODY tak aby dozwolone były ręczne modyfikacje układu (własność Update Layout=Manually). 2. Zapewnij aby było wyświetlane pojedyncze (własność Number of Items Displayed=1) wielowierszowe (własność Multi-Line=Yes) pole OPIS. 3. Dla elementu KOLOR zmień typ elementu (własność Item Type) na listę (wartość List Item) i ustaw jej styl (własność List Style) jako Poplist. Wpisz elementy dostępne na liście (własność List Elements): Ustaw wartość początkową (własność Initial Value) pola KOLOR na kolor Biały. 4. Dla pola Rok ustaw najmniejszą dozwoloną wartość (własność Lowest Allowed Value) na rok 1950, zaś największą dozwoloną wartość (Highest Allowed Value) na Zmień nazwę okna (własność Name) na WINDOW_SAMOCHODY i ustaw tytuł okna (własność Title) na Samochody. 45

46 6. Dodaj do bloku SAMOCHODY niebazodanowe pole (własność Database Item=No) o nazwie MARKA. Zmień jego typ (własność Item Type) na List Item i ustaw styl listy (List Style) jako Combo Box. Dopisz wartości dostępne na liście (własność List Elements): Ustaw wartość początkową (własność Initial Value) pola MARKA na TOY. 7. Dodaj na poziomie forumlarza wyzwalacz WHEN-NEW-FORM- INSTANCE, który zapewni dynamiczne wypełnienie listy MARKA wartościami dostępnych marek samochodów (tabela MARKI), zmaksymalizuje okno MDI i okno formularza oraz automatycznie wczyta dane. Wykorzystaj kod: -- Wypełnij pole marki declare rec_id RecordGroup; temp number; begin if not Id_Null(rec_id) then -- Grupa istnieje - trzeba ją usunąć delete_group(rec_id); end if; rec_id:=create_group_from_query('rg_marki', 'select nazwa, kod from marki order by nazwa'); temp := Populate_group(rec_id); populate_list('samochody.marka', rec_id); end; 46

47 -- Zmaksymalizuj okno MDI set_window_property(forms_mdi_window, WINDOW_STATE,MAXIMIZE); -- Zmaksymalizuj okno set_window_property('window_samochody', WINDOW_STATE,MAXIMIZE); -- Wykonanie zapytania po wywołaniu formularza go_block('samochody'); execute_query; 8. Dodaj do bloku SAMOCHODY pole tekstowe (własność Item Type=Text Item) o nazwie MODEL. Zapewnij aby było ono wymagalne (własność Required=Yes) i umożliwiało przechowywanie napisów (własność Data Type=Char) 30 znakowych (własność Maximum Length=30). 9. Dodaj do bloku SAMOCHODY przycisk (własność Item Type=Push Button) o nazwie BTN_MODEL i ustaw dla niego własność Mouse Navigate na No. 10.Dodaj listę wartości (LOV) o nazwie LOV_MODELE. Do jej utworzenia wykorzystaj kreator list wartości. Posłuż się zapytaniem: select nazwa, id from modele where marka_kod=:samochody.marka order by nazwa 47

48 Dodaj do LOV obydwie kolumny z grupy rekordów (NAZWA, ID): 48

49 Ustaw szerokość kolumny ID na 0 i wartość zwracaną jako SAMOCHODY.MODEL_ID. Dla kolumny NAZWA ustaw element zwracany na SAMOCHODY.MODEL: Ustaw tytuł okna listy wartości LOV na Modele: Powiąż tworzoną listę wartości z polem SAMOCHODY.MODEL: 49

50 Ustaw dla pola SAMOCHODY.MODEL własność Validate from List na No. 11.Dla przycisku BTN_MODEL dodaj kod zapewniający wyświetlenie listy wartości skojarzonej z polem SAMOCHODY.MODEL: -- przejdź do elementu model i wywołaj skojarzoną -- z nim listę wartości go_item('samochody.model'); do_key('list_values'); 12.Dodaj do bloku SAMOCHODY pole tekstowe (własność Item Type=Text Item) o nazwie NADWOZIE. Zapewnij aby było ono wymagalne (własność Required=Yes) i umożliwiało przechowywanie napisów (własność Data Type=Char) 10 znakowych (własność Maximum Length=10). 13.Dodaj do bloku SAMOCHODY przycisk (własność Item Type=Push Button) o nazwie BTN_TYP i ustaw dla niego własność Mouse Navigate na No. 14.Dodaj do bloku SAMOCHODY pole wyświetlania (własność Item Type=Display Item) o nazwie DRZWI. Zapewnij aby umożliwiało ono 50

51 przechowywanie liczb (własność Data Type=Number). Uporządkuj elementy w Nawigatorze Obiektów według kolejności przedstawionej poniżej: Zapewnij wygląd formularza zbliżony do zamieszczonego poniżej: 15.Dodaj listę wartości (LOV) o nazwie LOV_TYP. Do jej utworzenia wykorzystaj kreator list wartości. Posłuż się zapytaniem: select nazwa, kod, ilosc_drzwi from typy_nadwozi order by nazwa 51

52 Ustaw odpowiednio zwracane elementy: SAMOCHODY.NADWOZIE - NAZWA, SAMOCHODY.TYP KOD, SAMOCHODY.DRZWI ILOSC_DRZWI. Zmień stosownie szerokość wyświetlania kolumn (np. dla KOD=0). Tytuł okna LOV ustaw na Typy nadwozi. Powiąż listę wartości z polem SAMOCHODY.NADWOZIE. Ustaw dla pola SAMOCHODY.NADWOZIE własność Validate from List na No. 16.Dla przycisku BTN_TYP dodaj kod zapewniający wyświetlenie listy wartości skojarzonej z polem SAMOCHODY.NADWOZIE: -- przejdź do elementu nadwozie i wywołaj -- skojarzoną z nim listę wartości go_item('samochody.nadwozie'); do_key('list_values'); 17.Dla bloku SAMOCHODY zdefiniuj wyzwalacz POST-QUERY obstawiający pole MARKI, MODEL, NADWOZIE, DRZWI: -- pobierz nazwę modelu i marki select mk.kod, md.nazwa into :samochody.marka, :samochody.model from marki mk, modele md where mk.kod=md.marka_kod and md.id=:samochody.model_id; -- pobierz typ nadwozia i ilość drzwi select nazwa, ilosc_drzwi into :samochody.nadwozie, :samochody.drzwi from typy_nadwozi where kod=:samochody.typ; 18.Zapewnij aby zmiana marki samochodu powodowała wyświetlenie listy wartości z modelami aktualnie wybranej marki. Zdefiniuj na poziomie elementu SAMOCHODY.MARKI wyzwalacz WHEN-LIST- CHANGED: -- po zmianie marki pokaż lov z wyborem -- modeli danej marki GO_ITEM('SAMOCHODY.MODEL'); DO_KEY('LIST_VALUES'); 19.Zdefiniuj parametr o nazwie P_MODEL_ID typu NUMBER(30). 20.Dla bloku SAMOCHODY ustaw własność WHERE Clause na: 52

53 MODEL_ID=NVL(:PARAMETER.P_MODEL_ID, MODEL_ID) 21.Zdefiniuj atrybut wizualny o nazwie AKTUALNY_REKORD. Ustaw dla niego kolor tła na cyan. Zapewnij aby bieżący rekord w bloku SAMOCHODY wykorzystywał atrybut AKTUALNY_REKORD. 22. Uruchom i przetestuj formularz. 53

54 Aplikacje wieloformularzowe Oracle Forms Builder w pełni wspomaga tworzenie aplikacji wieloformularzowych. Istnieją metody umożliwiające wywoływanie wskazanego formularza zarówno z modułu menu jak i z modułu innego formularza. Sposoby wymiany danych pomiędzy formularzami: lista parametrów w formularzu wywołującym należy utworzyć listę parametrów, dodać do niej parametr o określonej nazwie i zdefiniowanej wartości, a następnie przekazać listę w wywołaniu funkcji uruchamiającej kolejny formularz. W formularzu wywoływanym musi istnieć parametr o zadanej nazwie (w Nawigatorze Obiektów gałąź Parameters). Istnieje możliwość przekazywania parametrów typu CHAR, DATE, NUMBER. zmienne globalne umożliwiają swobodną komunikację pomiędzy formularzami. Definiowanie zmiennej globalnej odbywa się za pośrednictwem instrukcji przypisania lub wbudowanej procedury DEFAULT_VALUE (przypisuje ona do zmiennej, której nazwa przekazana jest drugim parametrem wartość tekstową przekazaną w pierwszym parametrze, gdy zmienna nie jest jeszcze obstawiona, np. DEFAULT_VALUE ('Seat','GLOBAL.P_MARKA') ). W formularzu wywoływanym aby odwołać się do zmiennej globalnej wystarczy podać nazwę żądanej zmiennej poprzedzoną prefiksem :GLOBAL (np. :GLOBAL.P_MARKA). Odwołanie do zmiennej, która nie jest zdefiniowana powoduje błąd. Widzialność zmiennych globalnych dotyczy sesji (połączenia) użytkownika z bazą. Przydatne wbudowane programy: CALL_FORM procedura umożliwiająca wywołanie wskazanego formularza z podanymi parametrami. Składnia: - PROCEDURE CALL_FORM (formmodule_name VARCHAR2); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, 54

55 switch_menu NUMBER, query_mode NUMBER); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER, query_mode NUMBER, data_mode NUMBER); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER, query_mode NUMBER, paramlist_id PARAMLIST); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER, query_mode NUMBER, paramlist_name VARCHAR2); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER, query_mode NUMBER, data_mode NUMBER, paramlist_id PARAMLIST); - PROCEDURE CALL_FORM (formmodule_name VARCHAR2, display NUMBER, switch_menu NUMBER, query_mode NUMBER, data_mode NUMBER, paramlist_name VARCHAR2); Parametry: - formmodule_name napis reprezentujący nazwę wywoływanego formularza, - display określa zachowanie formularza wywołującego. Dozwolone wartości to: HIDE wartość domyślna, formularz wywołujący zostanie ukryty przed pokazaniem formularza wywoływanego, NO_HIDE formularz wywołujący nie zostanie ukryty przy wywołaniu z niego innego formularza, 55

56 - switch_menu określa zachowanie menu w formularzu wywoływanym. Dozwolone wartości to: NO_REPLACE wartość domyślna, menu w formularzu wywoływanym pozostanie takie jak w formularzu wywołującym, DO_REPLACE menu w formularzu wywoływanym będzie taki jak zdefiniowane w trakcie jego projektowania, - query_mode określa tryb pracy wywoływanego formularza. Dozwolone wartości to: NO_QUERY_ONLY wartość domyślna, wywoływany formularz będzie pracował w normalnym trybie, możliwe będzie w nim zarówno wykonywanie zapytań jak i modyfikacji, QUERY_ONLY w wywoływanym formularzu możliwe będzie tylko odczytywanie danych z bazy, nie będą możliwe modyfikacje, - data_mode określa współdzielenie danych pomiędzy formularzami. Możliwe wartości to: NO_SHARE_LIBRARY_DATA wartość domyślna, specyfikuje że dane nie będą współdzielenie pomiędzy formularzami mającymi dołączone takie same biblioteki, SHARE_LIBRARY_DATA określa współdzielenie danych pomiędzy formularzami mającymi dołączone takie same biblioteki, - paramlist_id identyfikator listy parametrów (typu PARAMLIST), - paramlist_name napis reprezentujący nazwę listy parametrów. 56

57 Biblioteki PL/SQL Projektowanie i implementacja systemów informatycznych Oracle Forms Builder umożliwia tworzenie bibliotek PL/SQL, które mogą być następnie wykorzystywane (dołączane) w formularzach bądź raportach. Jeżeli jakiś fragment kodu jest często wykorzystywany i da się sparametryzować oraz umieścić w bibliotece PL/SQL, to jest to zalecane ze względu na możliwość współdzielenia kodu pomiędzy różnymi modułami oraz na łatwiejszą konserwację kodu. W celu utworzenia biblioteki PL/SQL z menu Forms Builder należy wybrać File->New->PL/SQL Library. Następnie w gałęzi Program Units (Moduły programu) można zdefiniować metody dostępne w bibliotece: Moduł źródłowy biblioteki PL/SQL zapisywany jest w plikach z rozszerzeniem pll (stanowi on jednocześnie postać źródłową i uruchomieniową). Moduł uruchomiony generowany jest do pliku plx, zaś postać źródłowa tekstowa pld. W celu dołączenia utworzonej biblioteki do danego modułu (formularz, menu, raport) należy spowodować jej umieszczenie w gałęzi Attached Libraries (Dołączone Biblioteki): 57

58 Ważne jest aby z dołączanej biblioteki usunąć ścieżkę, ponieważ uniezależni to środowisko uruchomieniowe aplikacji od specyficznego położenia bibliotek: Należy zapewnić aby stosowny plik uruchomieniowy biblioteki znajdował się na ścieżce przeszukiwań modułów (ustawienia zmiennej środowiskowej FORMS90_PATH). W module z dołączoną biblioteką można korzystać z metod zdefiniowanych w bibliotece tak jak odbywa się to w przypadku podprogramów wbudowanych. Ćwiczenie 5 1. Utwórz nową bibliotekę PL/SQL (File->New->PL/SQL Library). Zapisz bibliotekę w pliku auta_bibl.pll. W bibliotece utwórz procedurę o nazwie FORMULARZ, która będzie umożliwiała wywoływanie formularza o podanej nazwie i zadanej liście parametrów: PROCEDURE formularz(p_nazwa varchar2, p_pl_id paramlist) IS BEGIN -- wywołaj formularz o podanej nazwie z -- zadaną listą parametrów CALL_FORM(p_nazwa, no_hide, do_replace, no_query_only, p_pl_id); END; 2. Dołącz bibliotekę auta_bibl.pll do menu menu_main.mmb. Zapewnij usunięcie ścieżki do biblioteki. Dodaj do menu słowniki wywoływanie formularza marki_modele. Pomiędzy opcjami z menu Słowniki dodaj separator (ustaw włąsność Menu Item Type na Separator). Zapewnij wygląd menu zbliżony do poniższego: 58

59 Do wywołania formularza marki_modele wykorzystaj procedurę formularz zdefiniowaną w bibliotece auta_bibl.pll: -- wywołaj formularz marki_modele, przekaż pustą -- listę parametrów FORMULARZ('marki_modele',NULL); 3. Wygeneruj plik mmx dla menu_main i wgraj go w stosowne miejsce znajdujące się na ścieżce FORM90_PATH, uruchom formularz main.fmb i sprawdź działanie nowej opcji menu. 4. Do menu menu_main.mmb dodaj wywołanie formularza samochody. Zapewnij następujący wygląd menu: 59

60 Posłuż się kodem: Projektowanie i implementacja systemów informatycznych -- wywołaj formularz samochody, -- przekaż pustą listę parametrów FORMULARZ('samochody',NULL); 5. Wygeneruj plik mmx dla menu_main i wgraj go w stosowne miejsce znajdujące się na ścieżce FORM90_PATH, uruchom formularz main.fmb i przetestuje działanie nowej opcji menu. 6. Otwórz formularz marki_modele.fmb i dodaj w bloku MODELE przycisk BTN_SAMOCHODY i umieść na nim etykietę Samochody : 7. Dołącz do formularza marki_modele.fmb bibliotekę auta_bibl.pll 8. Dodaj w formularzu procedurę WYWOLAJ_FORMULARZ (Program Units, Moduły programu), która będzie odpowiadać za wywołanie formularza samochody tak aby pokazywał on tylko samochody aktualnie wybranego modelu (UWAGA: formularz samochody.fmb ma dodany parametr p_model_id typu number oraz w bloku SAMOCHODY dodany warunek z klauzuli WHERE): 60

61 PROCEDURE wywolaj_formularz(p_id_modelu number) IS pl_id ParamList; begin -- znajdź id listy pl_id := Get_Parameter_List('param'); -- jeśli znaleziono id to usuń listę if not Id_Null(pl_id) then Destroy_Parameter_List(pl_id); end if; -- jeśli podano id modelu, to utwórz listę -- i dodaj do niej parametr z id aktualnego -- modelu if p_id_modelu is not null then pl_id := Create_Parameter_List('param'); Add_Parameter(pl_id,'P_MODEL_ID', TEXT_PARAMETER, to_char(p_id_modelu)); end if; -- wywołaj formularz FORMULARZ('samochody', pl_id); end; 9. Dla przycisku BTN_SAMOCHODY dodaj wyzwalacz WHEN- BUTTON-PRESSED wywołujący procedurę wywolaj_formularz z przekazanym jako parametr identyfikatorem aktualnie wybranego modelu: wywolaj_formularz(:modele.id); 61

62 Borland C++ Builder Projektowanie i implementacja systemów informatycznych Borland C++ Builder jest typowym środowiskiem typu RAD (Rapid Application Development) umożliwiającym szybkie tworzenie programów z interfejsem graficznym Windows. Środowisko to może w szczególności posłużyć do budowania interfejsu graficznego do bazy danych. Obsługiwana jest w zasadzie większość dostępnych obecnie relacyjnych baz danych (Oracle, DB2, dbase, Informix, MSSQL Server, Access i inne). Do bazy danych Oracle można łączyć się z poziomu aplikacji utworzonych w Borland C++ Builder na kilka sposobów ODBC lub sterowniki natywne (m.in. ODAC, DOAC). W obu sytuacjach konieczna jest obecność w systemie zainstalowanych sterowników klienta Oracle (przede wszystkim obsługa protokołu SQL*Net). ODBC ODBC (Open DataBase Connectivity) stanowi otwarty interfejs dający możliwość komunikacji z dowolną bazą danych. Wymogiem jest zarejestrowanie w systemie stosownego sterownika. Niektóre z nich są dostarczane wraz z instalacją systemu operacyjnego bądź z instalacją serwera/klienta określonej bazy danych. W razie konieczności istnieje również możliwość samodzielnej instalacji bądź aktualizacji wybranych sterowników. W przypadku łączenia się z bazą danych Oracle należy zapewnić obecność w systemie stosownej wersji sterowników. Jeśli łączymy się z serwerem bazy danych w wersji 9i, to prawidłowe funkcjonowanie połączenia zapewni najbardziej aktualna wersja sterowników ODBC dostępna na stronie producenta - Często instalacja danej wersji sterowników wymaga konkretnej wersji instalatora produktów Oracle. Przykład instalacji sterowników ODBC Poniższy opis przedstawia instalację sterowników ODBC w wersji : Pobierz plik ora9012.exe, uruchom samorozpakowujące się archiwum i wypakuj pliki do wskazanej lokalizacji Uruchom zainstalowanego w systemie instalatora produktów Oracle (Universal Installer): 62

63 Naciśnij przycisk Next, a następnie wskaż ścieżkę do pliku jar z instalacją sterowników (products.jar) i wybierz katalog, w którym mają zostać zainstalowane sterowniki: 63

64 Naciśnięcie przycisku Next, a następnie Install zarejestruje w systemie wymagane sterowniki. Zakończ działanie instalatora wybierając Exit. Przykład konfiguracji ODBC i BDE Poniżej zamieszczony opis przedstawia przykładową konfigurację połączenia ODBC z bazą danych Oracle9i: Uruchomić program Home Selector i wskazać w nim katalog, gdzie zainstalowano wcześniej sterowniki ODBC. Uruchomić program BDE Administrator i wybrać opcję Object->ODBC Administrator. Pojawi się wówczas okno przedstawione poniżej: 64

65 Należy wybrać przycisk Dodaj... i wybrać odpowiedni sterownik do bazy danych Oracle: Następnie należy skonfigurować połączenie z bazą danych Oracle: Należy podać: - Data Source Name nazwa źródła danych - Description opis - TNS Service Name wykorzystywane do połączenia alias do bazy (skonfigurowany w pliku tnsnames.ora) - User ID identyfikator użytkownika 65

66 Tak skonfigurowane połączenie można przetestować wybierając przycisk Test Connection: Po weryfikacji działania połączenia należy zatwierdzić dokonane zmiany. Zdefiniowane połączenie będzie widoczne już w ODBC Administrator: Po zatwierdzeniu zdefiniowane połączenie będzie dostępne również w BDE Administrator: 66

67 Karta Data Access Komponenty Karty Data Access umożliwiają na dostęp z poziomu Borland C++ Builder 5 do danych zapisanych w systemach baz danych. Ikona Typ Znaczenie TDataSource Komponent zapewnia połączenie pomiędzy zbiorem danych a kontrolką je przetwarzającą. TTable TQuery TStoredProc TDatabase TSession TBatchMove TUpdateSQL Komponent umożliwia pobieranie danych z tabel baz danych Paradox, dbase, Access, FoxPro, InterBase, Oracle, Sybase, MSSQL Server, Informix, DB2. Składnik umożliwiający wykonanie w bazie danych polecenia typu SELECT. Komponent umożliwia wywołanie kodu składowanego (procedury, funkcji) z bazy danych. Pozwala na przekazywanie parametrów wejściowych i odczytywanie wyniku. Komponent definiujący bazę danych, z którą zamierzamy pracować. Komponent odpowiadający za połączenie (sesję) z bazą danych. Komponent umożliwia wykonywanie operacji na grupie wierszy lub na całej tabeli. Komponent umożliwia wykonanie poleceń tupu INSERT, UPDATE, DELETE. Karta Data Controls Komponenty Karty Data Controls umożliwiają wizualizację danych z bazy danych. 67

68 Ikona Typ Znaczenie TDBGrid Komponent umożliwia wizualizację danych w postaci tabelarycznej. TDBNaigator Komponent będący paskiem narzędziowym umożliwiającym wykonywanie różnych operacji na danych (przechodzenie pomiędzy wierszami, dodawanie, usuwanie, zatwierdzanie itd.). TDBText Składnik umożliwiający wyświetlenie wartości z bazy w postaci pola tekstowego. TDBEdit TDBMemo TDBImage TDBListBox TDBComboBox Komponent wyświetlenie i edytowanie wartości z bazy danych. Komponent umożliwiający wyświetlanie i edycję wieloliniowego tekstu z bazy danych. Umożliwia wyświetlenie obrazu zapisanego w tabelach bazy danych. Element listowy umożliwiający prezentację i zmianę danych pochodzących z bazy danych. Komponent typu combo (lista wyboru) umożliwiający wyświetlanie i pobieranie danych z bazy. TDBCheckBox Komponent typu opcja (check box) zaznaczony/niezaznaczony odpowiadający stosownym wartościom z bazy. TDBRadioGroup Grupa przycisków radiowych odpowiadająca wybranym wartościom z bazy danych. TDBLookupListBox Element typu podgląd do wartości z innego zbioru danych. Ma postać listy. TDBLookupComboBox Element typu lista wyboru. Umożliwia wyświetlenie wartości z innego źródła danych. TDBRichEdit TDBChart Rozbudowany komponent edycyjny umożliwiający wyświetlanie i modyfikacje tekstu z bazy danych. Komponent umożliwiający generowanie na formularzu wykresów na podstawie zbioru danych pobranego z bazy. 68

69 Ćwiczenie 6 1. Skonfiguruj według instrukcji zamieszczonej powyżej połączenie ODBC o nazwie baza do serwera bazy danych zyskxp.math.uni.lodz.pl, SID=baza, port= Utwórz nową aplikację, która będzie umożliwiała wyświetlanie i modyfikację tabeli MARKI. W tym celu umieść na niej poniższe komponenty i ustaw odpowiednie własności: TTable (z zakładki Data Access) DatabaseName=baza, TableName=MARKI, TDataSource (z zakładki Data Access) DataSet=Table1, TDBGrid (z zakładki Data Controls) DataSource=DataSource1, TDBNavigator (z zakładki Data Controls) DataSource=DataSource1, TButton (z zakładki Standard) Caption=&Logowanie, Default=true, TButton (z zakładki Standard) Caption=&Wylogowanie, Enabled=false, Zapewnij aby aplikacja prezentowała się tak jak przedstawiono poniżej: Obsłuż dla przycisku Logowanie zdarzenie OnClick tak aby powodowało ono połączenie z bazą danych, dezaktywację przycisku Logowanie i aktywację przycisku Wylogowanie: void fastcall TForm1::Button1Click(TObject *Sender) { // aktywacja danych Table1->Active=true; // wyłączenie i włączenie odpowiednich 69

70 } // przycisków Button2->Enabled=true; Button1->Enabled=false; Analogicznie obsłuż zdarzenie OnClick dla przycisku Wylogowanie: void fastcall TForm1::Button2Click(TObject *Sender) { // dezaktywacja danych Table1->Active=false; // wyłączenie i włączenie odpowiednich //przycisków Button1->Enabled=true; Button2->Enabled=false; } Uruchom i przetestuj aplikację. 3. Utwórz nową aplikację, która będzie umożliwiała wyświetlanie i modyfikację tabeli MARKI i powiązanej z nią tabeli MODELE. W tym celu umieść na niej poniższe komponenty i ustaw odpowiednie własności: TTable (z zakładki Data Access) DatabaseName=baza, TableName=MARKI, TDataSource (z zakładki Data Access) DataSet=Table1, TDBGrid (z zakładki Data Controls) DataSource=DataSource1, TDBNavigator (z zakładki Data Controls) DataSource=DataSource1, TTable (z zakładki Data Access) DatabaseName=baza, TableName=MODELE, MasterSource=DataSource1, MasterFields=KOD, TDataSource (z zakładki Data Access) DataSet=Table2, TDBGrid (z zakładki Data Controls) DataSource=DataSource2, TDBNavigator (z zakładki Data Controls) DataSource=DataSource2, TButton (z zakładki Standard) Caption=&Logowanie, Default=true, TButton (z zakładki Standard) Caption=&Wylogowanie, Enabled=false, Zapewnij aby aplikacja prezentowała się tak jak przedstawiono poniżej: 70

71 Obsłuż dla przycisku Logowanie zdarzenie OnClick tak aby powodowało ono połączenie z bazą danych, dezaktywację przycisku Logowanie i aktywację przycisku Wylogowanie: void fastcall TForm1::Button1Click(TObject *Sender) { // aktywacja danych Table1->Active=true; Table2->Active=true; // włączenie i wyłączenie odpowiednich przycisków Button2->Enabled=true; Button1->Enabled=false; } Analogicznie obsłuż zdarzenie OnClick dla przycisku Wylogowanie: void fastcall TForm1::Button2Click(TObject *Sender) { // dezaktywacja danych Table2->Active=false; Table1->Active=false; // włączenie i wyłączenie odpowiednich przycisków Button1->Enabled=true; 71

72 } Button2->Enabled=false; Uruchom i przetestuj aplikację. 4. Utwórz nową aplikację, która będzie umożliwiała wyświetlanie i modyfikację tabeli SAMOCHODY. W tym celu umieść na niej poniższe komponenty i ustaw odpowiednie własności: TTable (z zakładki Data Access) DatabaseName=baza, TableName=SAMOCHODY, TDataSource (z zakładki Data Access) DataSet=Table1, 5. Kliknij prawym klawiszem myszy na komponencie TTable umieszczonym na formularzu, a następnie wybierz opcję Fields Editor.... W ramach nowego wyświetlonego okna wybierz opcję Add all fields. TDBNavigator (z zakładki Data Controls) DataSource=DataSource1, TButton (z zakładki Standard) Caption=&Logowanie, Default=true, TButton (z zakładki Standard) Caption=&Wylogowanie, Enabled=false, Zapewnij aby aplikacja prezentowała się tak jak przedstawiono poniżej: Obsłuż dla przycisku Logowanie zdarzenie OnClick tak aby powodowało ono połączenie z bazą danych, dezaktywację przycisku Logowanie i aktywację przycisku Wylogowanie: void fastcall TForm1::Button1Click(TObject *Sender) 72

73 { } // aktywacja danych Table1->Active=true; // wyłączenie i włączenie odpowiednich // przycisków Button2->Enabled=true; Button1->Enabled=false; Analogicznie obsłuż zdarzenie OnClick dla przycisku Wylogowanie: void fastcall TForm1::Button2Click(TObject *Sender) { // dezaktywacja danych Table1->Active=false; // wyłączenie i włączenie odpowiednich //przycisków Button1->Enabled=true; Button2->Enabled=false; } Uruchom i przetestuj aplikację. 7. Zainstaluj komponenty ODAC (Oracle Direct Access) z pliku odaccb5.exe. Powinno to spowodować dodanie w Borland C++ Builder nowej zakładki z komponentami Oracle Access. 8. Utwórz nową aplikację, która będzie umożliwiała wyświetlanie i modyfikację tabeli SAMOCHODY. W tym celu umieść na niej poniższe komponenty i ustaw odpowiednie własności: TConnectDialog (z zakładki Oracle Access), TOraSession (z zakładki Oracle Access) Server=baza, ConnectDialog=ConnectDialog1, Connected=false, TOraTable (z zakładki Oracle Access) Session=OraSession1, TableName=MARKI, TOraDataSource (z zakładki Oracle Access) DataSet=Table1, TDBGrid (z zakładki Data Controls) DataSource=OraDataSource1, TDBNavigator (z zakładki Data Controls) DataSource=OraDataSource1, Zapisz w bazie danych funkcję postaci: create or replace function ile_modeli (p_marka in varchar2) return number is ret number:=0; begin select count(*) into ret 73

74 from modele where marka_kod=p_marka; return ret; end; / TOraStoredProc (z zakładki Oracle Access) Session=OraSession1, StoredProcName=ILE_MODELI, TButton (z zakładki Standard) Caption=&Logowanie, Default=true, TButton (z zakładki Standard) Caption=&Wylogowanie, Enabled=false, TButton (z zakładki Standard) Caption=&Ile modeli, Enabled=false, Zapewnij aby aplikacja prezentowała się tak jak przedstawiono poniżej: Obsłuż dla przycisku Logowanie zdarzenie OnClick tak aby powodowało ono połączenie z bazą danych, dezaktywację przycisku Logowanie i aktywację przycisków Wylogowanie i Ile modeli. void fastcall TForm1::Button1Click(TObject *Sender) { if (ConnectDialog1->Execute()) { 74

WHEN_NEW_FORM_INSTANCE

WHEN_NEW_FORM_INSTANCE 1. Uruchom program Form Builder. Wywołaj kreator bloków danych (np. Tools-Data Block Wizard) i utwórz blok bazodanowy oparty na tabeli MARKI. Wyświetl pola: KOD, NAZWA. Umieść je na kanwie typu Karty (Tab).

Bardziej szczegółowo

ĆWICZENIE 4. 1. Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect).

ĆWICZENIE 4. 1. Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect). ĆWICZENIE 4 1. Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect). 4. Utworzyć blok danych (Data Block) oparty na tabeli SAMOCHODY:

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

BAZY DANYCH Panel sterujący

BAZY DANYCH Panel sterujący BAZY DANYCH Panel sterujący Panel sterujący pełni z reguły rolę centrum, z którego wydajemy polecenia i uruchamiamy różnorodne, wcześniej zdefiniowane zadania, np. wyświetlamy formularze lub drukujemy

Bardziej szczegółowo

Visual Studio instalacja

Visual Studio instalacja Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem

Bardziej szczegółowo

Temat: Organizacja skoroszytów i arkuszy

Temat: Organizacja skoroszytów i arkuszy Temat: Organizacja skoroszytów i arkuszy Podstawowe informacje o skoroszycie Excel jest najczęściej wykorzystywany do tworzenia skoroszytów. Skoroszyt jest zbiorem informacji, które są przechowywane w

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2 Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy

Bardziej szczegółowo

Obszar Logistyka/Zamówienia Publiczne

Obszar Logistyka/Zamówienia Publiczne Obszar Logistyka/Zamówienia Publiczne Plany Zamówień Publicznych EG_LOG Plany Zamówień Publicznych Instrukcja Użytkownika. Instrukcja użytkownika 2 Spis treści SPIS TREŚCI... 3 NAWIGACJA PO SYSTEMIE...

Bardziej szczegółowo

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE Klawisze skrótów: F7 wywołanie zapytania (% - zastępuje wiele znaków _ - zastępuje jeden znak F8 wyszukanie według podanych kryteriów (system rozróżnia małe i wielkie litery) F9 wywołanie

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Przygotowanie formularza do wypożyczenia filmu:

Przygotowanie formularza do wypożyczenia filmu: Przygotowanie formularza do wypożyczenia filmu: Stworzony przez nas formularz powinien spełniać pewne wymagania, które umożliwią pracownikowi szybkie przeszukiwanie bazy danych. Zaprojektowany formularz

Bardziej szczegółowo

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego. Bazy danych raporty 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego. 2. Otwórz bazę (F:\M5BIB). 3. Utwórz raport wyświetlający wszystkie pola z tabeli KSIAZKI. Pozostaw ustawienia

Bardziej szczegółowo

Oracle Application Express

Oracle Application Express Oracle Application Express Dla Oracle Application Express 4.2.2 Część 3. Projekt aplikacji zaawansowanej W niniejszej części ćwiczenia zbudujemy stronę aplikacji, której zadaniem będzie wyświetlenie dla

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Microsoft.NET: LINQ to SQL, ASP.NET AJAX Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek VBA Excel Formularz Formanty Label wstawianie etykiet TextBox wstawianie pól tekstowych ComboBox wstawianie pól kombi ComboBox wstawianie pól kombi ComboBox wstawianie pól kombi OptionButton wstawianie

Bardziej szczegółowo

Zadanie 1. Stosowanie stylów

Zadanie 1. Stosowanie stylów Zadanie 1. Stosowanie stylów Styl to zestaw elementów formatowania określających wygląd: tekstu atrybuty czcionki (tzw. styl znaku), akapitów np. wyrównanie tekstu, odstępy między wierszami, wcięcia, a

Bardziej szczegółowo

1. Przypisy, indeks i spisy.

1. Przypisy, indeks i spisy. 1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Formularze w programie Word

Formularze w programie Word Formularze w programie Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje można następnie

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

UMOWY INSTRUKCJA STANOWISKOWA

UMOWY INSTRUKCJA STANOWISKOWA UMOWY INSTRUKCJA STANOWISKOWA Klawisze skrótów: F7 wywołanie zapytania (% - zastępuje wiele znaków _ - zastępuje jeden znak F8 wyszukanie według podanych kryteriów (system rozróżnia małe i wielkie litery)

Bardziej szczegółowo

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia 6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia 1. Kolejne zadanie będzie polegało na utworzeniu formularza tabelarycznego prezentującego utwory określonego wykonawcy. Formularz utworzymy

Bardziej szczegółowo

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy Opracowanie: dr hab. Marzena Nowakowska, dr Maria Szczepańska, mgr Grażyna Gębal MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy 1. Opracować formularz Pracownicy edycja wg wzorca przedstawionego na

Bardziej szczegółowo

Laboratorium Oracle Forms

Laboratorium Oracle Forms Laboratorium Oracle Forms Przydatne linki: http://kolos.math.uni.lodz.pl/~koku/pliki/psi/wyklad/kurs.pdf http://www.orafaq.com/wiki/forms_faq#how_can_i_read.2fwrite_os_files_from_forms. 3F http://tai.math.uni.lodz.pl/psi.pdf

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów

5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów 5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów 1. W chwili obecnej formularz Edycja prowadzących utworzony w poprzednim zestawie ćwiczeń służy tylko i wyłącznie do edycji

Bardziej szczegółowo

I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu...

I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu... Kreator szablonów I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu... 7 a. Grafika... 7 b. Tekst... 7 c.

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

Dane słowa oraz wyrażenia są tłumaczone przy pomocy polecenia Przetwarzanie > Tłumaczenie

Dane słowa oraz wyrażenia są tłumaczone przy pomocy polecenia Przetwarzanie > Tłumaczenie Słownik tłumaczeń Informacje ogólne Edytor słownika jest aplikacją MDI, umożliwiającą otwieranie różnych słowników, w celu zarzadzania nimi oraz zapisywania ich do poszczególnych plików. Słownik tłumaczeń

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

Kolory elementów. Kolory elementów

Kolory elementów. Kolory elementów Wszystkie elementy na schematach i planach szaf są wyświetlane w kolorach. Kolory te są zawarte w samych elementach, ale w razie potrzeby można je zmienić za pomocą opcji opisanych poniżej, przy czym dotyczy

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy Ćw.1 WPROWADZENIE DO OBSŁUGI BAZ DANYCH MS ACCESS 2007(2010) Program Microsoft Office Access umożliwia organizowanie informacji w tabelach: listach wierszy i kolumn oraz zarządzanie, wykonywanie zapytań

Bardziej szczegółowo

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

Bardziej szczegółowo

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

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

Bardziej szczegółowo

3. Budowa prostych raportów opartych o bazę danych

3. Budowa prostych raportów opartych o bazę danych 3. Budowa prostych raportów opartych o bazę danych 1. Przy pomocy kreatora utwórz raport tabelaryczny, wyświetlający dane dotyczące prowadzących listę przebojów. W tym celu: a. Uruchom narzędzie Application

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

BAZY DANYCH Formularze i raporty

BAZY DANYCH Formularze i raporty BAZY DANYCH Formularze i raporty Za pomocą tabel można wprowadzać nowe dane, przeglądać i modyfikować dane już istniejące. Jednak dla typowego użytkownika systemu baz danych, przygotowuje się specjalne

Bardziej szczegółowo

KATEGORIA OBSZAR WIEDZY

KATEGORIA OBSZAR WIEDZY Moduł 6 - Grafika menedżerska i prezentacyjna - od kandydata wymaga się umiejętności posługiwania się programem komputerowym do tworzenia. Zdający powinien posiadać umiejętności wykonania następujących

Bardziej szczegółowo

Przewodnik... Tworzenie Landing Page

Przewodnik... Tworzenie Landing Page Przewodnik... Tworzenie Landing Page Spis treści Kreator strony landing page Stwórz stronę Zarządzaj stronami 2 Kreator strony landing page Kreator pozwala stworzyć własną stronę internetową z unikalnym

Bardziej szczegółowo

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji Tworzenie bazy danych w postaci aplikacji Access - Aplikacja 1. Otwórz plik zawierający bazę danych Wypożyczalni kaset video o nazwie Wypożyczalnia.mdb. 2. Utworzy kwerendę, która wyświetli tytuły i opisy

Bardziej szczegółowo

Microsoft Access zajęcia 3 4. Tworzenie i wykorzystanie kwerend, formularzy i raportów

Microsoft Access zajęcia 3 4. Tworzenie i wykorzystanie kwerend, formularzy i raportów Microsoft Access zajęcia 3 4 Tworzenie i wykorzystanie kwerend, formularzy i raportów Kwerendy służą do tworzenia unikalnych zestawów danych, niedostępnych bezpośrednio z tabel, dokonywania obliczeń zawartych

Bardziej szczegółowo

Zadanie 9. Projektowanie stron dokumentu

Zadanie 9. Projektowanie stron dokumentu Zadanie 9. Projektowanie stron dokumentu Przygotowany dokument można: wydrukować i oprawić, zapisać jako strona sieci Web i opublikować w Internecie przekonwertować na format PDF i udostępnić w postaci

Bardziej szczegółowo

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1 Tworzenie okna dialogowego w edytorze raportu SigmaNEST część 1 Edytor raportu SigmaNEST to wszechstronne narzędzie umożliwiające zarówno dostosowanie każdego raportu pod specyficzne oczekiwania klienta,

Bardziej szczegółowo

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci. - 1 -

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci. - 1 - - 1 - Tworzenie raportów 1. Wstęp Raporty-zawierają dane z tabel lub kwerend odpowiednio uporządkowane w pożądany przez użytkownika sposób. Raport jest wygodnym sposobem prezentacji danych w postaci wydrukowanej.

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Uruchamianie edytora OpenOffice.ux.pl Writer 9 Dostosowywanie środowiska pracy 11 Menu Widok 14 Ustawienia dokumentu 16 Rozdział 2. OpenOffice

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM Zaznaczanie komórek Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM Aby zaznaczyć blok komórek które leżą obok siebie należy trzymając wciśnięty LPM przesunąć kursor rozpoczynając od komórki

Bardziej szczegółowo

Formy dialogowe w środowisku Gnome

Formy dialogowe w środowisku Gnome Środowisko graficzne Gnome posiada wiele atrakcyjnych funkcji, które często nie są przez administratorów wykorzystywane. Jedną z nich jest dołączony zestaw form dialogowych o nazwie Zenity ( http://library.gnome.org/users/zenity/stable/

Bardziej szczegółowo

Instrukcja obsługi aplikacji MobileRaks 1.0

Instrukcja obsługi aplikacji MobileRaks 1.0 Instrukcja obsługi aplikacji MobileRaks 1.0 str. 1 Pierwsze uruchomienie aplikacji. Podczas pierwszego uruchomienia aplikacji należy skonfigurować połączenie z serwerem synchronizacji. Należy podać numer

Bardziej szczegółowo

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów? UONET+ - moduł Sekretariat Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów? W module Sekretariat wydruki dostępne w widoku Wydruki/ Wydruki list można przygotować w formacie PDF oraz

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Slajd 1 Excel Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz

Bardziej szczegółowo

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy. BAZA_1 Temat: Tworzenie i modyfikowanie formularzy. Do wprowadzania danych do tabel słuŝą formularze. Dlatego zanim przystąpimy do wypełniania danymi nowo utworzonych tabel, najpierw przygotujemy odpowiednie

Bardziej szczegółowo

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419 Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419 LP Vario* Wersja Zmiany 1. BPM 3.003.60177.00403 Ulepszenie działania pola przeznaczonego do

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Sylabus Moduł 2: Przetwarzanie tekstów

Sylabus Moduł 2: Przetwarzanie tekstów Sylabus Moduł 2: Przetwarzanie tekstów Niniejsze opracowanie przeznaczone jest dla osób zamierzających zdać egzamin ECDL (European Computer Driving Licence) na poziomie podstawowym. Publikacja zawiera

Bardziej szczegółowo

Obszar Logistyka/Zamówienia Publiczne. Rejestr zamówień publicznych. Instrukcja użytkownika

Obszar Logistyka/Zamówienia Publiczne. Rejestr zamówień publicznych. Instrukcja użytkownika Obszar Logistyka/Zamówienia Publiczne Rejestr zamówień publicznych Instrukcja użytkownika EG_LOG Rejestr zamówień publicznych Instrukcja Użytkownika. 2 Spis treści SPIS TREŚCI... 3 NAWIGACJA PO SYSTEMIE...

Bardziej szczegółowo

4.Arkusz kalkulacyjny Calc

4.Arkusz kalkulacyjny Calc 4.Arkusz kalkulacyjny Calc 4.1. Okno programu Calc Arkusz kalkulacyjny Calc jest zawarty w bezpłatnym pakiecie OpenOffice.org 2.4. Można go uruchomić, podobnie jak inne aplikacje tego środowiska, wybierając

Bardziej szczegółowo

Skróty klawiaturowe w systemie Windows 10

Skróty klawiaturowe w systemie Windows 10 Skróty klawiaturowe w systemie Windows 10 Skróty klawiaturowe to klawisze lub kombinacje klawiszy, które zapewniają alternatywny sposób na wykonanie czynności zwykle wykonywanych za pomocą myszy. Kopiowanie,

Bardziej szczegółowo

DODAJEMY TREŚĆ DO STRONY

DODAJEMY TREŚĆ DO STRONY DODAJEMY TREŚĆ DO STRONY SPIS TREŚCI Pasek narzędzi i wyszukiwarka aplikacji... 2 Dodawanie portletów... 3 Widok zawartości stron... 4 Zawartość portletu... 5 Ikonki wybierz oraz dodaj zawartość stron...

Bardziej szczegółowo

Formatowanie komórek

Formatowanie komórek Formatowanie komórek Korzystając z włączonego paska narzędziowego Formatowanie możemy, bez szukania dodatkowych opcji sformatować wartości i tekst wpisany do komórek Zmiana stylu czcionki (pogrubienie,

Bardziej szczegółowo

Obszar Logistyka/Zamówienia Publiczne. Umowy i Rejestr depozytów (zabezpieczeń wykonania umów) Instrukcja użytkownika

Obszar Logistyka/Zamówienia Publiczne. Umowy i Rejestr depozytów (zabezpieczeń wykonania umów) Instrukcja użytkownika Obszar Logistyka/Zamówienia Publiczne Umowy i Rejestr depozytów (zabezpieczeń wykonania umów) Instrukcja użytkownika EG_LOG Umowy i Rejestr depozytów (zabezpieczeń wykonania umowy) Instrukcja Użytkownika.

Bardziej szczegółowo

Praca w środowisku Visual Studio 2008, Visual C

Praca w środowisku Visual Studio 2008, Visual C Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Karty pracy W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Ustawienia Pierwszym krokiem w rozpoczęciu pracy z modułem Karty Pracy jest definicja

Bardziej szczegółowo

Instrukcja obsługi Konfigurator MLAN-1000

Instrukcja obsługi Konfigurator MLAN-1000 Instrukcja obsługi Konfigurator MLAN-1000 Strona 2 z 8 SPIS TREŚCI 1. Logowanie... 3 2. Diagnostyka... 4 3. Konfiguracja sterownika... 5 3.1 Konfiguracja sterownika aktualizacja oprogramowania... 5 4.

Bardziej szczegółowo

Baza danych. Program: Access 2007

Baza danych. Program: Access 2007 Baza danych Program: Access 2007 Bazę danych składa się z czterech typów obiektów: tabela, formularz, kwerenda i raport (do czego, który służy, poszukaj w podręczniku i nie bądź za bardzo leniw) Pracę

Bardziej szczegółowo

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt. Grafika w dokumencie Wprowadzanie ozdobnych napisów WordArt Do tworzenia efektownych, ozdobnych napisów służy obiekt WordArt. Aby wstawić do dokumentu obiekt WordArt: 1. Umieść kursor w miejscu, w którym

Bardziej szczegółowo

Zadanie 10. Stosowanie dokumentu głównego do organizowania dużych projektów

Zadanie 10. Stosowanie dokumentu głównego do organizowania dużych projektów Zadanie 10. Stosowanie dokumentu głównego do organizowania dużych projektów Za pomocą edytora Word można pracować zespołowo nad jednym dużym projektem (dokumentem). Tworzy się wówczas dokument główny,

Bardziej szczegółowo

I. Interfejs użytkownika.

I. Interfejs użytkownika. Ćwiczenia z użytkowania systemu MFG/PRO 1 I. Interfejs użytkownika. MFG/PRO w wersji eb2 umożliwia wybór użytkownikowi jednego z trzech dostępnych interfejsów graficznych: a) tekstowego (wybór z menu:

Bardziej szczegółowo

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word Formularz MS Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje moŝna następnie zebrać

Bardziej szczegółowo

Obszar Księga Główna. Harmonogramy księgowań. Instrukcja użytkownika

Obszar Księga Główna. Harmonogramy księgowań. Instrukcja użytkownika Obszar Księga Główna Harmonogramy księgowań Instrukcja użytkownika Spis treści SPIS TREŚCI... 2 NAWIGACJA PO SYSTEMIE... 3 1. Podstawowa nawigacja po systemie... 3 OPERACJE... 6 2. Harmonogramy Księgowań...

Bardziej szczegółowo

Instrukcja użytkownika ARSoft-WZ3

Instrukcja użytkownika ARSoft-WZ3 02-699 Warszawa, ul. Kłobucka 8 pawilon 119 tel. 0-22 853-48-56, 853-49-30, 607-98-95 fax 0-22 607-99-50 email: info@apar.pl www.apar.pl Instrukcja użytkownika ARSoft-WZ3 wersja 1.5 1. Opis Aplikacja ARSOFT-WZ3

Bardziej szczegółowo

Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem

Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem Dodawanie kontrolek i komponentów Podczas budowania bazującej na formularzach aplikacji

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word) Dostosowywanie paska zadań Ćwiczenia nr 2 Edycja tekstu (Microsoft Word) Domyślnie program Word proponuje paski narzędzi Standardowy oraz Formatowanie z zestawem opcji widocznym poniżej: Można jednak zmodyfikować

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA Laboratorium nr 14 PODSTAWY OBSŁUGI PROGRAMU WONDERWARE INTOUCH 10.1 Opracował: mgr inż. Marcel Luzar Cel: Konfiguracja

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny 2010 dla WINDOWS cz. 1 Slajd 1 Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz kalkulacyjny

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika SoftwareStudio Studio 60-349 Poznań, ul. Ostroroga 5 Tel. 061 66 90 641 061 66 90 642 061 66 90 643 061 66 90 644 fax 061 86 71 151 mail: poznan@softwarestudio.com.pl Herkules WMS.net Instrukcja użytkownika

Bardziej szczegółowo

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków 4. Budowa prostych formularzy, stany sesji, tworzenie przycisków 1. Utwórz formularz tabelaryczny umożliwiający modyfikację prowadzących listę przebojów. a. Zaloguj się do systemu APEX podając znaną Ci

Bardziej szczegółowo

Tekst na mapach. Teksty na mapie. Ustawienia mapy. W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty

Tekst na mapach. Teksty na mapie. Ustawienia mapy. W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty Teksty na mapie W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty Dane z programu Agrinavia Field Na mapach utworzonych w Agrinavia Map możemy wyświetlać informacje z programu

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

Bardziej szczegółowo

Elektroniczny Urząd Podawczy

Elektroniczny Urząd Podawczy Elektroniczny Urząd Podawczy Dzięki Elektronicznemu Urzędowi Podawczemu Beneficjent może wypełnić i wysłać formularz wniosku o dofinansowanie projektów w ramach Regionalnego Programu Operacyjnego Województwa

Bardziej szczegółowo

Galileo v10 pierwszy program

Galileo v10 pierwszy program Notatka Aplikacyjna NA 03011PL Galileo v10 Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Podstawy... 3 2.1. Tworzenie nowego projektu... 3 2.2. Dodawanie pola tekstowego... 10 2.3. Przechodzenie

Bardziej szczegółowo

KATEGORIA OBSZAR WIEDZY

KATEGORIA OBSZAR WIEDZY Moduł 3 - Przetwarzanie tekstów - od kandydata wymaga się zaprezentowania umiejętności wykorzystywania programu do edycji tekstu. Kandydat powinien wykonać zadania o charakterze podstawowym związane z

Bardziej szczegółowo

System Informatyczny CELAB. Terminy, alarmy

System Informatyczny CELAB. Terminy, alarmy Instrukcja obsługi programu 2.18. Terminy, alarmy Architektura inter/intranetowa Aktualizowano w dniu: 2007-09-25 System Informatyczny CELAB Terminy, alarmy Spis treści 1. Terminy, alarmy...2 1.1. Termin

Bardziej szczegółowo

I. Program II. Opis głównych funkcji programu... 19

I. Program II. Opis głównych funkcji programu... 19 07-12-18 Spis treści I. Program... 1 1 Panel główny... 1 2 Edycja szablonu filtrów... 3 A) Zakładka Ogólne... 4 B) Zakładka Grupy filtrów... 5 C) Zakładka Kolumny... 17 D) Zakładka Sortowanie... 18 II.

Bardziej szczegółowo

3.4. Opis konfiguracji layoutów.

3.4. Opis konfiguracji layoutów. Definicja layout-ów dla tablicy odczytywana jest z tabeli w bazie danych: [UnitId_System] Gdańsk = 42, Gdynia = 43 [UnitId_Subsytem] 6 = TZT, 7 = ZZT [UnitId_Unit] identyfikator obiektu [Update_TimeStamp]

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo