5. Tworzenie prostego kalkulatora

Podobne dokumenty
4. Proste przekazywanie stanu

Dodaj do kontrolki MultiView dwie kontrolki View, nazywając je po kolei: ankietaglowna i podsumowanie.

Kadry Optivum, Płace Optivum

Aplikacje internetowe i rozproszone - laboratorium

Ćwiczenie 8. Kontrolki serwerowe

1. Przypisy, indeks i spisy.

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Informatyka II. Laboratorium Aplikacja okienkowa

Instrukcja redaktora strony

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

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

Instrukcja użytkownika systemu medycznego

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Sekretariat Optivum. Jak przygotować listę uczniów zawierającą tylko wybrane dane, np. adresy ucznia i jego opiekunów? Projektowanie listy

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

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

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel.

Dodanie nowej formy do projektu polega na:

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

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Laboratorium 050. Crystal Reports. Ćwiczenie 1. Otwarte pozycje

Programowanie obiektowe

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

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

Zadanie 3. Praca z tabelami

System Obsługi Zleceń

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Zastanawiałeś się może, dlaczego Twój współpracownik,

Formularze w programie Word

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

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

Lp. Nazwisko Wpłata (Euro)

Temat: Organizacja skoroszytów i arkuszy

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Instrukcja użytkownika systemu medycznego

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

Podstawy JavaScript ćwiczenia

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

prosta baza danych (nawet trochę bardziej niż prosta) tworzenie dokumentów (zwłaszcza z dużą ilością tabel lub o tabularycznej

Instrukcja użytkownika systemu medycznego

Zaawansowane aplikacje internetowe - laboratorium

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

Zadanie 1. Stosowanie stylów

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

WOJEWÓDZTWO PODKARPACKIE

Laboratorium 8 ( Android -pierwsza aplikacja)

1.Formatowanie tekstu z użyciem stylów

najlepszych trików Excelu

Podstawy pracy z edytorem tekstu. na przykładzie Open Office

Przewodnik dla klienta

5.4. Efekty specjalne

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

5.4. Tworzymy formularze

Zadanie 9. Projektowanie stron dokumentu

Co to jest arkusz kalkulacyjny?

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

Jak dopasować pola szablonu świadectwa, aby na stronie z wynikami klasyfikacji rocznej poprawnie drukowały się długie nazwy przedmiotów?

za pomocą: definiujemy:

Korespondencja seryjna

Nawigacja po długim dokumencie może być męcząca, dlatego warto poznać następujące skróty klawiszowe

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

BAZY DANYCH Panel sterujący

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1 Raporty - wstęp. 1. Wstążka. 2. Podgląd listy raportów wraz z menu kontekstowym:

UONET+ moduł Dziennik

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Zadanie 11. Przygotowanie publikacji do wydrukowania

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

Przeglądanie, drukowanie i eksportowanie raportów.

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Instrukcja konfiguracji urządzenia TL-WA830RE v.1

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

4.Arkusz kalkulacyjny Calc

Sigma moduł Arkusz. Wprowadzanie do arkusza planów nauczania oddziałów

Zadanie 8. Dołączanie obiektów

Tworzenie szablonów użytkownika

Aplikacja npodpis do obsługi certyfikatu

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

Aplikacje WWW. Laboratorium z przedmiotu Aplikacje WWW - zestaw 01

programu Neofon instrukcja obsługi Spis treści

e-podręcznik dla seniora... i nie tylko.

Outlook Express - konfigurowanie i korzystanie.

Baza danych. Program: Access 2007

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Damian Daszkiewicz Tworzenie strony-wizytówki dla firmy XYZ

BAZY DANYCH Formularze i raporty

OPERACJE NA PLIKACH I FOLDERACH

Zagadnienia: Program ten umożliwi Tobie między innymi: tworzenie arkuszy kalkulacyjnych wyszukiwanie i analizę danych tworzenie wykresów (diagramów)

Modelowanie obiektowe - Ćw. 1.

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

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

Transkrypt:

5. Tworzenie prostego kalkulatora 5.1. Cel przedsięwzięcia i zasada działania Nadeszła już pora, żeby stworzyć konkretną aplikację w ASP.NET. Będzie to kalkulator, pozwalający wykonywać cztery podstawowe działania arytmetyczne na dwóch liczbach. Rysunek 4. Planowany wygląd aplikacji Jego zasada działania będzie następująca: Użytkownik ma wpisać dwie liczby w pola tekstowe, wybrać operację oraz nacisnąć przycisk Wynik, w celu wykonania działania i obliczenia wyniku. Po kliknięciu w jeden z operatorów, w lewej dolnej etykiecie ma się pojawić tekst opisujący wybraną operację (np. dla + napis [suma] itp.). Po naciśnięciu przycisku Wynik mają zostać odczytane napisy z obu pól tekstowych i zamienione na liczby typu double (zmiennoprzecinkowe). Ma na nich zostać wykonana żądana operacja, zaś wynik należy sformatować do postaci 5 + 3 = 8. Wpisanie błędnych wartości ma spowodować wyświetlenie ostrzeżenia dla użytkownika. 5.2. Budowa interfejsu użytkownika W celu stworzenia żądanej strony, wykonaj poniższe czynności: 1. Załóż na dysku twardym własny katalog na pliki do tego zadania. 2. Otwórz program WebMatrix. 1

3. Stwórz nową stronę ASP.NET Page, upewnij się czy w polu Language jest wybrana opcja C#, a następnie zapisz stronę w swoim katalogu, w pliku o nazwie Kalkulator.aspx. 4. Wstaw do tej strony nagłówek: Kalkulator. 5. Wstaw do tej strony tabelę, poleceniem HTML Insert Table. 6. Podaj następujące dane: Rows: 3 (liczba wierszy), Width: 400 (szerokość), Columns: 4 (liczba kolumn), Height: 200 (wysokość). 7. Kliknij we wstawioną tabelę (w jedną z jej ramek), aby zaznaczył się znacznik <TABLE>. Ustaw jej właściwość border na 1. W celu wskazania znacznika <TABLE> możesz również kliknąć we wnętrze dowolnej komórki tabeli i skorzystać z listy znaczników w oknie właściwości, zatytułowanej Click to see parent HTML elements. 8. Następnie, korzystając z menu kontekstowego, połącz komórki w drugim oraz trzecim wierszu (polecenia Merge cell left oraz Merge cell right). Możesz również przełączyć się na zakładkę HTML i samodzielnie usunąć zbędne znaczniki <td></td>, w zamian wpisując w odpowiednich znacznikach <td> parametr colspan (o ile pamiętasz jeszcze te elementy języka HTML). 9. W komórki tabeli wstaw kontrolki Web Controls, nazywając każdą z nich (zmieniając im właściwość (ID)) następująco: Label LabLiczba1, TextBox TxtLiczba1, RadioButtonList RblOperacja, Label LabLiczba2, TextBox TxtLiczba2, Button BtnWynik, Label LabOperacja, Label LabWynik. 10. Ustaw właściwość align wybranych komórek na Center, aby zmienić wygląd tabeli. 11. Dla kontrolki RblOperacja zmodyfikuj listę elementów (właściwość Items), dodając przyciskiem Add elementy i ustaw ich właściwości Text oraz na: + [suma] [różnica] * [iloczyn] / [iloraz] 12. Ustaw pozostałe właściwości kontrolek, zgodnie z poniższą tabelą: Kontrolka Nazwa kontrolki (ID) Nazwa właściwości Wartość właściwości 2

Label LabLiczba1 Text Liczba 1: TextBox TxtLiczba1 MaxLength 20 RadioButtonLis RblOperacja AutoPostBack True t ListItem[0] Text + [suma] ListItem[1] Text - [różnica] ListItem[2] Text * [iloczyn] ListItem[3] Text / [iloraz] Label LabLiczba2 Text Liczba 2: TextBox TxtLiczba2 MaxLength 20 Button BtnWynik Text Wynik Label LabOperacja Text [...] Font.Bold True Label LabWynik Text (...) Font.Bold True 15. Zapisz dokonane zmiany i sprawdź, czy strona poprawnie wygląda w przeglądarce. W tym celu naciśnij mały przycisk Play na pasku narzędzi środowiska WebMatrix i zatwierdź uruchomienie serwera ASP.NET. 5.3. Reakcja na zmianę wybranej operacji Jak być może dało się zauważyć, włączenie właściwości AutoPostBack kontrolki RblOperacja dało ciekawy efekt: po każdej zmianie operacji strona jest automatycznie wysyłana na serwer, który odsyła nową wersję tej strony. Jest to zachowanie pożądane, na które jeszcze trzeba zareagować. Zgodnie z założeniem, powinien się wtedy zmieniać napis w lewej dolnej etykiecie. W tym celu wykonaj następujące czynności: Dla wstawionej kontrolki RblOperacja odszukaj na zakładce ze zdarzeniami zdarzenie o nazwie SelectedIndexChanged (zmieniono numer wybranej opcji). Kliknij w to zdarzenie dwa razy, aby dodać procedurę jego obsługi. Napisz obsługę zdarzenia zgodnie z punktem pomysłu działania. Zapisz dokonane zmiany i sprawdź, czy strona poprawnie działa. Zastanów się nad punktem 15. Jak napisać obsługę zdarzenia? Najpierw należy skorzystać z przeglądarki klas. Jest ona dostępna po przełączeniu listy właściwości na listę dokumentacji (zakładka Classes). W polu Enter Name to Search wpisz RadioButtonList i naciśnij Enter. Szukany symbol pojawi się jako jedyny na liście. Dwukrotne kliknięcie w niego wyświetli okno z opisem. Należy teraz otworzyć podlistę Properties i zaznaczyć opcję Show Non-Public Members. 3

Kontrolka RadioButtonList ma to do siebie, że gdy użytkownik zmieni wybraną opcję, pojawia się zdarzenie SelectedIndexChanged. Jeśli dodana jest procedura obsługi tego zdarzenia, można wykonać w odpowiedzi jakąś akcję. Przeglądając listę właściwości kontrolki RadioButtonList można trafić na następujące właściwości o nazwach rozpoczynających się od Selected: SelectedIndex (numer wybranej opcji liczony od zera), SelectedItem (wybrany element z listy Items kontrolki) oraz Selected (właściwość wybranego elementu). Rysunek 5. Opis właściwości SelectedItem kontrolki RadioButtonList Skoncentrujmy się na właściwości SelectedItem. Kontrolka RadioButtonList zapamiętuje w tej właściwości aktualnie zaznaczony element. Jak można zauważyć w opisie właściwości, element ten jest typu ListItem. Kliknięcie w nazwę tego typu także wyświetla jego opis. Otwierając jego podlistę Properties można znaleźć m.in. właściwości Selected, Text i takie same jak w oknie, w którym były dodawane do listy elementów Items kontrolki RadioButtonList (w punkcie 11). Text jest napisem wyświetlanym w oknie przeglądarki (jeden z operatorów), zaś jest opisem wybranej operacji. 4

Wniosek jest następujący: wyrażenie RblOperacja.SelectedItem. będzie opisem, który został ustawiony w liście elementów (np. [dodawanie] lub [mnożenie]). Żeby zmienić tekst wyświetlany w lewej dolnej etykiecie, wystarczy przypisać nową wartość właściwości Text kontrolki LabOperacja. Tak więc cała obsługa zdarzenia sprowadzi się do jednej linijki: Przykład 5. Obsługa zdarzenia SelectedIndexChanged dla listy operacji void RblOperacja_SelectedIndexChanged(object sender, EventArgs e) { LabOperacja.Text = RblOperacja.SelectedItem.; } Warto jeszcze zauważyć, że wyrażenie RblOperacja.SelectedItem. jest równoważne z RblOperacja.Selected. Właściwość taka jest dostępna od wersji 1.1 platformy.net. 5.4. Obliczanie wyniku Aby tworzony kalkulator w końcu coś policzył, trzeba teraz dodać obsługę przycisku Wynik. W tym celu wykonaj następujące czynności: 16. Dla przycisku BtnWynik odszukaj na zakładce ze zdarzeniami zdarzenie o nazwie Click (przycisk wciśnięty). Kliknij w to zdarzenie dwa razy, aby dodać procedurę jego obsługi. 17. Napisz obsługę zdarzenia zgodnie z punktem pomysłu działania. 18. Zapisz dokonane zmiany i sprawdź, czy strona poprawnie działa. Zastanów się nad punktem 18. Oto fakty: Skoro kontrolka RblOperacja posiada właściwość SelectedIndex, to można sprawdzić jej wartość gdy nie jest zaznaczona żadna opcja wynosi ona 1. Tylko wtedy, gdy wartość SelectedIndex jest większa lub równa zero warto prowadzić obliczenia, ponieważ wiadomo, jaki operator jest wybrany. Oba pola tekstowe kontrolki TxtLiczba1 i TxtLiczba2 mają właściwość Text. Jest to napis aktualnie wpisany w takie pole. W obsłudze zdarzenia możesz zadeklarować lokalne zmienne typu double do przechowywania wartości liczbowych odczytanych z kontrolek tekstowych oraz wyniku. Do konwersji napisów na liczby możesz skorzystać z klasy Convert, która zawiera m.in. metodę ToDouble(). 5

Do rozpoznania wybranego operatora możesz użyć instrukcji switch, jako parametr podając napis z wybranego elementu kontrolki RblOperacja właściwość SelectedItem.Text. Dla każdego typu operatora (przypadku case) można już obliczyć wartość wyniku. Można następnie (po skończeniu instrukcji switch) sformatować odpowiednio uzyskany wynik tak, aby wyświetlone zostały obie wartości połączone operatorem, znak równości oraz sam wynik (np. 5 + 3 = 8). Każdy składnik powinien być oddzielony od swoich sąsiadów przynajmniej jedną spacją. Uzyskany napis można wstawić do etykiety LabWynik, ustawiając jej właściwość Text. 5.5. Kontrolki sprawdzające poprawność danych Mimo sporej funkcjonalności kalkulatora jest on nadal narażony na błędy, spowodowane wprowadzeniem niepoprawnych danych wejściowych. Wystarczy nie wpisać jednej z liczb lub podać w jej miejsce napis (np. jakieś imię), aby pojawiły się problemy. Aby zabezpieczyć stronę przed takimi oczywistymi błędami można skorzystać z gotowego rozwiązania ASP.NET, a mianowicie kontrolek sprawdzających automatycznie poprawność danych (ang. validators). W tym celu wykonaj następujące czynności: Kliknij w kontrolkę TxtLiczba1, a następnie naciśnij na klawiaturze strzałkę w prawo. Kursor zostanie postawiony za polem tekstowym. Wstaw złamanie linii, wciskając kombinację klawiszy Shift + Enter (efektem będzie znacznik <br>). Dodaj w tym miejscu kontrolkę RequiredFieldValidator i zmień jej nazwę (właściwość (ID)) na ReqLiczba1. Wybierz kontrolkę, która ma być sprawdzana, wskazując we właściwości ControlToValidate kontrolkę TxtLiczba1. Wstaw również kontrolkę RequiredFieldValidator za drugim polem tekstowym, nazywając ją ReqLiczba2 i wskazując do sprawdzania kontrolkę TxtLiczba2. Domyślnie kontrolki RequiredFieldValidator zawsze zajmują miejsce na stronie, nawet gdy ich nie widać. Jeśli chcesz, żeby kontrolki pojawiały się tylko w przypadku błędnych danych, ustaw ich właściwość na. Podsumowanie właściwości wstawionych kontrolek: Kontrolka Nazwa kontrolki (ID) Nazwa właściwości Wartość właściwości RequiredFieldValidator ReqLiczba1 ControlToValidate TxtLiczba1 wpisz liczbę! RequiredFieldValidator ReqLiczba2 ControlToValidate TxtLiczba2 6

wpisz liczbę! Sprawdź działanie strony uruchom ją i wciśnij przycisk Wynik, np. wpisując tylko jedną liczbę albo bez podania żadnej liczby. Strona jednak jeszcze nie jest zabezpieczona przed wpisaniem nieprawidłowych liczb. Dodaj więc za poprzednimi kontrolkami dodatkowe kontrolki RangeValidator. Pozwalają one na sprawdzenie, czy wpisana wartość odpowiada żądanemu typowi danych oraz czy mieści się ona we wskazanym zakresie. Podstawowe nowe właściwości wstawionych kontrolek to Type, Minimum oraz Maxium. Proponowane wartości właściwości znajdują się w poniższej tabeli: Kontrolka Nazwa kontrolki (ID) Nazwa właściwości Wartość właściwości RangeValidator RngLiczba1 ControlToValidate TxtLiczba1 błędna liczba! Type Double Minimum -99999999 Maximum 99999999 RangeValidator RngLiczba2 ControlToValidate TxtLiczba2 błędna liczba! Type Double Minimum -99999999 Maximum 99999999 Zapisz stronę i sprawdź, czy poprawnie działa. Ostatnim ulepszeniem jest to, że po otrzymaniu wyniku i zmianie operatora (w liście RblOperacja) w prawej etykiecie LabWynik wyświetlany jest wynik ostatniej operacji. Jest to niekonsekwencja. Dodaj więc na końcu obsługi zdarzenia SelectedIndexChanged jedną instrukcję, która będzie przywracać w prawej etykiecie domyślny napis (...). 7