ĆWICZENIE 4 1. Uruchomić Oracle Forms Builder. 2. Utworzyć nowy

Transkrypt

ĆWICZENIE 4 1. Uruchomić Oracle Forms Builder. 2. Utworzyć nowy
Ć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:
4.1.Wybrać składową Data Blocks formularza
4.2.Nacisnąć prawy przycisk myszy
4.3.Wybrać Data Block Wizard
4.4.Wybrać Table or View
4.5.Nacisnąć Browse, aby wybrać nazwę tabeli lub perspektywy składowanej w bazie
(wszystkie kolumny z tabeli SAMOCHODY)
4.6.Wpisać nazwę bloku danych (domyślnie SAMOCHODY)
4.7.Zaznaczyć „Just create a data block”, w celu utworzenia tylko bloku danych
5.
Dodaj do bloku SAMOCHODY niebazodanowe pole o nazwie MARKA:
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
( ITEM6 ) i zmień jego nazwę na MARKA
●
●
●
wejdź do Property Palette nowego pola i zmień jego charakter na niebazodanowy
( własność Database Item = No), typ na List Item (własność Item Type = List Item)
oraz ustaw styl listy jako Combo Box (List Style = Combo Box)
Wpisz elementy dostępne na liście Elements in List -> More (własność List
Elements: Toyota, Opel, ... itd.)
Ustaw wartość początkową pola MARKA na TOY
6. Na poziomie formularza dodaj wyzwalacz ( z Object Navigator) WHEN-NEW-FORMINSTANCE, który zapewni dynamiczne wypełnienie listy Marka własnościami dostępnych
marek samochodów ( z tabeli 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;
-- 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;
7. Dodaj do bloku danych SAMOCHODY pole tekstowe o nazwie MODEL:
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
(ITEM7 ) i zmień jego nazwę na MODEL
● wejdź do Property Palette nowego pola i zmień jego typ na pole tekstowe (własność
Item Type = Text Item)
● zapewnij, aby pole to było wymagane ( własność Reguired = Yes) i umożliwiało
przechowywanie napisów 30 znakowych (własność Data Type = Char oraz własność
Maximum Length = 30)
8. Dodaj do bloku danych SAMOCHODY przycisk o nazwie BTN_MODEL i ustaw dla niego
własność Mouse Navigate na No:
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
(ITEM8) i zmień jego nazwę na BTN_MODEL
● wejdź do Property Palette nowego pola i zmień jego typ na przycisk (własność Item
Type = Push Button) oraz ustaw własność Mouse Navigate = No
9. Dodaj listę wartości (LOV) o nazwie LOV_MODELE. Do jej utworzenia wykorzystaj
kreator list wartości (LOV Wizard).
● uruchom LOV Wizard
● utwórz nową listę wybierając New Record Group based on a query
● do budowy posłuż się zapytaniem (wpisz SQL Query Statement):
select nazwa, id from modele
where marka_kod=:samochody.marka
order by nazwa
●
następnie dodaj do LOV obydwie kolumny z grupy rekordów (NAZWA, ID)
ustaw szerokość kolumny ID na 0 (Width = 0) i wartość zwracaną jako
SAMOCHODY.MODEL_ID (Return value = SAMOCHODY.MODEL_ID); dla
kolumny NAZWA ustaw element zwracany na SAMOCHODY.MODEL (Return
value = SAMOCHODY.MODEL)
następnie ustaw tytuł okna listy wartości LOV na Modele (Title = Modele)
następnie powiąż tworzoną listę wartości z polem SAMOCHODY.MODEL:
●
ustaw dla pola SAMOCHODY.MODEL własność Validaate from List = No
●
●
●
10. Dla przycisku BTN_MODEL dodaj kod zapewniający wyświetlenie listy wartości
skorzystania z pola SAMOCHODY.MODEL:
-- przejdź do elementu model i wywołaj skojarzoną
-- z nim listę wartości
go_item('SAMOCHODY.MODEL');
do_key('LIST_VALUES');
11. Dodaj do bloku SAMOCHODY pole tekstowe o nazwie NADWOZIE:
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
(ITEM9) i zmień jego nazwę na NADWOZIE
● wejdź do Property Palette nowego pola i zmień jego typ na pole tekstowe (własność
Item Type = Text Item)
● zapewnij, aby pole to było wymagane ( własność Reguired = Yes) i umożliwiało
przechowywanie napisów 10 znakowych (własność Data Type = Char oraz własność
Maximum Length = 10)
12. Dodaj do bloku SAMOCHODY przycisk o nazwie BTN_TYP i ustaw dla niego własność
Mouse Navigate na No
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
(ITEM10) i zmień jego nazwę na BTN_TYP
● wejdź do Property Palette nowego pola i zmień jego typ na przycisk (własność Item
Type = Push Button) oraz ustaw własność Mouse Navigate = No
13. Dodaj do bloku SAMOCHODY pole wyświetlania o nazwie DRZWI:
● wejdź do Object Navigator
● w bloku danych SAMOCHODY zaznacz Items
● kliknij na zielony krzyżyk (Create), który utworzy nowe pole w bloku danych
(ITEM11) i zmień jego nazwę na DRZWI
● wejdź do Property Palette nowego pola i zmień jego typ na pole wyświetlania
(własność Item Type = Display Item)
● zapewnij, aby umożliwiało ono przechowywanie liczb, zmień własność Data Type =
Number
14. Uporządkuj elementy w Object Navigator według kolejności przedstawionej poniżej:
15. Utworzyć kanwę
15.1.Wybrać składową Canvases formularza
15.2.Nacisnąć prawy przycisk myszy
15.3.Wybrać Layout Wizard
15.4.W polu Canvas wybrać New Canvas
15.5.W polu Type wybrać Tab (kanwa karty, zakładkowa)
15.6.Wybrać blok danych, który ma zostać umieszczony na kanwie (blok danych
SAMOCHODY)
15.7.Wybrać elementy danego bloku danych, które mają zostać umieszczone na kanwie
(atrybuty ROK, KOLOR, OPIS ) oraz określić ich typ (Text Item – elementy tekstowe)
15.8.Wprowadzić nazwy dla wybranych wyżej elementów (ROK- Rok, KOLOR – Kolor,
OPIS - Opis), ich szerokość i wysokość
15.9.Wybrać Tabular jako styl rozkładu
15.10.Wprowadzić tytuł okna ( Dane samochodów – rok, kolor, opis), ilość wyświetlanych
wierszy (15), odległość między wierszami
15.11.Zaznaczyć Display Scrollbar, jeśli ma pojawić się suwak do przewijania
15.12.Zmienić własności ramek wyświetlających dane ROK, KOLOR i OPIS ( z Layout
Editor)
● Wejdź do Property Palette ramki Rok i zmień wartość Hint- dodaj podpowiedź
(„Rok produkcji”), wartość Display Hint Automatically- „yes”, wartość Tooltip „Rok produkcji pojazdu”
● Podobnie dla ramki Kolor i Opis
15.13.Z Object Navigator przejdź do Layout Editor dla nowo stworzonej kanwy , zmień dla
pola Opis wartości
● Zaznaczając ramkę Opis wejdź do jej Property Palette i ustaw wyświetlanie
pojedyncze (własność Number of Items Displayed = 1 ) oraz wyświetlanie pola
wielowierszowe (własość Multi-Line = Yes)
15.14.Z Object Navigator przejdź do Layout Editor dla nowo stworzonej kanwy , zmień
dla pola Kolor wartości
● Zaznaczając ramkę Kolor wejdź do jej Property Palette i zmień typ elementu
(własność Item Type nalistę (wartość List Item) i ustaw jej styl jako poplist
( własność List Style = Poplist)
● Wpisz elementy dostępne na liście Elements in List -> More (własność List
Elements: Biały, Czerwony, Srebrny, Zielony, Niebieski)
● Wstaw wartośc początkową (wartość Initial Value) pola KOLOR na kolor Biały.
15.15.Z Object Navigator przejdź do Layout Editor dla nowo stworzonej kanwy , zmień
dla pola Rok wartości
● ustaw najmniejszą dozwoloną wartośc na rok 1950 (własność Lowest Allowed Value
= 1950), zaś największą dozwoloną wartość na 2007 (własność Highest Allowed
Value = 2007)
16. Zmień nazwę okna ( z Object Navigator) na WINDOW_SAMOCHODY i ustaw tytuł okna
(własność Title) na Samochody.
17. Zapewnij wygląd formularza zbliżony do zamieszczonego poniżej:
18. Dodaj listę wartości (LOV) o nazwie LOV_TYP. Do jej utworzenia wykorzystaj kreator list
wartości (LOV Wizard).
● uruchom LOV Wizard
● utwórz nową listę wybierając New Record Group based on a query
● do budowy posłuż się zapytaniem (wpisz SQL Query Statement):
select nazwa, kod, ilosc_drzwi
from typy_nadwozi
order by nazwa
● ustaw wartość zwracaną dla kolumny NAZWA jako SAMOCHODY.NADWOZIE
(Return value = SAMOCHODY.NADWOZIE); dla kolumny KOD ustaw element
zwracany na SAMOCHODY.TYP (Return value = SAMOCHODY.TYP); dla
kolumny ILOSC_DRZWI jako SAMOCHODY.DRZWI (Return value =
SAMOCHODY.DRZWI)
● zmień stosownie szerokość wyświetlania kolumn (np. dla KOD = 0)
● następnie ustaw tytuł okna listy wartości LOV na Typy nadwozi (Title = Typy
Nadwozi)
● powiąż listę wartości z polem SAMOCHODY.NADWOZIE
● ustaw dla pola SAMOCHODY.NADWOZIE własność Validate from List na No
19. 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');
20. Dla bloku SAMOCHODY ( z Object Navigator) 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;
21. 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');
22. Zdefiniuj parametr o nazwie P_MODEL_ID typu Number(30)
23. Dla bloku SAMOCHODY ustaw własność Where Clause na
MODEL_ID=NVL(:PARAMETER.P_MODEL_ID, MODEL_ID)
24. Zdefiniuj atrybut wizualny o nazwie AKTUALNY_RECORD. Ustaw dla niego kolor tła na
cyan. Zapewnij aby bieżący rekord w bloku SAMOCHODY wykorzystywał atrybut
AKTUALNY_REKORD
25. Uruchom i przetestuj formularz.

Podobne dokumenty