WHEN_NEW_FORM_INSTANCE



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

Laboratorium Oracle Forms

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

Oracle Application Express

Przygotowanie formularza do wypożyczenia filmu:

Oracle Application Express

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

BAZY DANYCH Panel sterujący

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

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

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

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

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

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

Laboratorium 7 Blog: dodawanie i edycja wpisów

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Ćwiczenia 9 - Swing - część 1

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

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Rozpocznijmy ten odcinek od rozwiązania problemu postawionego w poprzednim odcinku:

Programowanie Obiektowe GUI

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Dodawanie i modyfikacja atrybutów zbioru

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Aplikacje WWW - laboratorium

GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20

Import danych z plików CSV

Podstawowe zapytania SELECT (na jednej tabeli)

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Oracle PL/SQL. Paweł Rajba.

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

Zaawansowane aplikacje internetowe - laboratorium

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

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

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

Program powinien otworzyć się z pierwszym formularzem. Jeśli nie, otwórz pierwszy formularz, wybierając go z listy - Shift+F12.

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Aplikacja Shoper Appstore Powiązane w koszyku REALIZACJA

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

Visual Studio instalacja

PODSTAWY BAZ DANYCH 13. PL/SQL

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

7. Formularze master-detail

Bloki anonimowe w PL/SQL

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

Część I: Przypisanie makr do obiektu (przycisku).

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

Przewodnik... Tworzenie Landing Page

Obowiązuje od wersji

Utwórz strukturę bazy

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Pozwolenia wodnoprawne i zgłoszenia przydomowych oczyszczalni ścieków

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Formy ochrony przyrody oraz gospodarka zielenią

Integracja z Facebook. Wersja 7.2.4

Ćwiczenie 5 Menu programu

Sigma Moduł dla szkół

Sigma moduł Arkusz. Jak w arkuszu opisać nauczyciela, który uzupełnia etat w innej szkole? I sposób

Projektowanie i implementacja systemów informatycznych Materiały szkoleniowe

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

Formularze w programie Word

Symfonia Produkcja. Kreator raportów. Wersja 2013

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

Komponent Formularz. Rys. 1. Strona programu Joomla - Rys. 2. Instalacja komponentu

UMOWY INSTRUKCJA STANOWISKOWA

Kostki OLAP i język MDX

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

CMS - INFORMACJE. *** Mirosław Kuduk E mail: tel. kom DODATKOWE FUNKCJE - PANEL ADMINISTRATORA

ACCESS ćwiczenia (zestaw 1)

Sigma moduł Arkusz. Jak opisać w arkuszu zajęcia międzyoddziałowe?

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

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

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

UONET+ moduł Dziennik

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

Elektroniczny Urząd Podawczy

Formularze i raporty w MS Access

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Laboratorium 8 ( Android -pierwsza aplikacja)

UONET+ moduł Dziennik

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

Wykonaj tę czynność, jeśli masz co najmniej trzy awiza dostawy do przetworzenia.

Jako lokalizację, w której będzie kontynuowana praca w przyszłym roku szkolnym, warto wybrać tę, w której zgromadzonych jest więcej danych.

Wykład 03 JavaScript. Michał Drabik

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Podstawy JavaScript ćwiczenia

Programowanie Wizualno Obiektowe - zajęcia 2 (PWO_BCPP_2_2) Tworzenie i kompilowanie projektów Programowanie Wizualno Obiektowe Zajęcia 2, część 2

Rejestr VAT Optivum. Jak przygotować deklarację VAT-7 oraz jednolity plik kontrolny?

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

MS Access - bazy danych

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

WinSkład / WinUcz 15.00

Scenariusze obsługi danych MPZP

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Inwentarz Optivum. Jak wykorzystać kolektor danych do wypełniania arkuszy spisowych?

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

Transkrypt:

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). Zapewnij wyświetlenie 15 wierszy w formie tabelarycznej (tabular). Dodaj pasek przewijania, a ramkę zatytułuj Marki samochodów. Dodaj podpowiedzi i opisy dla pól KOD i NAZWA (KOD- Property Palette-Help-Hint, ustaw Display Hint Automatically na Yes). Uporządkuj dane według nazwy marki (własność ORDER BY bloku danych Marki). 2. Zmień nazwę okna na OKNO_MARKI_TYPY (własność General-Name okna). Ustaw tytuł okna na Marki samochodów i typy nadwozi (własność Functional-Title okna). Ustaw jako główną kanwę okna zdefiniowaną wcześniej kanwę kart (własność Functional-Primary Canvas okna). Zapewnij aby nie była dozwolona maksymalizacja okna (własność Functional-Maximize Allowed okna) i zmiana jego rozmiarów (własność Functional-Resize Allowed okna). 3. Zmień nazwę kanwy kart na KANWA_MARKI_TYPY (własność General- Name kanwy), a istniejącej karty na MARKI (własność General-Name podobiektu Tab Pages ). Dodatkowo ustaw etykietę karty na Marki (własność Functional-Label podobiektu Tab Pages ).. 4. Utwórz na poziomie formularza wyzwalacz WHEN_NEW_FORM_INSTANCE, który zapewni automatyczne wyświetlanie danych po wyświetleniu formularza. Wykorzystaj kod: -- Przejdź do bloku MARKI go_block('marki'); -- Wykonaj zapytanie 5. Utwórz atrybut wizualny (kliknąć dwukrotnie element Visual Attributes fromularza) AKTUALNY_REKORD i ustaw dla niego własność definiującą kolor tła na green (własność Color-Background Color obiektu Visual Attribute). Dla bloku MARKI określ własność definiującą grupę atrybutów wizualnych bieżącego rekordu na AKTUALNY_REKORD (własność Records-Current Record Visual Attribute Group bloku danych MARKI). 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, w sposób tablaryczny. 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 oraz kodzie typu nadwozia (własność ORDER BY). 8. Zmień nazwę nowej karty na kanwie 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. 11.Zapewnij automatyczne odświeżanie i wczytywanie danych w momencie przechodzenia pomiędzy kartami. Wykorzystaj wyzwalacz WHEN- TABPAGE-CHANGED na poziomie formularza. Wykorzystaj kod 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'); ELSIF tp_lb='typy' THEN go_block('typy_nadwozi'); ELSE null; END IF; END; 12.Zapisz formularz i zweryfikuj jego funkcjonowanie. 13.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. Napisz dla tego elementu kod, który wywoła on formularz marki_typy po jego wybraniu. Wykorzystaj kod: -- wywołaj formularz marki_typy CALL_FORM('marki_typy', no_hide, do_replace, no_query_only, ''); 14.Zapisz menu pod nazwą menu_main.mmb i skompiluj zawartość generując postać uruchomieniową mmx. 15.Utwórz nowy formularz (File->New->Form). W nowym formularzu utwórz ręcznie kanwę. We własnościach formularza podaj nazwę modułu menu menu_main. W ramach kanwy zapewnij oprawę graficzną strony tytułowej aplikacji, np. umieść zdjęcie poprzez wybranie Edycja- Import-Image. Wcześniej dwukrotnie kliknij na kanwę.

16.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. 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. 17.Utwórz nowy formularz (File->New->Form). Zapisz go pod nazwą marki_modele.fmb.dodaj do niego za pomocą kreatora (Tools->Data Block Wizard) blok oparty na tabeli MARKI.Blok ten umieść na kanwie typu Content. Zapewnij wyświetlanie 5 wierszy zawierających kolumnę KOD (kod marki) i NAZWA (nazwa marki), w sposób tabularyczny. Ustaw tytuł na Marki.Dodaj pasek przewijania. Uzupełnij stosownie podpowiedzi dla wyświetlanych pól. 18.Dodaj za pomocą kreatora blok oparty na tabeli MODELE. Powiąż go relacją z blokiem MARKI i umieść na tej samej kanwie co blok MARKI. Zapewnij wyświetlanie 10 wierszy zawierających kolumnę NAZWA (nazwa modelu), w sposób tabularyczny. Ustaw tytuł na Modele. Dodaj pasek przewijania. Uzupełnij stosownie podpowiedzi dla wyświetlanego pola. 19. Ustaw tytuł okna na Marki i modele samochodów. Dodaj atrybut wizualny AKTUALNY_REKORD zapewniający kolorowanie tła bieżącego rekordu. 20. Dodaj na poziomie formularza wyzwalacz WHEN-NEW-FORMINSTANCE zapewniający automatyczne wyświetlenie danych.

-- Wykonanie zapytania po wywołaniu formularza go_block('marki'); 21.Na poziomie bloku MODELE dodaj wyzwalacz PRE-INSERT obsługujący numerację identyfikatora modelu: select modele_id_seq.nextval into :modele.id from dual; 22.Utwórz nowy formularz (File->New->Form). Zapisz go pod nazwą samochody.fmb.dodaj do niego za pomocą kreatora (Tools->Data Block Wizard) blok oparty na tabeli SAMOCHODY. 23.Dla elementu KOLOR zmień typ elementu (własność General-Item Type) na listę (wartość List Item) i ustaw jej styl (własność Functional-List Style) jako Poplist. Wpisz elementy dostępne na liście (własność Functional-Elements in List): Ustaw wartość początkową (własność Data-Initial Value) pola KOLOR na kolor Biały. 24.Dla pola Rok ustaw najmniejszą dozwoloną wartość (własność Data- Lowest Allowed Value) na rok 1950, zaś największą dozwoloną wartość (Data-Highest Allowed Value) na 2007. 25.Zmień nazwę okna (własność General-Name) na WINDOW_SAMOCHODY i ustaw tytuł okna (własność Functional-Title) na Samochody. 26.Dodaj do bloku SAMOCHODY niebazodanowe pole (własność Database -Database Item=No) o nazwie MARKA. Zmień jego typ (własność General-Item Type) na List Item i ustaw styl listy (Functional-List Style)

jako Combo Box. Dopisz wartości dostępne na liście (własność Functional-Elements in List): Ustaw wartość początkową (własność Initial Value) pola MARKA na TOY. 27.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), 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; -- Wykonanie zapytania po wywołaniu formularza go_block('samochody'); 28.Dodaj do bloku SAMOCHODY niebazodanowe (Database-Database Item=No) pole tekstowe (własność General-Item Type=Text Item) o nazwie MODEL. Zapewnij, aby było ono wymagalne (własność Data- Required=Yes) i umożliwiało przechowywanie napisów (własność Data-

Data Type=Char) 30 znakowych (własność Data-Maximum Length=30). 29.Za pomocą kreatora list wartości (LOV Wizard) utwórz listę wartości o nazwie LOV_MODELE.Posłuż się zapytaniem: select nazwa, id from modele where marka_kod=:samochody.marka order by nazwa Dodaj do listy LOV_MODELE obydwie kolumny z grupy rekordów (NAZWA, ID). Dla kolumny ID ustaw szerokość na 0 i element zwracany na SAMOCHODY.MODEL_ID. Dla kolumny NAZWA ustaw element zwracany na SAMOCHODY.MODEL. Ustaw tytuł okna listy wartości na Modele.Powiąż tworzoną listę wartości z polem SAMOCHODY.MODEL. 30.Dodaj do bloku SAMOCHODY przycisk (własność General-Item Type=Push Button) o nazwie BTN_MODEL. Dla przycisku BTN_MODEL dodaj kod zapewniający wyświetlenie listy wartości skojarzonej z polem SAMOCHODY.MODEL. Kod ten umieść w wyzwalaczu WHEN-BUTTON- PRESSED. -- przejdź do elementu model i wywołaj skojarzoną -- z nim listę wartości go_item('samochody.model'); do_key('list_values'); 31.Dodaj do bloku SAMOCHODY niebazodanowe (Database-Database Item=No) pole tekstowe (własność General-Item Type=Text Item) o nazwie NADWOZIE. Zapewnij, aby było ono wymagalne (własność Data-Required=Yes) i umożliwiało przechowywanie napisów (własność Data-Data Type=Char) 10 znakowych (własność Data-Maximum Length=10). 32.Dodaj do bloku SAMOCHODY niebazodanowe (Database-Database Item=No) pole wyświetlania (własność General-Item Type=Display Item) o nazwie DRZWI. Zapewnij, aby umożliwiało ono przechowywanie liczb (własność Data-Data Type=Number). 33.Za pomocą kreatora list wartości (LOV Wizard) utwórz listę wartości o nazwie LOV_TYP.Posłuż się zapytaniem: select nazwa, kod, ilosc_drzwi from typy_nadwozi order by nazwa Dodaj do listy LOV_TYP obydwie kolumny z grupy rekordów (NAZWA, ID). Dla kolumny NAZWA ustaw element zwracany na

SAMOCHODY.NADWOZIE. Dla kolumny KOD ustaw element zwracany na SAMOCHODY.TYP_KOD. Dla kolumny ILOSC_DRZWI ustaw element zwracany na SAMOCHODY.DRZWI. Ustaw tytuł okna listy wartości na Typy nadwozia. Powiąż tworzoną listę wartości z polem SAMOCHODY.NADWOZIE. 34.Dodaj do bloku SAMOCHODY przycisk (własność General-Item Type=Push Button) o nazwie BTN_TYP. Dla przycisku BTN_TYP dodaj kod zapewniający wyświetlenie listy wartości skojarzonej z polem SAMOCHODY.NADWOZIE. Kod ten umieść w wyzwalaczu WHEN- BUTTON-PRESSED. -- przejdź do elementu nadwozie i wywołaj skojarzoną -- z nim listę wartości go_item('samochody.nadwozie'); do_key('list_values'); 35.Dla bloku SAMOCHODY zdefiniuj wyzwalacz POST-QUERY wypełniający niebazodanowe pola 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_kod; 36. Elementy formularza umieść na kanwie typy Content w następjącej kolejności : MARKA, MODEL, BTN_MODEL, NADWOZIE, BTN_TYP, DRZWI, ROK, KOLOR, OPIS. Zapewnij wyświetlanie 15 wierszy w formie tabularycznej, ustaw tytuł ramki na Samochody, dodaj pasek przewijania. Zapewnij aby było wyświetlane pojedyncze (własność Records-Number of Items Displayed=1) wielowierszowe (własność Functional-Multi- Line=Yes) pole OPIS.

37.Zmodyfikuj wcześniej stworzone menu, aby wyglądało w sposób następujący : 38.Dodaj do elementów menu kod zapewniający wywołanie odpowiednich formularzy. 39.Zdefiniuj parametr o nazwie P_MODEL_ID typu NUMBER(30) w formularzu samochody. 40. Dla bloku danych SAMOCHODY ustaw własność WHERE Clause na: MODEL_ID=NVL(:PARAMETER.P_MODEL_ID,MODEL_ID) 41.Otwórz formularz marki_modele i dodaj w bloku danych MODELE przycisk BTN_SAMOCHODY i umieść na nim etykietę Samochody. 42.Dodaj do formularza marki_modele procedurę WYWOLAJ_FORMULARZ (Moduły programu), która będzie odpowiadać za wywołanie formularza samochody, tak aby pokazywał on tylko samochody aktualnie wybranego

modelu. Wykorzystaj kod : 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 samochody CALL_FORM('samochody', no_hide, do_replace,no_query_only, pl_id); end; 43.Dla przycisku BTN_SAMOCHODY dodaj wyzwalacz WHENBUTTON- PRESSED wywołujący procedurę wywolaj_formularz z przekazanym jako parametr identyfikatorem aktualnie wybranego modelu: wywolaj_formularz(:modele.id);