Oracle Developer/2000 Form Builder

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

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

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

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

BAZY DANYCH Panel sterujący

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

Temat: Organizacja skoroszytów i arkuszy

WHEN_NEW_FORM_INSTANCE

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Przygotowanie formularza do wypożyczenia filmu:

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

MGA Sp. z o.o Toruń ul. Piaskowa 6

Oracle Designer i Oracle Form Builder

5. Bazy danych Base Okno bazy danych

Tworzenie prezentacji w MS PowerPoint

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

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

I. Interfejs użytkownika.

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

BAZY DANYCH Formularze i raporty

Tworzenie bazy danych na przykładzie Access

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

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Bazy danych Access KWERENDY

1. Przypisy, indeks i spisy.

Formularze w programie Word

Zadanie 11. Przygotowanie publikacji do wydrukowania

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

5.4. Tworzymy formularze

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

Symfonia Produkcja. Kreator raportów. Wersja 2013

Wnioski i dyspozycje elektroniczne. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

ACCESS ćwiczenia (zestaw 1)

Formularze i raporty w MS Access

Obszar Logistyka/Zamówienia Publiczne

UMOWY INSTRUKCJA STANOWISKOWA

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

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

Instrukcja użytkownika

Autor: Joanna Karwowska

Przygotuj za pomocą tabulatorów element formularza. Utwórz pole tekstowe i sformatuj tak, aby dół napisu w polu był dokładnie nad kropkami.

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Dodanie nowej formy do projektu polega na:

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Systemy GIS Tworzenie zapytań w bazach danych

Dokumentacja użytkownika systemu

Pakiety podprogramów Dynamiczny SQL

1. INFORMACJE O DOKUMENCIE 2. WPROWADZENIE

9 Zakup [ Zakup ] Zakup

Oracle Application Express

REJESTRACJA PROJEKTÓW

Ekran główny lista formularzy

Instrukcja programu ESKUP

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Dodawanie operacji dodatkowych w WAPRO Mag.

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem

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

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

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

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

ACCESS 2007 Tworzymy bazę danych plik: filmoteka.accdb

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Krzysztof Kluza proste ćwiczenia z baz danych

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

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

System imed24 Instrukcja Moduł Analizy i raporty

QUERY język zapytań do tworzenia raportów w AS/400

Część 3 - Konfiguracja

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

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

INTENSE PLATFORM Zmiany w wersji Wersja 7.2

NOL3. Zarządzanie zleceniami. 1. Transakcyjne funkcjonalności aplikacji NOL3. Biuro Maklerskie Zlecenia

WinSkład / WinUcz 15.00

MS Access formularze

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

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

Nieskonfigurowana, pusta konsola MMC

Zadanie 8. Dołączanie obiektów

Autor: dr inż. Katarzyna Rudnik

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

Projektowanie baz danych

Edytor tekstu MS Office Word

Rozwiązanie ćwiczenia 8a

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

UONET+ moduł Dziennik

Instrukcja obsługi aplikacji MobileRaks 1.0

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

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

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

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

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

Przewodnik użytkownika (instrukcja) AutoMagicTest

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

Transkrypt:

Oracle Developer/2000 Form Builder

1. Wprowadzenie

Architektura oprogramowania narzędziowego Oracle Designer Developer C/C++ VB Delphi SQL PL/SQL SQL*Net RDBMS Oracle (c) 2000, Instytut Informatyki Politechniki Poznańskiej 3

Opis składników Oracle Developer Project Builder Form Builder Report Builder Graphics Builder Procedure Builder Query Builder Schema Builder środowisko projektowe środowisko uruchomieniowe generator wersji uruchomieniowej (c) 2000, Instytut Informatyki Politechniki Poznańskiej 4

Elementy interfejsu projektanta wspólne dla składników pakietu Oracle Developer (1) Nawigator obiektów Edytor układu Paleta właści- wości Edytor PL/SQL (c) 2000, Instytut Informatyki Politechniki Poznańskiej 5

Elementy interfejsu projektanta wspólne dla składników pakietu Oracle Developer (2) Nawigator obiektów (ang. Object Navigator) przedstawia obiekty składowe modułu w postaci hierarchicznej Paleta właściwości (ang. Property Palette) przedstawia właściwości danego obiektu można ją wyświetlić i edytować dla każdego obiektu Edytor układu (ang. Layout Editor) pozwala na modyfikację strony wizualnej aplikacji Edytor PL/SQL (ang. PL/SQL Editor) służy do edycji i kompilacji jednostek programu PL/SQL (c) 2000, Instytut Informatyki Politechniki Poznańskiej 6

Dostosowywanie sesji z narzędziami Oracle Developer (Preferencje) Ogólne Zapisz przed skonstruowaniem Skonstruuj przed uruchomieniem Dostęp Miejsce składowania źródeł modułów (plik, baza danych) Ograniczenie listy przy Plik/Otwórz Kreatory Wyłączanie okien powitalnych kreatorów Runtime Parametry pracy tworzonych aplikacji (optymalizacja przetwarzania, debuger) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 7

Składowanie źródeł aplikacji tworzonych w Oracle Developer w bazie danych wymaga wcześniejszego utworzenia odpowiednich tabel zalecane gdy: wymagana jest kontrola dostępu do źródeł aplikacji nie ma miejsca w systemie plików aplikacje są współdzielone przez projektantów czas dostępu do modułów nie jest istotny w systemie plików zalecane gdy zalety składowania w bazie danych nie są istotne istotny jest czas dostępu do źródeł aplikacji (c) 2000, Instytut Informatyki Politechniki Poznańskiej 8

Zmienne środowiskowe Oracle Developer (runtime) FORMS60_PATH ścieżka przeszukiwania dla modułów Form Builder REPORTS60_PATH ścieżka przeszukiwania dla modułów Report Builder GRAPHICS60_PATH ścieżka przeszukiwania dla modułów Graphics Builder UI_ICON ścieżka przeszukiwania dla ikon (c) 2000, Instytut Informatyki Politechniki Poznańskiej 9

Schemat bazy danych wykorzystywany w ćwiczeniach K_POZYCJE K_POZYCJE K_ZAMOWIENIA K_ZAMOWIENIA K_PRACOWNICY K_PRACOWNICY K_KSIAZKI K_KSIAZKI K_KLIENCI K_KLIENCI K_ODDZIALY K_ODDZIALY K_STANY_W_MAGAZYNACH (c) 2000, Instytut Informatyki Politechniki Poznańskiej 10

Opis aplikacji rozwijanej w ramach ćwiczeń System dla firmy prowadzącej wysyłkową sprzedaż książek Ewidencja oddziałów firmy i ich pracowników Ewidencja książek Ewidencja klientów Ewidencja zamówień Ewidencja stanów magazynowych (c) 2000, Instytut Informatyki Politechniki Poznańskiej 11

Ćwiczenie Uruchom narzędzie Form Builder Upewnij się, że ustawione są następujące preferencje: Zapisywanie modułów tylko w systemie plików Konstruowanie modułu przed uruchomieniem Brak automatycznego zapisu przed skonstruowaniem Otwórz przykładowy formularz Obejrzyj jego strukturę w Nawigatorze obiektów Obejrzyj jego wygląd w Edytorze układu Podejrzyj Paletę właściwości dla kilku elementów Wywołaj Edytor PL/SQL dla jednostek programu Przejrzyj obiekty bazy danych (pamiętaj o dołączeniu się do bazy danych) Wyjdź z Form Builder (c) 2000, Instytut Informatyki Politechniki Poznańskiej 12

2. Uruchamianie i obsługa aplikacji utworzonych za pomocą narzędzia Form Builder

Środowisko uruchomieniowe (1) Menu Okno MDI Pasek narzędzi Okno Konsola (c) 2000, Instytut Informatyki Politechniki Poznańskiej 14

Środowisko uruchomieniowe (2) Uruchamianie aplikacji IFRUN60 nazwa_modułu [parametry] nazwa komendy zależy od systemu operacyjnego i wersji Form Builder (np..w 5.0 dla Windows - F50run32) Środowisko okienkowe MDI (multiple( multiple-document interface) dostępne i domyślne w MS Windows SDI (single-document interface) parametr USESDI Menu alternatywa dla skrótów klawiszowych domyślne można zmienić (c) 2000, Instytut Informatyki Politechniki Poznańskiej 15

Środowisko uruchomieniowe (3) Paski narzędzi (ang. toolbars) graficzne skróty do pozycji menu dostępne dla macierzystego okna MDI oraz pozostałych okien aplikacji Konsola linia komunikatów miejsce pojawiania się komunikatów systemowych i generowanych przez aplikację linia statusu kolejny numer rekordu w bloku tryb pracy formularza dostępność listy wartości dla bieżącego pola (c) 2000, Instytut Informatyki Politechniki Poznańskiej 16

Elementy formularza (1) Pole tekstowe Lista Grupa radiowa Pole wyboru (c) 2000, Instytut Informatyki Politechniki Poznańskiej 17

Elementy formularza (2) Stały tekst Stałe elementy graficzne Etykiety pól Pola tekstowe Listy Pola wyświetlania Pola wyboru Grupy radiowe Wykresy Obrazy Formanty ActiveX Kontenery OLE Przyciski Dźwięki Drzewa hierarchiczne (nowość w Form Builder 6.0) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 18

Sposoby nawigacji w formularzu Menu / Pasek narzędzi menu przesuwanie kursora, zapisywanie i anulowanie zmian, wykonywanie zapytań, wstawianie i usuwanie rekordów, wywołanie pomocy Mysz przesuwanie kursora, wybór z menu i list wartości, obsługa pól wyboru i grup radiowych, przełączanie między oknami, obsługa okien komunikatów i pasków przewijania Przyciski funkcje zależne od aplikacji (np. obliczenia, wywołanie innych okien) Klawisze funkcyjne nawigacja, funkcje zależne od aplikacji podgląd funkcji klawiszy: Pomoc/Klawisze zmiana domyślnych: plik terminala (c) 2000, Instytut Informatyki Politechniki Poznańskiej 19

Tryby pracy formularza Tryb wprowadzania zapytań (Enter Query Mode) pozwala na: odczyt wszystkich rekordów odczyt rekordów spełniających kryteria selekcji wprowadzone do pól lub okienka Zapytanie/Klauzula WHERE odczyt liczby rekordów, które zwróci zapytanie nie pozwala na: wstawianie, usuwanie i modyfikację rekordów opuszczenie bieżącego bloku korzystanie z niektórych funkcji Tryb normalny (Normal Mode) pozwala na: odczyt wszystkich rekordów wstawianie, usuwanie i modyfikację rekordów zatwierdzanie i wycofywanie zmian nawigację między blokami nie pozwala na: specyfikację warunków selekcji rekordów (c) 2000, Instytut Informatyki Politechniki Poznańskiej 20

Wykonywanie zapytań w bieżącym bloku Bez kryteriów selekcji: Zapytanie/Wykonaj Przycisk Wykonaj zapytanie Z kryteriami selekcji 1) Przejście do trybu wprowadzania zapytań Zapytanie/Wprowadź Przycisk Wprowadź zapytanie 2) Wprowadzenie kryteriów selekcji 3) Wykonanie zapytania Zapytanie/Wykonaj Przycisk Wykonaj zapytanie (c) 2000, Instytut Informatyki Politechniki Poznańskiej 21

Wprowadzanie kryteriów selekcji Brak apostrofów we wzorcach pól znakowych i dat Znaki specjalne _ i % wywołują operator LIKE Operatory SQL należy poprzedzić znakiem # Skomplikowane warunki i klauzulę ORDER BY wprowadza się w okienku Zapytanie/ Klauzula WHERE (apostrofy wymagane) Dla dat obowiązuje domyślny format Przykłady wzorców: 110, Kowal - dokładne dopasowanie Kow% - operator LIKE #BETWEEN 10 AND 20 - operator BETWEEN :S - Warunek w Zapytanie/Klauzula WHERE (:S nazwa zmiennej) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 22

Przykłady zaawansowanych warunków selekcji Enter Query Execute Query Enter Query (c) 2000, Instytut Informatyki Politechniki Poznańskiej 23

Wstawianie, modyfikacja i usuwanie rekordów Wstawianie 1) utworzenie pustego rekordu poprzez: przejście kursorem poniżej ostatniego rekordu menu Rekord/Wstaw przycisk Wstaw rekord na pasku narzędzi odpowiedni klawisz funkcyjny 2) wprowadzenie danych do pól rekordu Modyfikacja 1) przejście do szukanego rekordu (po wydaniu zapytania) 2) modyfikacja zawartości pól Usuwanie 1) przejście do szukanego rekordu (po wydaniu zapytania) 2) usunięcie bieżącego rekordu poprzez: menu Rekord/Usuń przycisk Usuń rekord na pasku narzędzi odpowiedni klawisz funkcyjny (c) 2000, Instytut Informatyki Politechniki Poznańskiej 24

Zatwierdzanie i wycofywanie zmian Akcja/Zapisz (lub przycisk na pasku narzędzi) Akcja/Wyczyść wszystko Zakończenie sesji Akcja/Zakończ (lub przycisk na pasku narzędzi) Odpowiedni klawisz funkcyjny Informacje o błędach SQL Pomoc/Pokaż błąd (dotyczy błędów oznaczonych jako Błąd ORACLE) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 25

Ćwiczenie Uruchom formularz ODDZIALY Podejrzyj listę klawiszy funkcyjnych Wykonaj zapytanie w bloku Oddziały Obejrzyj dane o pracownikach poszczególnych oddziałów Wyszukaj pracowników oddziału A, którzy: są kobietami posiadają samochód służbowy mają w nazwisku literę o zarabiają ponad 1000 Wyświetl pracowników posortowanych wg nazwisk Dodaj po jednym pracowniku w każdym oddziale Zatwierdź zmiany Podnieś płacę jednemu z nowych pracowników i jednego usuń Zatwierdź zmiany Zmodyfikuj płacę któregoś z pracowników Wyjdź z formularza (c) 2000, Instytut Informatyki Politechniki Poznańskiej 26

3. Środowisko Form Builder

Możliwości aplikacji Form Builder Przeglądanie danych z bazy danych (zapytania SQL) Wstawianie, usuwanie i modyfikacja rekordów Prezentacja danych: tekstowych multimedialnych (dźwięki, obrazy i filmy) Praca z wieloma oknami w ramach tej samej transakcji w ramach różnych transakcji Dostęp do wykresów Graphics Builder Dostęp do aplikacji OLE2 Wysyłanie danych do Report Builder (c) 2000, Instytut Informatyki Politechniki Poznańskiej 28

Typy modułów Form Builder Formularze (ang. Forms).fmb,,.fmt. (źródło: postać binarna i tekstowa).fmx (postać wykonywalna) Menu (ang. Menus).mmb,,.mmt. (źródło: postać binarna i tekstowa).mmx (postać wykonywalna) Biblioteki PL/SQL (ang. PL/SQL Libraries).pll (żródło + postać wykonywalna).plx (postać wykonywalna).pld (źródło: postać tekstowa) Biblioteki obiektów (ang. Object Libraries).olb,,.olt. (źródło: postać binarna i tekstowa) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 29

Tworzenie, kompilacja i uruchamianie formularzy Form Builder Form Compiler Forms Runtime Definicje Postać wykonywalna (c) 2000, Instytut Informatyki Politechniki Poznańskiej 30

Podstawowe struktury formularza Bloki (ang. Blocks) logicznie grupują elementy pochodzące z tej samej tabeli należące do tego samego cyklu nawigacji Elementy (ang. Elements) prezentują dane mogą akceptować wprowadzanie danych logicznie pogrupowane w bloki wizualnie rozmieszczone na kanwach Kanwy (ang. Canvases) powierzchnie, na których umieszczane są elementy aby mogły być wyświetlane (c) 2000, Instytut Informatyki Politechniki Poznańskiej 31

Typy bloków Bloki danych (ang. Data Blocks) powiązane ze źródłem danych tabelą lub perspektywą (najczęściej) procedurą składowaną, zapytaniem lub wyzwalaczem transakcyjnym (rzadziej) gdy bazują na tabeli, Form Builder automatycznie obsługuje zapytania i instrukcje DML oraz uwzględnia ograniczenia integralnościowe elementy bloku bazującego na tabeli mogą odpowiadać danym z innych tabel (dostęp programowy) Bloki kontrolne (ang. Control Blocks) nie mają powiązania z bazą danych logicznie grupują takie elementy jak np. przyciski (c) 2000, Instytut Informatyki Politechniki Poznańskiej 32

Powiązania między blokami Między blokami mogą istnieć zależności nadrzędny- podrzędny (ang. master-detail detail) Zależności takie w definicji formularza reprezentowane są jako tzw. Relacje (ang. Relations) Zeleżności te najczęściej odpowiadają powiązaniom Klucz główny -> > Klucz obcy w bazie danych Możliwe konfiguracje Master Master Master Detail Detail Detail Detail Detail Master Detail Master (c) 2000, Instytut Informatyki Politechniki Poznańskiej 33

4. Tworzenie prostych formularzy

Sposoby tworzenia formularza Przy pomocy kreatorów Kreator bloków danych (ang. Data Block Wizard) Kreator układu (ang. Layout Wizard) Ręcznie Bazując na szablonie (ang. template) szablon zawiera paski narzędzi, elementy graficzne, jednostki programu Tworzenie nowego formularza Wybór opcji z powitalnego okna kreatora Modyfikacja tworzonego przy wejściu pustego formularza Z poziomu menu głównego (Plik/Nowy) Z poziomu Nawigatora obiektów (c) 2000, Instytut Informatyki Politechniki Poznańskiej 35

Paleta właściwości formularza Nazwa Menu System współrzędnych rzeczywiste Piksel Centymetr Cal Punkt = 1/72 cala znakowe wg rozmiaru czcionki (c) 2000, Instytut Informatyki Politechniki Poznańskiej 36

Tworzenie bloków danych (za pomocą kreatora) Wybór typu bloku danych bazujący na tabeli lub perspektywie bazujący na procedurze Wybór tabeli/perspektywy/procedury źródłowej Wybór atrybutów, które mają być uwzględnione w bloku Możliwość włączenia kontroli spójności danych (w oparciu o ograniczenia integralnościowe) Możliwość przejścia do Kreatora układu (c) 2000, Instytut Informatyki Politechniki Poznańskiej 37

Kreator układu Wybór kanwy, na której mają znaleźć się elementy bloku Wybór elementów, które mają być wyświetlane Wybór stylu układu ramki bloku formularz (wskazany dla bloków pokazujących 1 rekord) tabela (dla bloków zawierających wiele rekordów) Wybór liczby rekordów wyświetlanych w bloku Modyfikacja układu Ponowne wywołanie Kreatora układu Edytor układu (Narzędzia/Edytor układu) Zmiana właściwości elementów (palety właściwości) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 38

Opcje administracyjne Zapisywanie definicji modułu - Plik/Zapisz Kompilacja modułu - Plik/Administracja/Kompiluj plik Uruchamianie - Program/Uruchom (lub przycisk) Konwersja definicji modułu do postaci tekstowej - Plik/Administracja/Przekształć Utworzenie dokumentacji modułu - Plik/Administracja/Raport z listą obiektów (c) 2000, Instytut Informatyki Politechniki Poznańskiej 39

Tworzenie powiązań między blokami Strona nadrzędny-podrzędny w Kreatorze bloków danych opcja automatycznego połączenia bloków wybór bloku nadrzędnego i atrybutów połączeniowych Ręczne utworzenie relacji między blokami sekcja Relacje w Nawigatorze obiektów dla bloku, który ma być blokiem nadrzędnym Uwagi Strona nadrzędny-podrzędny jest dostępna gdy istnieją już jakieś bloki w formularzu Najpierw należy utworzyć blok nadrzędny a dopiero później podrzędny (c) 2000, Instytut Informatyki Politechniki Poznańskiej 40

Właściwości relacji między blokami Nazwa relacji, blok nadrzędny, blok podrzędny Zachowanie przy usuwaniu rekordu nadrzędnego kaskadowo (usuwa podrzędne razem z nadrzędnym) pojedynczo (usuwa tylko nadrzędny) nie pojedynczo (uniemożliwia usunięcie nadrzędnego gdy istnieją podrzędne) Koordynacja odroczone zapytanie automatyczne zabroń operacji bez obiektów nadrzędnych Warunek złączenia (w oparciu o nazwy bloków i elementów w formularzu) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 41

Ćwiczenie Utwórz formularz KLIENCI operujący na tabeli K_KLIENCI skorzystaj z kreatorów formularz powinien pokazywać dane jednego klienta w danej chwili zmień rozmieszczenie elementów w Edytorze układu Utwórz formularz ZAMOWIENIA utwórz blok bazujący na tabeli K_ZAMOWIENIA (1 rekord wyświetlany, y, styl formularza) utwórz blok bazujący na tabeli K_POZYCJE jako blok podrzędny (6 rekordów wyświetlanych, styl tabelaryczny) utwórz blok bazujący na tabeli K_STANY_W_MAGAZYNACH jako blok niezależny na innej kanwie niż dwa pozostałe bloki utwórz ręcznie relację między 2 i 3 blokiem z właściwością odroczonego zapytania na żądanie i możliwością niezależnego usuwania rekordów dotyczących pozycji zamówienia ukryj identyfikatory będące kluczami obcymi Zapisz i uruchom utworzone formularze (c) 2000, Instytut Informatyki Politechniki Poznańskiej 42

5. Bloki danych

Paleta właściwości bloków Ogólne Nawigacja Rekordy Baza danych Baza danych - zaawansowane Pasek przewijania Czcionka i kolor Tryb znakowy Narodowe (c) 2000, Instytut Informatyki Politechniki Poznańskiej 44

Właściwości nawigacyjne Styl nawigacji ten sam rekord zmiana rekordu zmiana bloku danych Poprzedni blok danych w nawigacji (domyślnie poprzedni w hierarchii) Następny blok danych w nawigacji (domyślnie następny w hierarchii) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 45

Właściwości dotyczące rekordów Grupa atrybutów wizualnych bieżącego rekordu Zapytania - rozmiar tablicy Liczba buforowanych rekordów Liczba wyświetlanych rekordów Pobieranie wszystkich rekordów Ułożenie rekordów poziome pionowe Pojedynczy rekord (c) 2000, Instytut Informatyki Politechniki Poznańskiej 46

Właściwości bazodanowe Blok bazy danych Wymuszanie klucza głównego Zapytania/Wstawianie/Modyfikacja/Usuwanie dozwolone Informacje o źródle danych (typ, nazwa, kolumny) Klauzule WHERE i ORDER BY Wskazówka optymalizatora Tryb blokowania (natychmiastowe lub opóźnione) Modyfikacja tylko zmienionych kolumn Zabezpieczenie kolumn Maksymalny czas zapytania Maksymalna liczba pobieranych rekordów (c) 2000, Instytut Informatyki Politechniki Poznańskiej 47

Właściwości wizualne bloku Czcionka Kolor Wzór wypełnienia Grupa atrybutów wizualnych Atrybuty wizualne Obiekty formularza posiadające następujące właściwości: Czcionka Kolor Wzór wypełnienia Wykorzystywane do określania powyższych właściwości dla elementów formularza Mogą mieć określone tylko niektóre z właściwości (c) 2000, Instytut Informatyki Politechniki Poznańskiej 48

Ramki i ich właściwości Ramki obszary w obrębie kanwy ramka zawiera elementy bloku danych tworzone przez Kreatora układu można tworzyć je ręcznie w Edytorze układu Właściwości uaktualnianie układu (automatyczne, ręczne, zablokowane) styl układu (formularz, tabela) położenie na kanwie i wymiary odstęp między rekordami (c) 2000, Instytut Informatyki Politechniki Poznańskiej 49

Praca z paletami właściwości Wyświetlanie menu Narzędzia/Paleta właściwości podwójne kliknięcie na ikonie obiektu w Nawigatorze podwójne kliknięcie na obiekcie w Edytorze układu prawy klawisz myszy Elementy lista właściwości, pasek narzędzi, pole wyszukiwania Zmiana wartości właściwości pola tekstowe, listy, przycisk Więcej Wyświetlanie i modyfikacja właściwości wielu obiektów jednocześnie zaznaczenie grupowe wyświetlanie części wspólnej lub sumy właściwości (c) 2000, Instytut Informatyki Politechniki Poznańskiej 50

Bloki kontrolne Nie powiązane z bazą danych Tworzone ręcznie (bez użycia kreatora) Usuwanie bloków Przycisk Usuń na pasku narzędzi Nawigatora obiektów Menu Nawigator/Usuń (c) 2000, Instytut Informatyki Politechniki Poznańskiej 51

Ćwiczenie Formularz KLIENCI utwórz blok kontrolny jako ostatni w hierarchii (wyłącz opcje zapytań, wstawiania, itd.) zapewnij aby lista klientów była posortowana wg identyfikatorów zmień właściwości ramki aby można było ręcznie modyfikować układ zapisz i spróbuj uruchomić formularz Formularz ZAMOWIENIA utwórz blok kontrolny jako ostatni w hierarchii (możesz skopiować blok z formularza KLIENCI) zapewnij aby zamówienia były posortowane wg identyfikatorów a pozycje wg numeru pozycji zmień właściwości ramek aby można było ręcznie modyfikować układ zmień liczbę wyświetlanych pozycji zamówień na 5 spraw aby bieżący rekord w blokach prezentujących więcej niż jeden en rekord był wyświetlany inaczej od pozostałych (wykorzystaj atrybut wizualny) zapisz i spróbuj uruchomić formularz (c) 2000, Instytut Informatyki Politechniki Poznańskiej 52

6. Pola tekstowe

Tworzenie i funkcje pól tekstowych Tworzenie pól tekstowych przez kreatory w Nawigatorze obiektów w Edytorze układu poprzez zmianę typu istniejącego pola Funkcje domyślny typ pola zapytania, wstawianie, modyfikacja i usuwanie danych (c) 2000, Instytut Informatyki Politechniki Poznańskiej 54

Właściwości pól tekstowych Atrybuty wizualne Etykiety Funkcjonalne Nawigacja Dane Obliczenia Rekordy Baza danych Lista wartości Edytor Fizyczne Pomoc Narodowe (c) 2000, Instytut Informatyki Politechniki Poznańskiej 55

Wartości początkowe Wartość stała (23, Brak ) Zmienna systemowa ($$DATE$$, $$DATETIME$$, $$TIME$$, $$DBDATE$$, $$DBDATETIME$$, $$DBTIME$$) Zmienna globalna (:GLOBAL.nazwa_zm zm) Parametr formularza (:PARAMETER.nazwa_par) Element formularza (:blok.element) Sekwencja (:SEQUENCE.nazwa_sekw sekw.nextval) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 56

Lista wartości (ang. list of values) Lista wartości okienko z dynamicznie generowaną listą wartości do wyboru mogą być wywoływane niezależnie od elementów tekstowych formularza (c) 2000, Instytut Informatyki Politechniki Poznańskiej 57

Edytor właściwość Edytor NULL - domyślny edytor Forms nazwa zaprojektowanego edytora SYSTEM_EDITOR - wywołany zostanie edytor zewnętrzny (domyślny systemu operacyjnego) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 58

Korzystanie z list wartości i edytorów Wywołanie listy wartości w trakcie pracy z formularzem Klawisz funkcyjny Menu Edycja/Wyświetl listę Inny oprogramowany przez projektanta mechanizm np. przycisk Wywołanie edytora w trakcie pracy z formularzem Klawisz funkcyjny Menu Edycja/Edytor Inny oprogramowany przez projektanta mechanizm np. przycisk (c) 2000, Instytut Informatyki Politechniki Poznańskiej 59

Grupy rekordów Posiadają strukturę tabel w bazie danych Zawierają wartości statyczne lub będące wynikiem zapytania SQL Zastosowania udostępnianie danych listom wartości udostępnianie danych dla programowej zmiany zawartości list (elementów typu Lista) przekazywanie danych do Graphics Builder i Report Builder (c) 2000, Instytut Informatyki Politechniki Poznańskiej 60

Tworzenie list wartości Na bazie istniejącej grupy rekordów Jednoczesne tworzenie listy wartości i grupy rekordów przez podanie zapytania SQL Wskazówki kolumny zwracane przez zapytanie, które mają być wykorzystane do walidacji danych wprowadzanych przez użytkownika powinny być pierwsze na liście atrybutów w zapytaniu definiującym zapytanie może zawierać klauzule WHERE, GROUP BY i ORDER BY (c) 2000, Instytut Informatyki Politechniki Poznańskiej 61

Właściwości list wartości Fizyczne (położenie i wymiary) Wizualne (czcionka i kolor) Funkcjonalne automatyczne odświeżanie odwzorowanie kolumn element zwracany szerokość wyświetlania (0 - gdy kolumna ma nie być wyświetlana na liście) tytuł kolumny Inne (c) 2000, Instytut Informatyki Politechniki Poznańskiej 62

Tworzenie edytorów Na ogół wystarczający jest edytor domyślny Tworząc edytor określa się następujące właściwości: wizualne (czcionka, kolor,...) fizyczne (położenie, rozmiar, pasek przewijania) funkcjonalne (tytuł, styl zawijania) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 63

Przypinanie listy wartości do pola Właściwości pola: Lista wartości Pozycja X listy Pozycja Y listy Walidacja za pomocą listy Przypinanie edytora do pola Właściwości pola: Edytor Pozycja X edytora Pozycja Y edytora (c) 2000, Instytut Informatyki Politechniki Poznańskiej 64

Ćwiczenie Formularz KLIENCI zmień pole zawierające komentarz dotyczący klienta na wieloliniowe zapewnij aby id klienta był automatycznie wypełniany z sekwencji (zablokuj możliwość modyfikacji identyfikatora) utwórz edytor dla pola zawierającego komentarz Formularz ZAMOWIENIA w bloku z zamówieniem dodaj 2 pola i oznacz je: Klient i Sprzedawca (nie pozwól na modyfikacje, zapytania i nawigację klawiaturą do tych pól) ustaw domyślną wartość daty zamówienia na bieżącą dodaj pole Pozycja_Razem w bloku Pozycje utwórz listę wartości zawierającą dane o książkach (tytuł, autorzy, rok wydania, id) i dołącz ją do pola zawierającego id książki w bloku Pozycje (c) 2000, Instytut Informatyki Politechniki Poznańskiej 65

7. Inne typy pól pozwalające na wprowadzanie danych

Pola wyboru Posiadają dwa możliwe stany zaznaczone nie zaznaczone Mogą przyjmować więcej niż dwie wartości wartość zaznaczona wartość nie zaznaczona sposób traktowania innych wartości zaznaczone nie zaznaczone niedozwolone (pomija rekordy z innymi wartościami) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 67

Specyficzne właściwości pól wyboru Typ danych (znakowe, numeryczne, data) Etykieta Klawisz skrótu Wartość początkowa Wartość zaznaczonego pola Wartość nie zaznaczonego pola Odwzorowanie innych wartości w polu wyboru Nawigacja za pomocą myszy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 68

Elementy listowe Pola prezentujące zbiór wykluczających się opcji do wyboru (każda opcja reprezentuje inną wartość) Alternatywa dla grup radiowych (oszczędność miejsca) Alternatywa dla list wyboru (lista w stylu systemu Windows) Styl listy Lista rozwijana (ang. Poplist) Lista zwykła (ang. Tlist) Pole kombi (ang. Combo box) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 69

Specyficzne właściwości elementów listowych Elementy listy zbiór par: element, wartość Styl listy Odwzorowanie innych wartości (c) 2000, Instytut Informatyki Politechniki Poznańskiej 70

Grupy radiowe Zbiory wzajemnie wykluczających się przycisków radiowych (każdy przycisk reprezentuje inną wartość) Stanowią alternatywę dla list i pól wyboru (c) 2000, Instytut Informatyki Politechniki Poznańskiej 71

Specyficzne właściwości grup radiowych Typ danych (znakowe, numeryczne, data) Odwzorowanie innych wartości Nawigacja za pomocą myszy Specyficzne właściwości przycisków radiowych Etykieta Klawisz skrótu Wartość przycisku radiowego (c) 2000, Instytut Informatyki Politechniki Poznańskiej 72

Ćwiczenie Formularz KLIENCI zmień typ elementu Typ klienta na grupę radiową utwórz odpowiednie przyciski radiowe inne wartości niedozwolone, domyślnie O zmień typ elementu Poziom zaufania na listę inne wartości niedozwolone na liście widoczne wyjaśnienia skrótów Formularz ZAMOWIENIA zmień typ elementu Sposób zapłaty na grupę radiową utwórz odpowiednie przyciski radiowe inne wartości niedozwolone, domyślnie G zmień typ elementu Zrealizowane na pole wyboru inne wartości traktowane jako N, domyślnie N (c) 2000, Instytut Informatyki Politechniki Poznańskiej 73

8. Elementy formularza nie pozwalające na wprowadzanie danych

Pola wyświetlania Podobne do pól tekstowych Pozwalają na: wyświetlanie danych Nie pozwalają na: edycję zapytania nawigację do nich Alternatywą dla pól wyświetlania są pola tekstowe z ustawionymi odpowiednimi właściwościami (c) 2000, Instytut Informatyki Politechniki Poznańskiej 75

Obrazy Wyświetlają obrazy składowane w bazie danych (typ LONG RAW) składowane w systemie plików obsługa programowa formaty obrazów BMP, CALS, GIF, JFIF, TIFF, JPEG, PICT, RAS, TPIC Obsługują edycję wytnij kopiuj wklej (c) 2000, Instytut Informatyki Politechniki Poznańskiej 76

Elementy dźwiękowe Pozwalają na odtwarzanie i nagrywanie dźwięków Składowane w bazie danych (typ LONG RAW) w systemie plików (AU, AIFF, AIFF-C, WAV) Reprezentowane w formularzu przez suwak pokazujący zaawansowanie odtwarzania i zbiór przycisków Zbiór wyświetlanych przycisków (przewijanie, odtwarzanie, nagrywanie, itp.) można kontrolować programowo (c) 2000, Instytut Informatyki Politechniki Poznańskiej 77

Przyciski Rodzaje przycisk tekstowy przycisk z ikoną Zastosowania nawigacja wywoływanie list wartości i edytorów dla pól tekstowych wywoływanie dodatkowych okienek obliczenia inne zależne od inwencji programisty (c) 2000, Instytut Informatyki Politechniki Poznańskiej 78

Specyficzne właściwości przycisków Etykieta Nawigacja za pomocą myszy Ikona Nazwa pliku ikony Podpowiedź w dymku (c) 2000, Instytut Informatyki Politechniki Poznańskiej 79

Pola wyliczane Pola tylko do odczytu Prezentują dane będące wynikiem obliczeń Rodzaje obliczeń formuła podsumowanie (c) 2000, Instytut Informatyki Politechniki Poznańskiej 80

Pola wyliczane w oparciu o formułę Rodzaj obliczenia = Formuła Formuła (:PRAC.PLACA_POD + NVL(:PRAC.PLACA_DOD, 0)) 0)) * * 12 12 (c) 2000, Instytut Informatyki Politechniki Poznańskiej 81

Pola wyliczane w oparciu o podsumowanie Rodzaj obliczenia = Podsumowanie Funkcja podsumowująca AVG, COUNT, MAX, MIN, STDDEV, SUM, VARIANCE Podsumowywany blok Podsumowywany element Uwagi: element podsumowujący musi znajdować się: w tym samym bloku co element podsumowywany w bloku kontrolnym z właściwością Pojedynczy Rekord element podsumowywany musi znajdować się: w bloku danych z jedną z właściwości: Wcześniejsze obliczanie podsumowań Pobieranie wszystkich rekordów w bloku kontrolnym dla elementów nie będących liczbami dozwolone tylko MIN i MAX (c) 2000, Instytut Informatyki Politechniki Poznańskiej 82

Ćwiczenie Formularz ZAMOWIENIA dodaj pole wyświetlania Opis książki w bloku Pozycje w bloku kontrolnym dodaj przycisk z ikoną do wyświetlania listy dostępnych książek (funkcjonalność przycisku zostanie zmodyfikowana w kolejnych ćwiczeniach) spraw aby pole Pozycja_Razem zawierało obliczoną właściwą wartość dodaj pole Razem w bloku pozycje wyświetlaj tylko jedno zapewnij aby zawierało koszt całego zamówienia wyłącz nawigację klawiaturą do tego pola (c) 2000, Instytut Informatyki Politechniki Poznańskiej 83

9. Okna i kanwy

Okna, kanwy i widoki Okno zawiera widoczne elementy formularza formularz może posiadać wiele okien Kanwa powierzchnia, na której znajdują się wyświetlane obiekty musi zostać wyświetlona w oknie aby była widoczna każdy element formularza może być przypisany najwyżej do jednej kanwy Widok widoczna część kanwy atrybut kanwy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 85

Kanwy wypełniające Podstawowy i domyślny typ kanw Widok kanwy wypełniającej odpowiada rozmiarowi okna Każde okno musi posiadać przynajmniej jedną kanwę wypełniającą W danej chwili w danym oknie może być wyświetlana tylko jedna kanwa wypełniająca (c) 2000, Instytut Informatyki Politechniki Poznańskiej 86

Okna i ich właściwości Dla każdego formularza domyślnie tworzone jest okno Dodatkowe okna tworzy się w celu: wyświetlania jednocześnie dwóch kanw wypełniających podzielenia zawartości formularza na części wykorzystania zalet środowisk okienkowych np. możliwość minimalizacji okna Typy okien modalne muszą zostać zamknięte przed powrotem do innego okna aktywowane w chwili wyświetlenia niemodalne (domyślne) może ich być wiele wyświetlonych jednocześnie nie muszą być aktywowane w chwili wyświetlenia Właściwości funkcjonalne przyzwolenie na zamykanie, przesuwanie, itd. (c) 2000, Instytut Informatyki Politechniki Poznańskiej 87

Typy kanw Wypełniająca Nakładana Pionowy pasek narzędzi Poziomy pasek narzędzi Karty (c) 2000, Instytut Informatyki Politechniki Poznańskiej 88

Kanwy nakładane Nakładane na kanwę wypełniającą Współdzielą okno z kanwą wypełniającą i innymi kanwami nakładanymi Zastosowania obszary z paskami przewijania w obrębie okna podział zawartości okna na część stałą i przewijalną ukazywanie i ukrywanie elementów wyświetlanie dodatkowych informacji (np. tekst pomocy) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 89

Kanwy pasków narzędzi Typy pasków narzędzi pionowy pasek narzędzi poziomy pasek narzędzi pasek narzędzi okna MDI Tworzenie paska narzędzi 1) Utworzenie kanwy paska narzędzi 2) Umieszczenie elementów paska na kanwie 3) Przypisanie paska do okna do formularza (dla paska okna macierzystego MDI) poprzez ustawienie właściwości Kanwa poziomego/pionowego paska narzędzi (c) 2000, Instytut Informatyki Politechniki Poznańskiej 90

Kanwy z kartami Umożliwiają rozmieszczenie informacji w jednym oknie na kilku kartach Pozwalają na dostęp do dużych ilości informacji w jednym oknie Wyświetlane na kanwach wypełniających Posiadają jedną lub więcej kart Każda karta posiada etykietę opisującą informacje na niej zawarte Tworzenie: 1) Utworzenie kanwy kart 2) Utworzenie jednej lub więcej kart 3) Rozmieszczenie elementów na kartach (c) 2000, Instytut Informatyki Politechniki Poznańskiej 91

Ćwiczenie Zmień nazwy, tytuły i rozmiar okien formularzy W formularzu ZAMOWIENIA utwórz nowe okno do wyświetlania kanwy prezentującej stany magazynów Uruchom formularz ZAMOWIENIA i spróbuj przejść do nowego okna Formularz KLIENCI utwórz kanwę kart i rozmieść informacje o kliencie na kilku kartach ach zmień kolejność elementów i własności nawigacyjne aby nawigacja klawiaturą nie przekraczała granic kart Formularz ZAMOWIENIA utwórz poziomy pasek narzędzi i umieść na nim 3 przyciski: Magazyn, Pomoc i Wyjście utwórz kanwę nakładaną prezentującą tekst pomocy i przycisk Powrót (domyślnie kanwa powinna nie być widoczna) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 92

10. Wyzwalacze (ang. triggers)

Wyzwalacze w Form Builder Jednostki programu uruchamiane w związku z wystąpieniem danego zdarzenia Zdarzenia związane z: zapytaniami nawigacją walidacją błędami i komunikatami interakcją z użytkownikiem inne PL/SQL PL/SQL Różne typy wyzwalaczy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 94

Charakterystyki wyzwalacza Typ (określa rodzaj zdarzenia wywołującego) Key- (w wyniku naciśnięcia klawisza funkcyjnego) On- (zamiast standardowej akcji) Pre- (przed akcją) Post- (po akcji) When- (uzupełniając standardowe akcje) Poziom (określa zakres) formularz blok element Kod PL/SQL (c) 2000, Instytut Informatyki Politechniki Poznańskiej 95

Kod wyzwalacza Anonimowy blok PL/SQL zawierający: instrukcje SQL instrukcje PL/SQL wywołania podprogramów użytkownika wywołania podprogramów wbudowanych Form Builder DECLARE -- -- gdy gdy są są deklaracje zmiennych x NUMBER; BEGIN BEGIN -- -- gdy gdy nie nie ma ma DECLARE - opcjonalne x := := :blok.pole1; :blok.pole1 := := :blok.pole2; :blok.pole2 := := x; x; EXCEPTION -- -- opcjonalne WHEN WHEN OTHERS THEN THEN null; null; END; END; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 96

Poziom wyzwalacza - hierarchia wykonywania Na poziomie formularza, bloku i elementu można zdefiniować wyzwalacz tego samego typu Domyślnie uruchamia się tylko wyzwalacz najbardziej specyficzny w stosunku do bieżącego obiektu Można sprawić aby uruchomiły się kolejno wyzwalacze z kilku poziomów modyfikując właściwość wyzwalacza Hierarchia wykonywania: Zamiast (domyślnie) Przed (przed wyzwalaczem na poziomie wyższym) Po (po wyzwalaczu na poziomie wyższym) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 97

Definiowanie wyzwalaczy Korzystając z opcji menu Podręczne wyzwalacze dla bieżącego elementu W Nawigatorze obiektów - dodając nowy wyzwalacz w sekcji Wyzwalacze danego obiektu W Edytorze PL/SQL Uwaga: kod wyzwalacza wymaga kompilacji przez naciśnięcie przycisku Kompiluj w Edytorze PL/SQL automatycznie przy kompilacji modułu (c) 2000, Instytut Informatyki Politechniki Poznańskiej 98

Zmienne w jednostkach programu PL/SQL Zmienne PL/SQL deklarowane w wyzwalaczu deklarowane w pakietach użytkownika Zmienne Form Builder nie wymagają deklaracji przy odwołaniu nazwa musi być poprzedzona dwukropkiem (c) 2000, Instytut Informatyki Politechniki Poznańskiej 99

Typy zmiennych Form Builder elementy formularza zasięg: formularz + menu :nazwa_bloku.nazwa_elementu zmienne globalne zasięg: moduły bieżącej sesji :GLOBAL.nazwa_zmiennej zmienne systemowe zasięg: formularz + menu :SYSTEM.nazwa_zmiennej parametry zasięg: bieżący moduł :PARAMETER.nazwa_parametru (c) 2000, Instytut Informatyki Politechniki Poznańskiej 100

Podprogramy wbudowane Form Builder Podprogramy z pakietu rozszerzeń standardowych (nie wymagają prefiksu pakietu przy wywołaniu) Podprogramy z innych pakietów DDE DEBUG OLE2 ORA_FFI ORA_NLS ORA_PROF TEXT_IO PECS TOOL_ENV TOOL_ERR TOOL_RES VBX WEB EXEC_SQL (w Forms 6.0) FTREE (w Forms 6.0) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 101

Ograniczenia w korzystaniu z podprogramów wbudowanych Podprogramy nieograniczone mogą być używane w dowolnych wyzwalaczach i podprogramach użytkownika Podprogramy ograniczone nie mogą być używane w niektórych wyzwalaczach i podprogramach użytkownika wywoływanych z tych wyzwalaczy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 102

Użyteczne podprogramy wbudowane EDIT_TEXTITEM, SHOW_EDITOR ENTER_QUERY, EXECUTE_QUERY EXIT_FORM GO_BLOCK, GO_ITEM GET_ITEM_PROPERTY, SET_ITEM_PROPERTY GET_BLOCK_PROPERTY, SET_BLOCK_PROPERTY MESSAGE, SHOW_ALERT LIST_VALUES, SHOW_LOV SHOW_VIEW, HIDE_VIEW (c) 2000, Instytut Informatyki Politechniki Poznańskiej 103

Wyzwalacz WHEN-WINDOW WINDOW-CLOSED Uruchamia się przy próbie zamknięcia okna mechanizmami systemu operacyjnego (okno nie zamyka się automatycznie!) Można w nim używać dowolnych podprogramów wbudowanych (ograniczonych również) Zastosowania programowe zamknięcie okna zakończenie pracy z formularzem przejście do elementu w innym oknie przy próbie zamknięcia okna (c) 2000, Instytut Informatyki Politechniki Poznańskiej 104

Wyzwalacze obsługujące interakcję użytkownika z elementami formularza When-Button Button-Pressed When-Checkbox Checkbox-ChangedChanged When-Radio Radio-Changed When-Image Image-Pressed When-Image Image-Activated When-List List-Changed When-List List-Activated (c) 2000, Instytut Informatyki Politechniki Poznańskiej 105

Wyzwalacz WHEN-BUTTON BUTTON-PRESSED Uruchamia się gdy użytkownik naciśnie przycisk Można w nim używać dowolnych podprogramów wbudowanych (ograniczonych również) Przykłady zastosowań wywoływanie nowych okien i modułów wywoływanie list wartości i edytorów dokonywanie obliczeń... (c) 2000, Instytut Informatyki Politechniki Poznańskiej 106

Wyświetlanie list wartości po naciśnięciu przycisku Wywołanie podprogramu wbudowanego pokazującego listę wartości w kodzie wyzwalacza When-Button Button-Pressed LIST_VALUES (wywołuje listę dla bieżącego pola) SHOW_LOV (umożliwia wywołanie listy dla bieżącego pola lub niezależnie od położenia kursora) LOOP LOOP EXIT EXIT WHEN WHEN SHOW_LOV( produkty_lov ); MESSAGE( Musisz wybrać produkt! ); END END LOOP; LOOP; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 107

Programowa obsługa list ADD_LIST_ELEMENT DELETE_LIST_ELEMENT POPULATE_LIST Programowa obsługa obrazów READ_IMAGE_FILE WRITE_IMAGE_FILE GET_FILE_NAME Programowa obsługa dźwięków GET_ITEM_PROPERTY SET_ITEM_PROPERTY Właściwości: SHOW_SLIDER, SHOW_PLAY_BUTTON, itd. (c) 2000, Instytut Informatyki Politechniki Poznańskiej 108

Debugowanie wyzwalaczy Poprawa błędów składniowych i błędnych odwołań do obiektów wykrytych przy kompilacji wyzwalacza Śledzenie działania wyzwalacza poprzez wyświetlanie komunikatów na etapie testowania Korzystanie z debugera uruchomienie formularza w trybie śledzenia (debugowania) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 109

Ćwiczenie W obu formularzach napisz wyzwalacz pozwalający na zamknięcie formularza przez zamknięcie okna Formularz ZAMOWIENIA utwórz wyzwalacz wyświetlający listę książek po naciśnięciu przycisku utwórz wyzwalacz pokazujący okno pomocy zapewnij możliwość opuszczenia okna pomocy przez zamknięcie okienka lub naciśnięcie przycisku utwórz wyzwalacz pokazujący okno ze stanem magazynu napisz wyzwalacz czuły na zmianę sposobu płatności, zapewniający że tylko najbardziej zaufani klienci będą mogli kupować na kredyt Uruchom formularz ZAMOWIENIA w trybie śledzenia (c) 2000, Instytut Informatyki Politechniki Poznańskiej 110

11. Wyświetlanie komunikatów i obsługa błędów

Komunikacja z użytkownikiem Alerty systemowe generowane przez aplikację Komunikaty informacyjne o błędach W trakcie pracy... generowane przez aplikację (procedura MESSAGE) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 112

Wykrywanie błędów w trakcie pracy aplikacji FORM_SUCCESS TRUE: akcja zakończona powodzeniem FALSE: błąd (zwykły lub fatalny) FORM_FAILURE TRUE: błąd zwykły FALSE: brak błędu lub błąd fatalny (!) FORM_FATAL TRUE: błąd fatalny FALSE: brak błędu lub błąd zwykły (!) Na ogół wystarczy korzystanie z FORM_SUCCESS (c) 2000, Instytut Informatyki Politechniki Poznańskiej 113

Ukrywanie komunikatów systemowych Ukrycie komunikatu W trakcie pracy... ustawienie wartości zmiennej systemowej SUPPRESS_WORKING :SYSTEM.SUPPRESS_WORKING := := TRUE ; Ukrywanie komunikatów w zależności od ich wagi ustawienie wartości zmiennej systemowej MESSAGE_LEVEL (0, 5, 10, 15, 20, 25, >25 - im wyższa wartość tym więcej komunikatów będzie ukrywanych) :SYSTEM.MESSAGE_LEVEL := := 25; 25; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 114

Wyjątek FORM_TRIGGER_FAILURE Działanie wyzwalacza kończy się niepowodzeniem gdy: w kodzie wyzwalacza wystąpi nieobsługiwany wyjątek wywołany zostanie jawnie wyjątek wbudowany FORM_TRIGGER_FAILURE Zastosowanie wyjątku FORM_TRIGGER_FAILURE zakończenie błędem działania wyzwalacza po wyświetleniu stosownego komunikatu wyjątek ten przerywa działanie wyzwalacza i jest automatycznie obsługiwany przez Form Builder (c) 2000, Instytut Informatyki Politechniki Poznańskiej 115

Wyzwalacze przechwytujące komunikaty systemowe Cele przechwytywania komunikatów ukrycie komunikatów zamiana komunikatów systemowych na własne Wyzwalacz On-Error przechwytuje błędy odczyt informacji o błędzie: ERROR_CODE ( FRM, ORA ), ERROR_TEXT, ERROR_TYPE Wyzwalacz On-Message przechwytuje komunikaty informacyjne odczyt informacji o komunikacie: MESSAGE_CODE, MESSAGE_TEXT, MESSAGE_TYPE (c) 2000, Instytut Informatyki Politechniki Poznańskiej 116

Alerty Styl Przycisk Tytuł Komunikat (c) 2000, Instytut Informatyki Politechniki Poznańskiej 117

Tworzenie alertów 1) Utworzenie nowego alertu w Nawigatorze obiektów 2) Ustawienie właściwości alertu nazwa tytuł styl alertu stop uwaga informacja etykiety przycisków (1, 2, 3) brak etykiety oznacza, że przycisk nie będzie wyświetlany domyślny przycisk komunikat (c) 2000, Instytut Informatyki Politechniki Poznańskiej 118

Korzystanie z alertów Zmiana właściwości alertu w trakcie pracy SET_ALERT_PROPERTY SET_ALERT_BUTTON_PROPERTY Wyświetlanie SHOW_ALERT IF IF SHOW_ALERT( wyjscie ) = ALERT_BUTTON1 THEN THEN EXIT_FORM; END END IF; IF; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 119

Ćwiczenie Formularz ZAMOWIENIA Utwórz i wykorzystaj alert służący do informowania użytkownika, że dany klient musi płacić gotówką Utwórz funkcję wyświetlającą alert zadający pytanie i oczekujący odpowiedzi Tak lub Nie. Tekst pytania powinien być parametrem. Funkcja powinna zwracać TRUE gdy użytkownik wybierze odpowiedź Tak (w przeciwnym wypadku FALSE ) Wykorzystaj powyższy alert do proszenia użytkownika o potwierdzenie w przypadku chęci opuszczenia formularza przez naciśnięcie przycisku (c) 2000, Instytut Informatyki Politechniki Poznańskiej 120

12. Wyzwalacze obsługujące zapytania do bazy danych

Przetwarzanie zapytań w formularzach Wyzwalacz Pre-Query Bodowa zlecenia SELECT... Wykonanie zapytania Dla każdego rekordu zwracanego przez zapytanie Sprowadzenie wiersza do do nowego rekordu Oznaczenie rekordu jako jako Valid Wyzwalacz Post-Query Walidacja rekordu gdy gdy uległ zmianie (c) 2000, Instytut Informatyki Politechniki Poznańskiej 122

Zapytania kierowane przez formularze do bazy danych Klauzula WHERE jest iloczynem logicznym warunków: z domyślnej klauzuli WHERE dla bloku wynikających z informacji wpisanych do pól w trybie wprowadzania zapytań wprowadzonych w okienku Zapytanie/Klauzula WHERE Klauzula ORDER BY jest: klauzulą z okienka Zapytanie/Klauzula WHERE (gdy została tam wpisana) domyślną klauzulą ORDER BY dla bloku (w przeciwnym wypadku) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 123

Wyzwalacz PRE-QUERY Definiowany na poziomie bloku Uruchamia się raz przez każdym wykonaniem zapytania Gdy wystąpi w nim błąd zapytanie nie wykonuje się Zastosowania: rezygnacja z wykonania zapytania gdy użytkownik wprowadził niewłaściwe kryteria selekcji rozszerzenie warunków selekcji (np. przy obsłudze zapytań o pola niebazowe) ) poprzez: wprowadzenie wartości do pól formularza zmianę domyślnej klauzuli WHERE dla bloku (c) 2000, Instytut Informatyki Politechniki Poznańskiej 124

Wyzwalacz POST-QUERY Uruchamia się dla każdego pobranego rekordu Zastosowania wypełnianie pól niebazowych wyliczanie statystyk Należy uważać na wyjątki: NO_DATA_FOUND TOO_MANY_ROWS IF IF :zam.za_pr_pracownik_id IS IS NOT NOT NULL NULL THEN THEN SELECT pr_nazwisko INTO INTO :zam.dsp_pr_nazwisko FROM FROM k_pracownicy WHERE WHERE pr_pracownik_id = :zam.za_pr_pracownik_id; EXCEPTION WHEN WHEN NO_DATA_FOUND THEN THEN...... /* /* obsługa */ */ WHEN WHEN TOO_MANY_ROWS THEN THEN...... /* /* obsługa */ */ END END IF; IF; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 125

Przetwarzanie tablicowe zapytań Zaleta: ograniczenie ruchu w sieci Dostępne również dla instrukcji DML Włączanie Narzędzia/Preferencje/Runtime Runtime/Przetwarzanie tablicy Właściwość bloku: Zapytania - rozmiar tablicy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 126

Programowa obsługa trybów pracy formularza Odczyt trybu pracy - zmienna :SYSTEM.MODE NORMAL ENTER-QUERY QUERY IF IF :SYSTEM.MODE = NORMAL THEN THEN ENTER_QUERY; ELSE ELSE EXECUTE_QUERY; END END IF; IF; Wyzwalacze w trybie ENTER-QUERY nie wszystkie mogą być wywoływane właściwość wyzwalacza: Uruchamiany w trybie wprowadzania zapytania niektóre operacje nie są dozwolone (np. nawigacja do innego bloku) (c) 2000, Instytut Informatyki Politechniki Poznańskiej 127

Dostęp do informacji o zapytaniach w trakcie pracy formularza :SYSTEM.MODE :SYSTEM.LAST_QUERY Właściwości bloku DEFAULT_WHERE (*) ORDER_BY (*) QUERY_ALLOWED (*) QUERY_HITS (*) QUERY_OPTIONS RECORDS_TO_FETCH Właściwości elementu CASE_INSENSITIVE_QUERY (*) QUERYABLE (*) QUERY_ONLY (*) QUERY_LENGTH (*) - Właściwość modyfikowalna (c) 2000, Instytut Informatyki Politechniki Poznańskiej 128

Ćwiczenie Formularz ZAMOWIENIA zapewnij automatyczne wypełnianie pól Klient i Sprzedawca wyłącz działanie przycisku Wyjście w trybie Enter-Query dodaj możliwość wydawania zapytań o zamówienia dotyczące danego klienta lub obsługiwane przez danego sprzedawcę (c) 2000, Instytut Informatyki Politechniki Poznańskiej 129

13. Walidacja wprowadzanych danych

Proces walidacji danych Poziomy walidacji formularz blok rekord element Gdy walidacja zawiedzie sterowanie wraca na odpowiedni poziom (użytkownik może poprawić błędne dane) Standardowe testy walidacyjne sprawdzenie zgodności z maską formatu sprawdzenie czy element wymagany nie jest pusty sprawdzenie zakresu walidacja za pomocą listy wartości (c) 2000, Instytut Informatyki Politechniki Poznańskiej 131

Jednostka walidacji Walidacja ma miejsce gdy naciśnięty został klawisz funkcyjny Enter użytkownik opuścił jednostkę walidacji Jednostka walidacji (właściwość formularza) domyślna (element) formularz blok danych rekord element (c) 2000, Instytut Informatyki Politechniki Poznańskiej 132

Walidacja za pomocą listy wartości Właściwość pola tekstowego Wprowadzona do pola wartość musi odpowiadać jednej z wartości występujących na liście Automatyczne uzupełnianie lub zawężanie listy po wprowadzeniu wartości do pola Lista wartości musi spełniać następujące warunki: kolumna, według której ma odbywać się walidacja, musi być wyświetlana i pierwsza w kolejności walidowany element formularza musi być uwzględniony jako element zwrotny listy wartości (c) 2000, Instytut Informatyki Politechniki Poznańskiej 133

Wyzwalacze walidacyjne Na poziomie elementu When-Validate Validate-Item Na poziomie bloku When-Validate Validate-Record IF IF :PACJENT.DATA_UR > :PACJENT.DATA_ZGONU THEN THEN MESSAGE( Data zgonu zgonu nie nie może może być być wcześniejsza od od daty daty urodzenia! ); RAISE RAISE FORM_TRIGGER_FAILURE; END END IF; IF; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 134

Status walidacji elementów i rekordu NEW CHANGED VALID Status walidacji pojedynczego elementu Własności elementu ITEM_IS_VALID Wymuszenie walidacji ENTER: sprawdza bieżącą jednostkę walidacji VALIDATE: sprawdza zakres DEFAULT_SCOPE, ITEM_SCOPE, RECORD_SCOPE, BLOCK_SCOPE, FORM_SCOPE (c) 2000, Instytut Informatyki Politechniki Poznańskiej 135

Ćwiczenie Formularz ZAMOWIENIA zapewnij walidację pól Klient i Sprzedawca za pomocą list wartości nie pozwól na zatwierdzenie daty realizacji wcześniejszej od daty zamówienia (c) 2000, Instytut Informatyki Politechniki Poznańskiej 136

14. Nawigacja w formularzach

Właściwości nawigacyjne Formularz Ograniczenie nawigacji myszą formularz, blok, rekord, element Pierwszy blok danych w nawigacji Blok Styl nawigacji ten sam rekord, zmiana rekordu, zmiana bloku danych Poprzedni/Następny blok danych w nawigacji Element Obiekt włączony Nawigacja za pomocą klawiatury Poprzedni/Następny element w nawigacji Nawigacja za pomocą myszy (c) 2000, Instytut Informatyki Politechniki Poznańskiej 138

Nawigacja za pomocą myszy Właściwość decydująca o tym, czy uaktywnienie myszą danego elementu powoduje nawigację do niego i opuszczenie elementu bieżącego (ewentualna nawigacja wiąże się z uruchomieniem wyzwalaczy nawigacyjnych i walidacyjnych) Właściwość domyślnie ustawiona Właściwość często wyłączana dla przycisków (c) 2000, Instytut Informatyki Politechniki Poznańskiej 139

Wyzwalacze nawigacyjne Pre- i Post- uruchamiane w trakcie nawigacji nie uruchamiają się gdy jednostka walidacji jest większa niż obiekt, którego zmiana dotyczy mogą wywoływać tylko niektóre podprogramy w przypadku niepowodzenia nawigacja wraca do punktu wyjścia When-New New- Obiekt Obiekt -Instance uruchamiane po nawigacji uruchamiają się nawet gdy jednostka walidacji jest większa niż obiekt, którego zmiana dotyczy mogą wywoływać wszystkie podprogramy niepowodzenie nie powoduje powrotu do poprzednio odwiedzonego elementu (c) 2000, Instytut Informatyki Politechniki Poznańskiej 140

Wyzwalacze WHEN-NEW NEW- obiekt obiekt -INSTANCE When-New New-Form-Instance When-New New-Block-Instance When-New New-Record-Instance When-New New-Item-InstanceInstance Zastosowanie: inicjalizacja obiektów zmiana właściwości w zależności od pewnych warunków /* /* Przykład When-New-Form-Instance */ */ Go_Block( Zamowienia ); Execute_Query; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 141

Wyzwalacze PRE- i POST- Pre/Post /Post-Form Pre/Post /Post-Block Pre/Post /Post-Record Pre/Post /Post-Item Zastosowania: walidacja obliczenia (dotyczy elementu) ustawianie/usuwanie zmiennych globalnych (c) 2000, Instytut Informatyki Politechniki Poznańskiej 142

Nawigacja między polami 1. When-Validate-Item 2. Post-Text-Item 3. Pre-Text-Item polea poleb 4. When-New-Item-Instance UWAGA: Przejście do nowego pola może wiązać się z przejściem do nowego rekordu lub bloku, co powoduje uruchomienie odpowiednich wyzwalaczy nawigacyjnych (c) 2000, Instytut Informatyki Politechniki Poznańskiej 143

Programowa nawigacja w formularzu GO_FORM, GO_BLOCK, GO_ITEM, GO_RECORD NEXT_BLOCK, NEXT_ITEM, NEXT_KEY, NEXT_RECORD NEXT_SET UP, DOWN PREVIOUS_BLOCK, PREVIOUS_ITEM, PREVIOUS_RECORD SCROLL_UP, SCROLL_DOWN (c) 2000, Instytut Informatyki Politechniki Poznańskiej 144