STWORZENIE PRZYKŁADOWEJ APLIKACJI NA



Podobne dokumenty
ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

STWORZENIE MOBILNEJ APLIKACJI,

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Laboratorium 10 - Web Services

STWORZENIE PRZYKŁADOWEJ

Leszek Stasiak Zastosowanie technologii LINQ w

Wykład 12. Programowanie serwera MS SQL 2005 w C#

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

ZAPOZNANIE SIĘ Z TWORZENIEM

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Laboratorium 7 Blog: dodawanie i edycja wpisów

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

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

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Informatyka II. Laboratorium Aplikacja okienkowa

Aplikacje WWW - laboratorium

Programowanie telefonów z Windows Phone 7, cz. 4

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

Zaawansowane aplikacje internetowe

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

Narzędzia 4. dr inż. Tadeusz Jeleniewski

Wykład 10 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Zaawansowane aplikacje WWW - laboratorium

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

SIECI KOMPUTEROWE I BAZY DANYCH

Ćwiczenie 7 Komponent IBQuery - uruchamianie zapytań aktualizujących. 1. Przygotować w nowym katalogu aplikację do aktualizacji bazy SKOKI.GDB.

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

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

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Paweł Cieśla. Dokumentacja projektu

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005

Microsoft.NET: Warstwa dostępu do danych (DAL) w aplikacjach ASP.NET Web Forms

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

Aplikacje internetowe i rozproszone - laboratorium

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Ćwiczenia 9 - Swing - część 1

Katalog książek cz. 2

Aplikacje WWW - laboratorium

Laboratorium 1 - Programowanie proceduralne i obiektowe

Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację przygotowaną na poprzednich zajęciach w katalogu SKOKI1 do nowego katalogu SKOKI2.

Projektowanie baz danych za pomocą narzędzi CASE

Instrukcja laboratoryjna

Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie.

Instrukcja zarządzania kontami i prawami

Podstawy technologii WWW

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

1.1. System otwartych baz danych ODBC. System otwartych baz danych ODBC. Interfejs ODBC. Interfejs ODBC. System otwartych baz danych ODBC

STWORZENIE MODUŁU POBIERAJĄCEGO WEKTOROWE

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

Unity 3D - własny ekran startowy i menu gry

Kostki OLAP i język MDX

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

Ustawianie lokalizacji dla indeksów Ustawianie lokalizacji dla indeksów spis kroków

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

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Instrukcja uŝytkowania programu

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Programowanie telefonów z Windows Phone 7, cz. 2

Db4o obiektowa baza danych wersja.net

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Dostęp do baz danych w ASP.NET.

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Programowanie w środowisku graficznym GUI

5. Bazy danych Base Okno bazy danych

Aplikacje w środowisku Java

4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Tworzenie i wykorzystanie usług sieciowych

Projekt bazy danych serwisu komputerowego

Zaawansowane aplikacje internetowe - laboratorium

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Projekt Hurtownia. Koło Naukowe Programistów.NET Wyższa Szkoła Biznesu - National Louis University w Nowym Sączu

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

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

7. Formularze master-detail

Programowanie obiektowe

Transkrypt:

LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE PRZYKŁADOWEJ APLIKACJI NA URZĄDZENIE POCKET PC I. Temat ćwiczenia II. Wymagania Wiadomości z poprzednich zajęć III. Ćwiczenie 1. Wprowadzenie Celem ćwiczenia jest stworzenie mobilnej aplikacji rejestracji pojazdów w serwisie samochodowym. Aplikacja powinna spełniać następujące wymagania: Aplikacja mobilna dla urządzenia Pocket PC, Baza danych Microsoft SQL Server Mobile Edition, Baza danych pojazdów przyjętych do serwisu, Baza danych pracowników serwisantów, Rejestr napraw przeprowadzanych przez pracowników na samochodach, Dodanie pojazdu do bazy danych, Dodanie pracownika do bazy danych, Dodanie naprawy do bazy danych. 2. Utworzenie aplikacji W celu wykonania powyŝszego zadania wykorzystamy wiedzę zdobytą podczas poprzednich lekcji. Na początku naleŝy utworzyć aplikację na urządzenie Pocket PC z wykorzystaniem bazy danych Microsoft SQL Server Mobile Edition. Tworzymy następujący schemat bazy danych: Pojazdy Naprawy Mechanicy # id * numer_rej # id * id_pojazdu * id_mechanika * data * status # id * nazwisko Strona 1/11

Z zakładki Server Explorer wybieramy Connect To Database i w wyświetlonym oknie dialogowym w polu Data Source wybieramy bazę danych Microsoft SQL Server Mobile Edition (przycisk Change). Następnie tworzymy nową bazę danych przyciskiem Create. Po określeniu ścieŝki do bazy danych oraz hasła dostępu, zatwierdzamy przyciskiem OK (Rysunek 1). Rysunek 1 Utworzenie połączenia do bazy danych Tworzymy schemat bazy danych rozpoczynając od tabeli Pojazdy. Atrybut id definiujemy jako klucz podstawowy relacji oraz własność Auto increment poprzez ustawienie opcji Identity na True (Rysunek 2). Strona 2/11

Rysunek 2 Utworzenie schematu relacji Pojazdy W podobny sposób definiujemy tabele Mechanicy oraz Naprawy. Dla atrybutu id definiujemy klucz podstawowy relacji oraz własność Auto increment (Rysunki 3 i 4). Rysunek 3 Utworzenie schematu relacji Mechanicy Strona 3/11

Rysunek 4 Utworzenie schematu relacji Naprawy MoŜemy przystąpić do utworzenia aplikacji na Pocket PC. Wykorzystamy komponent TabControl, w którym na kaŝdej z zakładek umieścimy osobny komponent DataGrid do obsługi poszczególnych relacji bazy danych. Na poszczególnych zakładkach umieszczamy komponenty DataGrid i określamy dla nich parametry Data Source. Wybieramy Add Project Data Source, wybieramy opcję Database, następnie wybieramy tabele (Pojazdy, Mechanicy, Naprawy), które umieścimy w obiekcie DataSet. Zatwierdzamy wybór. Następnie z dostępnej listy wybieramy tabelę, z którą ma zostać połączony konkretny komponent DataGrid (Rysunek 5). Strona 4/11

Rysunek 5 Określenie źródła danych dla komponentu MoŜemy teraz na kaŝdej z zakładek tworzonej aplikacji umieścić przyciski do wprowadzania nowych uŝytkowników. Akcją na naciśnięcie przycisku będzie wyświetlenie nowej formy z polami do dodania nowego rekordu do bazy danych. Dodawanie danych do bazy danych rozpoczynamy od utworzenia formatki słuŝącej do dodawania nowego pojazdu. Po dodaniu nowej formatki, umieszczamy na nich komponenty: Label, TextBox oraz Button. Schemat przykładowej formatki do dodawania pojazdu (Rysunek 6). Rysunek 6 Przykładowa formatka dodawania nowego pojazdu Strona 5/11

Na głównej formie programu, na zakładce Pojazdy, dodajemy przycisk który wyświetli formę dodawania pojazdu. Przykładowy kod otwarcia formatki dodawania pojazdu (Listing 1): [ ] private void button1_click(object sender, EventArgs e) DodajPojazd dp = new DodajPojazd(this.serwisDataSet, this.pojazdytableadapter); dp.showdialog(); this.pojazdytableadapter.fill(this.serwissamochodowydataset.pojazdy); [ ] Listing 1 Kod otwarcia formatki dodawania pojazdu Przykładowy kod obsługi formatki dodawania nowego pojazdu do bazy danych (Listing 2): using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using SerwisSamochodowy.SerwisSamochodowyDataSetTableAdapters; namespace SerwisSamochodowy public partial class DodajPojazd : Form private SerwisSamochodowyDataSet serwissamochodowydataset; private PojazdyTableAdapter pojazdytableadapter; public DodajPojazd(SerwisSamochodowyDataSet dataset, PojazdyTableAdapter tableadapter) this.serwissamochodowydataset = dataset; this.pojazdytableadapter = tableadapter; InitializeComponent(); private void button1_click(object sender, EventArgs e) if (!String.IsNullOrEmpty(this.textBox1.Text)) * Utworzenie obiektu reprezentującego pojedynczą krotkę w bazie danych SerwisSamochodowyDataSet.PojazdyRow pojazd = this.serwissamochodowydataset.pojazdy.newpojazdyrow(); * Wypełnienie obiektu danymi z formatki pojazd.numer_rej = this.textbox1.text; * Aktualizacja obiektu DataSet this.serwissamochodowydataset.pojazdy.rows.add(pojazd); * Aktualizacja zmian z bazie danych z wykorzystaniem obiektu DataAdapter if (this.pojazdytableadapter.update( (SerwisSamochodowyDataSet.PojazdyDataTable) this.serwissamochodowydataset.pojazdy.getchanges()) > 0) this.close(); Strona 6/11

else MessageBox.Show("Wypełnij pole: Numer rej."); Listing 2 Kod obsługi formatki dodawania pojazdu W podobny sposób tworzymy formę do dodawania nowego mechanika. Przykładowy kod realizujący dodawanie nowego mechanika (Listing 3). using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using SerwisSamochodowy.SerwisSamochodowyDataSetTableAdapters; namespace SerwisSamochodowy public partial class DodajMechanika : Form private SerwisSamochodowyDataSet serwissamochodowydataset; private MechanicyTableAdapter mechanicytableadapter; public DodajMechanika(SerwisSamochodowyDataSet dataset, MechanicyTableAdapter tableadapter) this.serwissamochodowydataset = dataset; this.mechanicytableadapter = tableadapter; InitializeComponent(); private void button1_click(object sender, EventArgs e) if (!String.IsNullOrEmpty(this.textBox1.Text)) * Utworzenie obiektu reprezentującego pojedynczą krotkę w bazie danych SerwisSamochodowyDataSet.MechanicyRow mechanik = this.serwissamochodowydataset.mechanicy.newmechanicyrow(); * Wypełnienie obiektu danymi z formatki mechanik.nazwisko = this.textbox1.text; * Aktualizacja obiektu DataSet this.serwissamochodowydataset.mechanicy.rows.add(mechanik); * Aktualizacja zmian z bazie danych z wykorzystaniem obiektu DataAdapter if (this.mechanicytableadapter.update( (SerwisSamochodowyDataSet.MechanicyDataTable) this.serwissamochodowydataset.mechanicy.getchanges()) > 0) this.close(); else MessageBox.Show("Wypełnij pole: Nazwisko"); Strona 7/11

Listing 3 Kod obsługi formatki dodawania mechanika Utworzony schemat bazy danych zawiera ograniczenia integralnościowe unikalności atrybutów relacji. W celu obsłuŝenia wyjątków zgłaszanych przez aplikację podczas próby dodawania do bazy danych juŝ istniejących krotek, niezbędne jest zmodyfikowanie metod aktualizacji bazy danych znajdujących się w pliku: SerwisSamochodowyDataSet.Designer.cs. W tym celu dodajemy referencje do klas zawierających obsługę wyjątków oraz obsługę komunikatów (Listing 4). using System.Windows.Forms; using System; Listing 4 Referencje do klasy obsługi wyjątków oraz klasy komponentów graficznych W metodach aktualizacji relacji Pojazdy oraz Mechanicy definiujemy obsługę zgłaszanych wyjątków poprzez wyświetlenie komunikatów informacyjnych uŝytkownikowi (Listingi 5-8). [System.Diagnostics.DebuggerNonUserCodeAttribute()] public virtual int Update(SerwisSamochodowyDataSet.PojazdyDataTable datatable) return this.adapter.update(datatable); Listing 5 Metoda Update relacji Pojazdy przed zmianą [System.Diagnostics.DebuggerNonUserCodeAttribute()] public virtual int Update(SerwisSamochodowyDataSet.PojazdyDataTable datatable) int result = 0; try result = this.adapter.update(datatable); catch (Exception) MessageBox.Show("Podany rekord juz istnieje"); return result; Listing 6 Metoda Update relacji Pojazdy po zmianie Strona 8/11

[System.Diagnostics.DebuggerNonUserCodeAttribute()] public virtual int Update(SerwisSamochodowyDataSet.MechanicyDataTable datatable) return this.adapter.update(datatable); Listing 7 Metoda Update relacji Mechanicy przed zmianą [System.Diagnostics.DebuggerNonUserCodeAttribute()] public virtual int Update(SerwisSamochodowyDataSet.MechanicyDataTable datatable) int result = 0; try result = this.adapter.update(datatable); catch (Exception) MessageBox.Show("Podany rekord juz istnieje"); return result; Listing 8 Metoda Update relacji Mechanicy po zmianie Ostatnim krokiem tworzenia aplikacji jest utworzenie formy dodawania napraw do bazy danych łączących poszczególne pojazdy z konkretnymi mechanikami. Przykładowa forma dodawania napraw wygląda następująco (Rysunek 7). Rysunek 7 Przykładowa forma dodawania naprawy do bazy danych Wykorzystać moŝemy komponenty ComboBox, które umoŝliwią nam wybór konkretnego pojazdu i mechanika oraz MonthCallendar do określenia daty naprawy. Dodatkowo wykorzystany zostanie komponent TextBox do podania statusu naprawy. Strona 9/11

Dla komponentów ComboBox definiujemy źródło danych poprzez wskazanie odpowiedniej tabeli w atrybucie DataSource konkretnego komponentu. Określamy równieŝ parametry DisplayMember (podajemy atrybut powiązanej relacji, który widoczny będzie na liście po rozwinięciu komponentu ComboBox) oraz ValueMember (atrybut powiązanej relacji, którego wartości zwracane będą przez komponent ComboBox po wybraniu przez uŝytkownika odpowiedniej wartości z listy). MoŜemy przystąpić do zdefiniowania metod obsługi dodawania nowej naprawy do bazy danych. Przykładowy kod realizujący powyŝsze zadanie (Listing 9). using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using SerwisSamochodowy.SerwisSamochodowyDataSetTableAdapters; namespace SerwisSamochodowy public partial class DodajNaprawe : Form private SerwisSamochodowyDataSet serwissamochodowydataset; private NaprawyTableAdapter naprawytableadapter; public DodajNaprawe(SerwisSamochodowyDataSet dataset, NaprawyTableAdapter tableadapter) this.serwissamochodowydataset = dataset; this.naprawytableadapter = tableadapter; InitializeComponent(); private void DodajNaprawe_Load(object sender, EventArgs e) // Pobranie danych do tabeli Pojazdy obiektu DataSet z bazy danych this.pojazdytableadapter.fill(this.serwissamochodowydataset1.pojazdy); // Pobranie danych do tabeli Mechanicy obiektu DataSet z bazy danych this.mechanicytableadapter.fill(this.serwissamochodowydataset1.mechanicy); private void button1_click(object sender, EventArgs e) if (!String.IsNullOrEmpty(this.textBox1.Text)) * Utworzenie obiektu reprezentującego pojedynczą krotkę w bazie danych SerwisSamochodowyDataSet.NaprawyRow naprawa = this.serwissamochodowydataset.naprawy.newnaprawyrow(); * Wypełnienie obiektu danymi z formatki naprawa.id_pojazdu = (int)this.combobox1.selectedvalue; naprawa.id_mechanika = (int)this.combobox2.selectedvalue; naprawa.data = this.monthcalendar1.selectionstart; naprawa.status = this.textbox1.text; * Aktualizacja obiektu DataSet this.serwissamochodowydataset.naprawy.rows.add(naprawa); * Aktualizacja zmian z bazie danych z wykorzystaniem obiektu DataAdapter if (this.naprawytableadapter.update( (SerwisSamochodowyDataSet.NaprawyDataTable) Strona 10/11

this.serwissamochodowydataset.naprawy.getchanges()) > 0) this.close(); else MessageBox.Show("Wypełnij pole: Status"); Listing 9 Przykładowy kod realizujący dodawanie nowej naprawy do bazy danych Gotową aplikację moŝemy uruchomić. 3. Zadanie Dodanie moŝliwości ewidencjonowania czasu pracy mechaników oraz zajmowanych przez nich stanowisk pracy: NaleŜy dodać do relacji NAPRAWY pole: czas_naprawy datetime oraz stworzyć relację ETATY: #id_etatu int nazwa varchar(100) nastepnie dodać do relacji MECHANICY pole: id_etatu int będące kluczem obcym do relacji Etaty. Po powyŝszej modyfikacji istniejącej bazy danych naleŝy stworzyć Formatkę Dodawania Nowego Etatu. NaleŜy wzorować się na formatkach juŝ istniejących. Ponadto naleŝy zmodyfikować Formatkę Dodawania Nowego Mechanika o moŝliwość przypisania mu etatu na jakim będzie pracował. Najlepiej aby był to etat wybierany z ComboBox. Strona 11/11