Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja. Paweł Paduch paduch@tu.kielce.pl

Wielkość: px
Rozpocząć pokaz od strony:

Download "Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja. Paweł Paduch paduch@tu.kielce.pl"

Transkrypt

1 Inżynieria Programowania Laboratorium 6 Pierwsza finalna wersja Paweł Paduch paduch@tu.kielce.pl

2 Rozdział 1 Wstęp Dzisiejsze zajęcia będą kontynuacją implementowania interfejsu. Skupimy się także na testowaniu aplikacji pod kontem ergonomii i niezawodności. W ocenie interfejsu może pomóc lista kontrolna Ravdena Johnsona (do znalezienia w Internecie). Jest to opracowany w 1989 r. zbiór pytań i punktów kontrolnych dotyczących projektu informatycznego. Między innymi sprawdzana jest spójność interfejsu, komunikaty do użytkownika, klarowność łatwość obsługi itd. Listę tę, należy sobie przeczytać i stosować także w swoich przyszłych projektach. 1

3 Rozdział 2 Okno edycji użytkowników Na ostatnich zajęciach poradziliśmy sobie ze zunifikowaniem nazewnictwa w bazie danych a co za tym idzie także w naszej bibliotece RezerwacjeLib. Poznaliśmy podstawowe elementy programowania aplikacji WPF takie jak kontrolki, zdarzenia czy tworzenie nowych okien. Na koniec został pokazany przykład podpięcia danych słownikowych jako kontrolki typu ComboBox w tabelce Zasoby. Pierwszym zadaniem będzie stworzenie okna zarządzającego osobami. Będzie to tabelka ze wszystkimi potrzebnymi danymi takimi jak imię, nazwisko, uprawnienie, tytuł, mail, hasło czy daty dodania i modyfikacji. Do tej pory w większości okien nie przywiązywaliśmy uwagi do zachowania się kontrolek podczas skalowania okna. Tym razem postaramy się prawidłowo i w miarę estetycznie rozmieścić elementy i skonfigurować ich zachowanie podczas zmiany rozmiaru okna. 2.1 Konfiguracja wyglądu Zadanie zaczynamy oczywiście od dodania nowego okna z menu projektu wybieramy Add Window. Nazywamy go WinOsoby. Po utworzeniu zmieniamy jego tytuł na Osoby. Dodajemy tabelkę i przyciski. Oprogramowujemy pozycję Osoby w menu głównego okna tak by otworzyło nam się okienko z wypełnioną tabelką. Jak zwykle pamiętamy o ustawieniu odpowiedniej przestrzeni nazw w pliku *.cs. Można uruchomić i sprawdzić czy dane dociągnęły się jak należy. Wygląd okna powinien przypominać ten na rysunku 2.1. Rysunek 2.1: Okienko edycji osób. Proszę zwrócić uwagę na kolejność kolumn, poprawione nagłówki i format daty. Dodatkowo wszystkie kolumny gdzie występował klucz obcy zastąpione 2

4 zostały odpowiednimi polami combobox zawierającymi słowniki. Jak stworzyć słowniki można sobie przypomnieć z ostatniej instrukcji laboratoryjnej. Po utworzeniu domyślnej tabeli, daty dodania i modyfikacji osadzone zostaną w bardzo funkcjonalnej kontrolce pozwalającej wprowadzać datę z kalendarza. Jednak nasze daty, zarówno dodania jak i edycji aktualizują się same. Powinniśmy więc ustawić je tylko do odczytu. Zamieniamy je na pole typu DataGridTextColumn tak jak na listingu 2.1 Listing 2.1: Kolumny z datą tylko do odczytu <DataGridTextColumn x:name="datadodaniacolumn" Header="Data dodania" Binding="Binding DataDodania, StringFormat=\0:dd.MM.yyyy HH:mm:ss\" Width="Auto" MinWidth="110" IsReadOnly="True"/> <DataGridTextColumn x:name="datamodyfikacjicolumn" Header="Data modyfikacji" Binding="Binding DataModyfikacji, StringFormat=\0:dd.MM.yyyy HH:mm:ss\" Width="Auto" MinWidth="110" IsReadOnly="True"/> We właściwościach widzimy, że są to pola tylko do odczytu. Widać też, że zastosowano ciąg formatujący datę (niestety ten domyślny nam nie odpowiada. Z ciekawości można usunąć parametr StringFormat w jednej z kolumn i zobaczyć efekt działania. 2.2 Rozmieszczenie elementów Okno w WPF może posiadać tylko jeden element. Nie można wstawiać bezpośrednio pod tagiem Window elementy typu guziki, etykietki i inne. Tym jedynym elementem jest panel. Jest to element układający inne elementy wewnątrz siebie. W WPF mamy do dyspozycji kilka takich paneli. Canvas - klasyczne rozmieszczenie elementów, tam gdzie je ustawimy tam pozostaną DockPanel - przyczepa element do określonej krawędzi (góra, dół, prawa, lewa) StackPanel - Elementy układane są jeden na drugim, lub jeden za drugim WrapPanel - Podobnie jak StackPanel ale powoduje zawijanie wiersza elementów. W podobny sposób zorganizowane jest menu. Grid - siatka składająca się często z wielu komórek, w każdej komórce można rozmieszczać elementy. Jest to domyślny panel w kodzie wygenerowanym automatycznie. Nasz Grid będzie zawierał dwa wiersze oraz jedną kolumnę. W pierwszym wierszu umieścimy tabelkę w drugim guziki. W listingu 2.2 widzimy prosty grid o podanej wysokości wierszy. 3

5 <Grid.RowDefinitions> <RowDefinition Height="260*" /> <RowDefinition Height="40" /> </Grid.RowDefinitions> Listing 2.2: Definicja panelu siatki. Gwiazdka przy wartości 260* świadczy o tym, że wiersz ten może zmieniać rozmiar. Gdy wstawimy weń tabelę też będzie trzeba określić jej sposób wyrównywania w pionie i poziomie ( VerticalAlignment= Stretch HorizontalAlignment= Stretch ). Przy drugim wierszu gdzie będą guziki nie chcemy by były one zakrywane albo rozciągane przy zmianie rozmiaru okna dlatego stosujemy stałą wysokość wiersza. Ponadto chcemy, by zarówno tabelka jak i guziki nie przylegały do krawędzi okna. Do określenia marginesu jaki należy zachować dookoła danego elementu służy atrybut Margin Określenie do jakiej komórki należy dana kontrolka dokonamy za pomocą tzw. właściwości dołączanych jak widzimy to w listingu 2.3. Listing 2.3: Przykład przycisków w gridzie. <Button Content="Zapisz" Grid.Row="1" Height="25" HorizontalAlignment="Left" Margin="10,0,10,10" Name="buttonZapisz" VerticalAlignment="Top" Width="75" Click="buttonZapisz_Click" /> <Button Content="Wyjdź" Grid.Row="1" Height="25" HorizontalAlignment="Right" Margin="10,0,10,10" Name="buttonWyjdz" VerticalAlignment="Top" Width="75" Click="buttonWyjdz_Click" /> Widzimy tu też przykład przyklejenia jednego przycisku do lewej krawędzi drugiego do prawej. Przy zmianie szerokości okna przyciski te będą albo się od siebie oddalać albo przybliżać. Wyrównywanie kolumn. Praktycznie wszystkie kolumny powinny mieć szerokość ustawioną na Auto. Wtedy szerokość będzie brana taka by zmieścił się najszerszy element. Kolumny z datą można ustawić na stałe 110, natomiast szerokość kolumny Opis ustawiamy na *. Wtedy kolumna ta będzie rozszerzalna wraz z rozszerzaniem się tabelki. Po ustawieniu odpowiednich właściwości przetestować działanie w programie. Jedyną rzeczą, której tu nie zrobimy a mogłaby się przydać to maskowanie haseł. Ze względów bezpieczeństwa, nawet admin nie powinien znać haseł użytkowników. Powinniśmy zastosować typ pola PasswordBox. Jednak związanie z danymi z bazy jest trochę bardziej skomplikowane i pominiemy ten problem. Zwłaszcza, że hasła i tak są w bazie trzymane jawnie. Docelowo nasz system będzie oparty o autentykację Active Directory i wtedy problem zmiany haseł będzie leżał po stronie domeny. 4

6 Rozdział 3 Przegląd rezerwacji Teraz zajmiemy się najtrudniejszą (jak do tej pory) częścią naszego programu, przeglądem i łatwym wyszukiwaniem rezerwacji. Do tego celu posłużą nam 3 tabelki typu datagrid umieszczone na głównym oknie. Wygląd będzie mniej więcej taki jak na rysunku 3.1. W tabelce osób zaznaczamy użytkowników, których rezerwacje chcemy przeglądać, w tabelce zasoby zaznaczamy interesujące nas sale, sprzęty czy grupy. Ctrl+A oczywiście zaznacza wszystko w danej tabelce. Przy zaznaczonych wszystkich elementach w obu tabelkach mamy wgląd we wszystkie rezerwacje. Rysunek 3.1: Projekt głównego okna. 5

7 3.1 Rozmieszczenie i zawartość tabelek Aby zapewnić odpowiednie wyrównywanie i skalowanie, tabelki umieścimy w siatce (grid). Siatka będzie składać się z dwóch kolumn oraz 4 wierszy. Definicje kolumn i wierszy umieszczamy bezpośrednio pod tagiem Grid, listing 3.1 W zerowym wierszu umieścimy menu. W kolejnych dwóch będą umieszczone tabelki rezerwacji, osób i zasobów. W ostatniej umieścimy zagnieżdżoną siatkę, w której będą elementy potrzebne do dodawania rezerwacji. Listing 3.1: Definicja grida dla głównego okna. <Grid.ColumnDefinitions> <ColumnDefinition Width="320*" /> <ColumnDefinition Width="180*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="22" /> <RowDefinition Height="125*" /> <RowDefinition Height="125*" /> <RowDefinition Height="50" /> </Grid.RowDefinitions> Gwiazdki przy rozmiarach oznaczają, że dany rozmiar może się zmieniać, jednak będzie się to odbywać proporcjonalnie. W pierwszym wierszu o stałej wysokości 22 umieścimy pasek z menu. Robimy to za pomocą właściwości dołączanej (informującej element rodzicielski o parametrach dla elementu potomnego). Grid.Row - oznacza w którym wierszu umieszczamy menu, Grid.ColumnSpan określa na ile kolumn rozciągnąć pasek. Określamy też rozciągliwość paska na całą szerokość obu kolumn grida oraz wyrównywanie do samej góry. Tak jak na listingu 3.2 Listing 3.2: Umieszczenie paska menu w siatce. <Menu Height="22" Grid.Row="0" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Top" Name="menuGlowne"> Kolejnym elementem będzie tabelka rezerwacji. Umieścimy ją w gridzie w kolumnie 1 oraz wierszach 1-2. Skonfigurujemy od razu jakie informacje chcemy w niej zawrzeć. Będą to kolumny: Id - identyfikator, docelowo zniknie ale dla testów i celów edukacyjnych narazie zostawimy. Imię osoby, której dotyczy rezerwacja Nazwisko osoby której dotyczy rezerwacja Nazwa zasobu Czas początku rezerwacji Czas końca rezerwacji Stan rezerwacji oraz Typ rezerwacji 6

8 W tabelce ustawimy odstęp od każdej sąsiadującej krawędzi na 5. Tabelka powinna też rozciągać się wraz ze zmianą wysokości jak i szerokości okna. Definicja rozmieszczenia tabelki oraz jej kolumn zawarto w listingu 3.3. Listing 3.3: Rozmieszczenie tabelki rezerwacji oraz jej kolumny. <DataGrid AutoGenerateColumns="False" Margin="5,5,5,5" Grid.Row="1" Grid.RowSpan="2" ItemsSource="Binding" Name="rezerwacjeDataGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <DataGrid.Columns> <DataGridTextColumn Header="Id" Binding="Binding IdRezerwacji" Width="30" MinWidth="30" /> <DataGridTextColumn Header="Imię" Binding="Binding Imie" Width="*" MinWidth="50"/> <DataGridTextColumn Header="Nazwisko" Binding="Binding Nazwisko" Width="*" MinWidth="50"/> <DataGridTextColumn Header="Zasób" Binding="Binding Nazwa" Width="*" MinWidth="60"/> <DataGridTextColumn Header="Początek" Width="Auto" MinWidth="115" Binding="Binding Od, StringFormat=\0:dd.MM.yyyy HH:mm:ss\"/> <DataGridTextColumn Header="Koniec" Width="Auto" MinWidth="115" Binding="Binding Do, StringFormat=\0:dd.MM.yyyy HH:mm:ss\"/> <DataGridTextColumn Header="Stan" Binding="Binding Stan" Width="Auto" MinWidth="55"/> <DataGridTextColumn Header="Typ" Binding="Binding Typ" Width="Auto" MinWidth="55"/> </DataGrid.Columns> </DataGrid> Wierszu 1 i kolumnie 1 siatki umieścimy prostą tabelkę osób z danymi tytuł, imię i nazwisko. Tabelkę przeciągamy z bocznego paska Data Sources i konfigurujemy tak jak pokazano na listingu 3.4. Listing 3.4: Rozmieszczenie tabelki osób oraz jej kolumny. <DataGrid AutoGenerateColumns="False" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="Binding Source=StaticResource osobyviewsource" Margin="5,5,5,5" Name="osobyDataGrid" SelectionChanged="osobyDataGrid_SelectionChanged"> <DataGrid.Columns> <DataGridTextColumn x:name="tytulcolumn" Binding="Binding Path=Tytuly.Tytul" Header="Tytuł" Width="Auto" /> <DataGridTextColumn x:name="imiecolumn" Binding="Binding Path=Imie" Header="Imię" Width="Auto" /> <DataGridTextColumn x:name="nazwiskocolumn" Binding="Binding Path=Nazwisko" Header="Nazwisko" Width="*" /> </DataGrid.Columns> </DataGrid> 3.2 Kod obsługujący Gdy już mamy zdefiniowane tabelki (na razie dwie, trzecia będzie do zrobienia samodzielnego) należy wypełnić je danymi. Najłatwiej będzie z tabelką osób. Należy to zrobić analogicznie jak w przypadku innych prostych tabelek. W funkcji wywoływanej podczas ładowania głównego okna (Window Loaded) należy dodać linię: osobyviewsource.source = zalogowany.znajdzosobyponazwisku( * ).ToList(); Tabela rezerwacji ma nieco więcej danych. Dodatkowo dane te pochodzą z tabel w relacji wiele-do-wielu. Gdy tabelki połączeniowe np. RezerwacjeZasoby 7

9 lub RezerwacjeOsoby posiadały tylko klucze obce generator modelu Entity Framework stworzyłby relację *-*. O ile z rezerwacjami można by się pokusić o takie rozwiązanie o tyle połączenie z osobami jest nieco bardziej skomplikowane ze względu na pole Zgoda. Tak czy inaczej stworzymy sobie nowy typ danych klasę będącą reprezentacją pojedynczego wiersza rezerwacji. Wiersza, w którym będzie zawarty jeden zasób i jedna osoba. Nową klasę jak na listingu 3.5 umieszczamy w pliku Rezerwacje.cs w bibliotece RezerwacjeLib. Listing 3.5: Nowa klasa RezerwacjoZasoboOsoby. public class RezerwacjoZasoboOsoby public Rezerwacje rez get;set; public Zasoby zas get; set; public Osoby os get; set; Kolejnym elementem jest implementacja funkcji szukającej rezerwacje związane z danymi osobami i zasobami. Podając listy odpowiednich identyfikatorów powinniśmy dostać zbiór rezerwacji. Zrealizujemy tą funkcjonalność w listingu 3.6 w pliku Rezerwacje.cs w bibliotece RezerwacjeLib. Listing 3.6: Funkcja szukająca rezerwacje. public IQueryable<RezerwacjoZasoboOsoby> znajdzrezerwacje(list<long> idkiludzikow, List<long> idkizasobow) IQueryable<RezerwacjoZasoboOsoby> rezos = (from rz in context.rezerwacje from zas in context.rezerwacjezasoby from os in context.rezerwacjeosoby from osobydowyszukania in idkiludzikow from zasobydowyszukania in idkizasobow where rz.idrezerwacji == zas.idrezerwacji //zlaczenie tabeli rezerwacji z tabela zawierajaca identyfikatory zasobow && os.idrezerwacji == rz.idrezerwacji //i czy dane osoby tez nie sa zajete w tym czasie && os.idosoby == osobydowyszukania //uwzględniamy tylko podane id && zas.idzasobu == zasobydowyszukania //uwzględniamy tylko podane id select new RezerwacjoZasoboOsoby rez=rz, os=os.osoby, zas=zas. Zasoby ).AsQueryable(); return rezos; Teraz należy stworzyć funkcję wypełniającą tabelkę rezerwacji (listing 3.7. Oczywiście funkcja ta będzie w pliku MainWindow.xaml.cs. Listing 3.7: Funkcja wypelnijtabelkerezerwacji. private void wypelnijtabelkerezerwacji() try Zasoby zasoby = new Zasoby(); List<long> idkiosob = new List<long>(); idkiosob = (from os in osobydatagrid.selecteditems.oftype<osoby>() select os. IdOsoby).ToList(); //Chwilowo weźmiemy pod uwagę wszystkie zasoby List<long> idkizasobow = (from zas in zasoby.getall() select zas.idzasobu).tolist (); 8

10 //znajdź rezerwacje List<RezerwacjoZasoboOsoby> rez = rezerwacje.znajdzrezerwacje(idkiosob, idkizasobow).tolist(); ListCollectionView reztest = new ListCollectionView((from rz in rez select new rz.rez.idrezerwacji, opiszas = rz.zas.opis, rz.zas.nazwa, rz.os.imie, rz.os. Nazwisko, rz.rez.od, rz.rez.do, rz.rez.stanyrezerwacji.stan, rz.rez. TypyRezerwacji.Typ ).ToList()); rezerwacjedatagrid.itemssource = reztest; catch (Exception ex) MessageBox.Show("złapałem wyjątka: " + ex.message); Tabelkę wypełniamy na samym początku podczas ładowania głównego okna. Aby zawartość tabelki zmieniała się wraz ze zmianą zaznaczonych osób, należy podpiąć wypełnianie tabelki do zdarzenia osobydatagrid SelectionChanged. Jeżeli wszystko zostało wykonane poprawnie możemy przebudować bibliotekę (F6) oraz skompilować program (F5). 3.3 Dodanie tabelki zasobów Jeżeli działa wyszukiwanie po osobach należałoby dodać jeszcze analogiczną tabelkę zasobów. Jest to zadanie samodzielne weryfikujące wiedzę nabytą w tym rozdziale. 3.4 Kolejne usprawnienia Kolejną dość łatwym zadaniem, które można przy okazji zrobić to upewnić się, że tabelki operują na listach. Listy dadzą się sortować nie da się na nich robić operacji dodawania i usuwania natomiast IQueryable odwrotnie, dodawać i usuwać da się, niestety nie działa sortowanie. Problem ten oczywiście można obejść w dość łatwy sposób jednak wymaga on dopisania jeszcze pewnej części kodu. Tabelki operujące na listach nie powinny mieć możliwości dodawania przez użytkownika nowych rekordów. Należy odszukać i poustawiać odpowiednie atrybut CanUserAddRows= False. Wtedy zniknie nam dodatkowy pusty wiersz w tabelkach. Aby użytkownik mógł sortować należy mu na to pozwolić ustawiając odpowiednio atrybut CanUserSortColumns= True. Uwaga w edytorze Visual Studio pomimo iż domyślnie te atrybuty we właściwościach są ustawione to trzeba je wyłączyć i jeszcze raz włączyć by jawnie pojawiły się w pliku konfiguracyjnym. 9

11 Rozdział 4 Formularz dodawania rezerwacji Dodawanie rezerwacji umieścimy w głównym oknie na dole. Metodę dodającą rezerwacje stworzyliśmy na 4 laboratoriach. Nazywa się dodajrezerwacje i potrzebuje następujących danych wejściowych: identyfikator dodającego rezerwacje czas startu czas końca lista identyfikatorów osób którym rezerwujemy czas lista identyfikatorów zasobów typ rezerwacji 4.1 Zmiany w bibliotece Do tej pory metoda ta nie zwracała nic, a w razie niepowodzenia wypisywała na konsolę odpowiednie komunikaty. Obecnie chcemy, aby w dodawanie rezerwacji informowało nas czy operacja się powiodła. Jeżeli wystąpi błąd, będziemy mogli odczytać podstawową informację na jego temat. W tym celu musimy dokonać małej przeróbki w kodzie naszej biblioteki. Do klasy Rezerwacje dodajemy zmienną typu string i określamy dostęp do niej jako tylko do odczytu, tak jak na listingu 4.1 To tu zapiszemy stosowny komunikat w razie niepowodzenia. private string _mesg = null; public string Message get return _mesg; Listing 4.1: Zmienna do zapisu komunikatu. 10

12 Oczywiście trzeba zmienić w nagłówku funkcji dodajrezerwacje zwracany typ z void na bool. Oraz wszędzie tam gdzie gdzie funkcja wychodziła, dodać odpowiednio return true lub false np. (listing 4.2) Listing 4.2: Przykład zapisu komunikatu i wyjście z błędem. try context.savechanges(); //ostatecznie zapisujemy zmiany, EF robi to w transakcji. catch (Exception ex) _mesg = "Wystąpił błąd podczas dodawania rezerwacji" + ex.message; if (ex.innerexception!= null) _mesg = _mesg + "\n\nbłąd wewnętrzny:\n\n" + ex.innerexception.message; Console.WriteLine(_mesg); return false; Przy okazji testów, wyszedł jeden błąd. Złe zapytanie LINQ wyszukujące konfliktowe rezerwacje nie znajdywało rezerwacji w tym samy terminie tych samych zasobów gdy rezerwacja była na inną osobę. Przyczyna prosta. Pomiędzy warunkiem określającym zasoby oraz osoby było złączenie AND. To oznacza, że konfliktowa rezerwacja byłaby wtedy kiedy oprócz dat musiał zaistnieć warunek zasób i osoba. Gdy osoba była inna, konfliktu nie było. Dlatego ten fragment należy poprawić jak w listingu 4.3. Listing 4.3: Poprawione zapytanie wyszukujące konfliktowe rezerwacje. var konfliktowerez = (from rz in context.rezerwacje from zas in context.rezerwacjezasoby from zasobydorezerwacji in idkizasobow from os in context.rezerwacjeosoby from osobydorezerwacji in idkiludzikow where ((rz.od <= dtstart && rz.do > dtstart) (dtstart <= rz.od && dtstop > rz. Od)) && (( rz.idrezerwacji == zas.idrezerwacji && zas.idzasobu == zasobydorezerwacji ) (os.idrezerwacji == rz.idrezerwacji && os.idosoby == osobydorezerwacji )) select rz).distinct(); 4.2 Dodatkowa biblioteka W bogatym zestawie kontrolek WPF brakuje tak przydatnej kontrolki jak choćby TimePicker (pobieranie czasu) czy DecimalUpDown (zwiększanie i zmniejszanie liczby typu decimal za pomocą dwóch małych przycisków). Na szczęście możemy sobie stworzyć sami własne kontrolki. Tutaj nie będziemy tego robić. Posłużymy się darmową wersją biblioteki Extended WPF Toolkit Community Edition. Zaczniemy od ściągnięcia biblioteki ze strony wpftoolkit.codeplex.com Zawartość należy rozpakować do dowolnego katalogu do którego mamy dostęp, ale najlepiej stworzyć sobie w obrębie projektu katalog ExtendedWPFToolkit i tam wypakować albo całą zawartość pliku albo tylko Xceed.Wpf.Toolkit.dll. Następnie w przypadku systemów Windows 2008 Server 11

13 (możliwe że 7 lub 8 też należy tę operację wykonać) należy wejść we właściwości pliku i go odblokować klikając na guzik Odblokuj. Tak jak na pokazano na rysunku 4.1 Rysunek 4.1: Odblokowanie obcej biblioteki. Teraz we właściwościach projektu należy dodać referencję do pliku Xceed.Wpf.Toolkit.dll. Aby używać przestrzeni nazw z nowej biblioteki w plikach xaml należy dodać jeszcze: xmlns:xctk= Nazwa ta powinna nam się pojawić po wpisaniu xmlns:xctk= gdyby tak się nie stało należy sprawdzić czy dodaliśmy referencję po odblokowaniu pliku. Ewentualnie można też uruchomić ponownie Visual Studio. Szczegóły instalacji oraz używania biblioteki można doczytać w dokumentacji na stronie producenta. 4.3 Nowe komponenty Nowa biblioteka dostarczyła nam ciekawego komponentu DataTimePicker. Jest to komponent zawierający kalendarz ale i pozwalający na wpisanie godziny. Możemy określić sposób formatowania daty oraz czasu. Nowe elementy umieścimy w dodatkowej siatce (grid) a tę umieścimy w ostatnim wierszu siatki głównej. Jak było to już wspomniane, dodawanie rezerwacji wymaga list identyfikatorów użytkowników i zasobów. Te weźmiemy z istniejących tabel. Identyfikator osoby dodającej będzie wzięty z zalogowanej osoby. Osoba niezalogowana dostanie informację o braku uprawnień lub inny stosowny komunikat. Typ rezerwacji będzie pobierany z pola typu combi. Oczywiście trzeba będzie go wypełnić danymi z bazy. Daty od do będą wprowadzane za pomocą nowych kontrolek. Będzie też potrzebny guzik rozpoczynający proces dodawania rezerwacji. Cała konfiguracja wyglądu zawarta jest w kodzie 4.4 Listing 4.4: Konfiguracja nowych elementów potrzebnych do dodawania rezerwacji. 12

14 <Grid Grid.Row="3" Grid.ColumnSpan="2" VerticalAlignment="Top" Margin="0,5,0,0" HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="125*" /> <ColumnDefinition Width="125*" /> <ColumnDefinition Width="125*" /> <ColumnDefinition Width="125*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="40"/> </Grid.RowDefinitions> <ComboBox Grid.Row="0" Height="25" HorizontalAlignment="Left" Margin="95,0,0,0" Name="comboTypRezerwacji" VerticalAlignment="Center" Width="110" DisplayMemberPath="Typ" ItemsSource="Binding"/> <Label Content="Typ Rezerwacji:" Grid.Row="0" Height="25" Margin="5,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Name="label1"/> <Label Content="Data Od:" Grid.Row="0" Grid.Column="1" Height="25" Margin="5,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Name="label2"/> <Label Content="Data Do:" Grid.Row="0" Grid.Column="2" Height="25" Margin="5,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Name="label3"/> <xctk:datetimepicker Height="25" Width="130" Grid.Row="0" Grid.Column="1" Margin="60,0,0,0" Name="dtpickerOd" HorizontalAlignment="Left" VerticalAlignment="Center" FormatString="dd.MM.yyyy HH:mm" Format="Custom" ValueChanged="dtpickerOd_ValueChanged"/> <xctk:datetimepicker Height="25" Width="130" Grid.Row="0" Grid.Column="2" Margin="60,0,0,0" Name="dtpickerDo" HorizontalAlignment="Left" VerticalAlignment="Center" FormatString="dd.MM.yyyy HH:mm" Format="Custom"/> <Button Content="Dodaj" Height="23" Width="75" Grid.Row="0" Grid.Column="3" Margin="0,0,0,0" Name="buttonDodaj" HorizontalAlignment="Center" VerticalAlignment="Center" Click="buttonDodaj_Click" /> </Grid> 4.4 Kod W pliku xaml widzimy, podpięte procedury obsługi zdarzeń ValueChanged oraz Click. Przed kompilacją należy wygenerować puste funkcje. Teraz powinniśmy wypełnić pole combi. Wykonamy to za pomocą jednej linii combotyprezerwacji.itemssource = typyrezerwacji.getall(); Daty można podawać ręcznie, jednak miłym udogodnieniem było by gdyby wypełnione były one bieżącą datą. Użytkownik i tak nie będzie ustawiał daty wcześniejszej ale będzie miał trochę mniej szukania czy pisania. Może zgodzi mu się rok i miesiąc, a może nawet i godzina. Niestety pobranie bieżącego czasu będzie z dokładnością do sekund a to skutkowałoby zmuszeniem użytkownika do zerowania części sekundowej a i zapewne ustawiania części minutowej. Dobrym rozwiązaniem było by zaokrąglenie daty do 5 minut na przód. Wykonamy to za pomocą prostej funkcji zaczerpniętej ze strony: Tworzymy nową klasę 4.5 w pliku Enumeracje.cs (lub innym dostępnym w projekcie). public class TimeTools Listing 4.5: Funkcja zaokrąglająca czas. 13

15 public DateTime RoundUp(DateTime dt, TimeSpan d) return new DateTime(((dt.Ticks + d.ticks/2) / d.ticks) * d.ticks); Teraz wystarczy jej użyć w kodzie 4.6 ładującym główne okno. Listing 4.6: Ustawienie czasu. TimeTools tt = new TimeTools(); dtpickerod.value = tt.roundup(datetime.now, TimeSpan.FromMinutes(5)); Jak widzimy zrobiliśmy to tylko dla czasu początkowego. Czas końcowy ustawimy w funkcji 4.7 dtpickerod ValueChanged podpiętej do zdarzenia ValueChanged. Jest on ustawiany za każdym razem gdy pole Do jest mniejsze niż Od lub jest ono nie ustawione. Logicznym jest fakt, że czas końca rezerwacji nie może być wcześniejszy niż jej początek. Dlatego kolejnym ułatwieniem dla użytkownika jest automatyczne ustawienie czas końca na czas przynajmniej taki jak czas początku. Listing 4.7: Funkcja zaokrąglająca czas. private void dtpickerod_valuechanged(object sender, RoutedPropertyChangedEventArgs< object> e) //jeżeli po zmianie w pierwszym polu data w drugim jest mniejsza //to można już ją nastawić przynajmniej na taką samą if (dtpickerdo.value == null) //gdyby nie było to ustawiamy czas bieżący z zaokrągleniem do 5 minut w górę. TimeTools tt = new TimeTools(); dtpickerdo.value = tt.roundup(datetime.now, TimeSpan.FromMinutes(5)); if (dtpickerdo.value.value < dtpickerod.value.value) dtpickerdo.value = dtpickerod.value; Kolejną pracą samodzielną jest ustawienie automatycznej zmiany czasu początku w przypadku, gdy użytkownik zmieni czas końca tak, by czas początku nie był późniejszy niż czas końca. Pozostała nam jeszcze tylko obsługa guzika Dodaj. Pod kliknięcie podpinamy kod 4.8 Listing 4.8: Funkcja obsługi guzika Dodaj. private void buttondodaj_click(object sender, RoutedEventArgs e) if (zalogowany==null) MessageBox.Show("Nie jesteś zalogowany, nie możesz dodawać rezerwacji"); List<long> idkiosob = new List<long>(); idkiosob = (from os in osobydatagrid.selecteditems.oftype<osoby>() select os. IdOsoby).ToList(); List<long> idkizasobow = new List<long>(); idkizasobow = (from zs in zasobydatagrid.selecteditems.oftype<zasoby>() select zs.idzasobu).tolist(); if (rezerwacje.dodajrezerwacje(zalogowany.idosoby, dtpickerod.value.value, dtpickerdo.value.value, idkizasobow, idkiosob, (TypyRezerwacji) combotyprezerwacji.selecteditem)) 14

16 MessageBox.Show("ok nowa rezerwacja"); wypelnijtabelkerezerwacji(); else MessageBox.Show("Nie dodano rezerwacji: \n" + rezerwacje.message); Jak widać identyfikatory osób i zasobów brane są z zaznaczonych wierszy tabelek. Użytkownik dodający to ten zalogowany (niezalogowany nie będzie mógł dodać rezerwacji). Typ rezerwacji pobierany jest z pola combo. Sprawdzamy też poprawność wykonania operacji i w razie niepowodzenia wyświetlamy komunikat jaki przygotowała nam funkcja dodajrezerwacje. 15

17 Rozdział 5 Testowanie i wnioski Jak widać aplikacja jest niemal gotowa. Jednak do bardzo podstawowej funkcjonalności jeszcze jej brakuje dwóch rzeczy. Usuwania rezerwacji oraz przegląd i zatwierdzanie lub odrzucanie propozycji. Zauważyliśmy też, że na chwilę obecną nie ma obsługi uprawnień. Każdy zalogowany lub nie może robić co chce. W zaufanym środowisku to jeszcze nie jest problemem, jednak usuwanie i akceptacja rezerwacji są kluczowe. Aplikację można zacząć już sprawdzać i wypisywać element, które należy zmienić, usprawnić, dodać lub zabrać. Przykładowo: skoro nie możemy dodawać w tabelkach to należy ustawić zakaz usuwania (przynajmniej w tabeli osób i zasobów w głównym oknie). Jeżeli te tabelki służą jedynie do edycji należy ustawić je jako tylko do odczytu. Bindowanie nie powinno być TwoWay co oznacza możliwości nanoszenia zmian na bazę. Idąc dalej można pokusić się o dodatkowe usprawnienia np. guzik zaznacz wszystko, opcje filtrowania tylko aktywne, ukryj archiwalne itp. Ostatnim zadaniem jest spisanie tego typu uwag pomocnych w dalszym rozwoju. Tak by interfejs był spójny i jak najbardziej wygodny, czy skalując okna nie tracimy nic z czytelności, czy wszystkie wyświetlane guziki i pozycje w menu są obsługiwane. Czy wyświetlane są odpowiednie komunikaty w razie powodzenia i niepowodzenia. Trzeba oczywiście wyłapać wszystkie przypadki gdy program nam się zakończy błędem (jest bardzo wiele takich miejsc ponieważ praktycznie nie nastawialiśmy się na obsługę wyjątków). Oprócz błędów krytycznych trzeba znaleźć też błędy w działaniu, np. czy da się dodać rezerwacje tak, by były one kolidujące ze sobą, albo gdy data początku jest późniejsza niż data końca. Czy wprowadzając błędny format daty program to przyjmie, co gdy błędnie podamy konfiguracje serwera bazodanowego itd. 16

18 Rozdział 6 Oceny Jak zawsze całość wykonanego ćwiczenia jest na 5 punktów w skład których wchodzi: Stworzenie okna edycji osób (wraz ze skalowaniem i poprawnym rozmieszczeniem elementów) 1 pkt. Rozmieszczenie i skonfigurowanie wyglądu elementów wchodzących w skład przeglądu rezerwacji (oczywiście ze skalowaniem itp.) 0,5 pkt Dodanie kodu obsługującego przegląd rezerwacji 0,5 pkt. Dodanie swojej tablicy zasobów i uwzględnienie jej przy przeszukiwaniu rezerwacji 0,5 pkt. Zmiany w RezerwacjeLib potrzebne do dodawania rezerwacji 0,5 pkt. Dodanie nowej biblioteki z kontrolkami i użycie ich w projekcie 0,5 pkt. Kod obsługujący dodawanie rezerwacji 0,5 pkt Automatyczna zmiana czasu Od w przypadku zmian czasu Do 0,5 pkt. Testowanie i raport z testów 0,5 pkt. Na sprawozdania jak zawsze czekam do końca poniedziałku. 17

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego 1/34 Wymagania wstępne: Znajomość podstaw programowania. Efekty kształcenia: Umiejętność tworzenia prostych aplikacji

Bardziej szczegółowo

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2 Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

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

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

Bardziej szczegółowo

Jak zainstalować szablon allegro?

Jak zainstalować szablon allegro? Jak zainstalować szablon allegro? W mailu z zakupionym szablonem otrzymali państwo plik zip z numerem szablonu w nazwie. Należy najpierw go rozpakować. W paczce znajduję się pliki: 1. index[nrszablonu].txt

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Formularze w programie Word

Formularze w programie Word Formularze w programie Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje można następnie

Bardziej szczegółowo

TWORZENIE FORMULARZY WORD 2007

TWORZENIE FORMULARZY WORD 2007 TWORZENIE FORMULARZY WORD 2007 Witam serdecznie. Poniżej przedstawię w jaki sposób tworzyć formularze w programie WORD 2007. Poprzednie wersje programu WORD 2007 również udostępniały opcję tworzenia formularzy,

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH SPIS TREŚCI i EKRANÓW WSTĘP Ekran1: Wstęp. Logowanie Ekran2: Strona początkowa UDOSTEPNIONE MATERIAŁY Ekran3: Dostępne materiały Ekran4: Zawartość

Bardziej szczegółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Instrukcja obsługi Modułu Payu dla Moodle 2.x

Instrukcja obsługi Modułu Payu dla Moodle 2.x Instrukcja obsługi Modułu Payu dla Moodle 2.x Wersja z 10 lutego 2015r. Spis treści 1. Wymagania............................................ 1 2. Instalacja.............................................

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Inżynieria Programowania Laboratorium 5 Część Wizualna. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 5 Część Wizualna. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 5 Część Wizualna Paweł Paduch paduch@tu.kielce.pl 11-05-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach poznamy jeden ze sposobów tworzenia okienkowej aplikacji w

Bardziej szczegółowo

Dokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja

Dokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja Dokumentacja programu Zoz Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ Wersja 1.40.0.0 Zielona Góra 2012-02-29 Wstęp Nowelizacja Rozporządzenia Ministra Zdrowia z

Bardziej szczegółowo

Palety by CTI. Instrukcja

Palety by CTI. Instrukcja Palety by CTI Instrukcja Spis treści 1. Logowanie... 3 2. Okno główne programu... 4 3. Konfiguracja... 5 4. Zmiana Lokalizacji... 6 5. Nowa Paleta z dokumentu MMP... 8 6. Realizacja Zlecenia ZW... 10 7.

Bardziej szczegółowo

I. Program II. Opis głównych funkcji programu... 19

I. Program II. Opis głównych funkcji programu... 19 07-12-18 Spis treści I. Program... 1 1 Panel główny... 1 2 Edycja szablonu filtrów... 3 A) Zakładka Ogólne... 4 B) Zakładka Grupy filtrów... 5 C) Zakładka Kolumny... 17 D) Zakładka Sortowanie... 18 II.

Bardziej szczegółowo

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki e-mail za pomocą otrzymanych danych.

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki e-mail za pomocą otrzymanych danych. 1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki e-mail za pomocą otrzymanych danych. 2. Po poprawnym zalogowaniu się, przejdziemy do nowej skrzynki. Ważną informacją jest zajętość

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

KASK by CTI. Instrukcja

KASK by CTI. Instrukcja KASK by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Okno główne programu... 5 4. Konfiguracja atrybutów... 6 5. Nadawanie wartości atrybutom... 7 6. Wybór firmy z

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

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

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Baza danych. Program: Access 2007

Baza danych. Program: Access 2007 Baza danych Program: Access 2007 Bazę danych składa się z czterech typów obiektów: tabela, formularz, kwerenda i raport (do czego, który służy, poszukaj w podręczniku i nie bądź za bardzo leniw) Pracę

Bardziej szczegółowo

BAZY DANYCH Panel sterujący

BAZY DANYCH Panel sterujący BAZY DANYCH Panel sterujący Panel sterujący pełni z reguły rolę centrum, z którego wydajemy polecenia i uruchamiamy różnorodne, wcześniej zdefiniowane zadania, np. wyświetlamy formularze lub drukujemy

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Temat: Platforma Systemowa Wonderware cz. 2 przemysłowa baza danych,

Bardziej szczegółowo

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

Microsoft.NET: LINQ to SQL, ASP.NET AJAX Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub

Bardziej szczegółowo

Instrukcja obsługi programu DHL EasySHip v. 5.3.x

Instrukcja obsługi programu DHL EasySHip v. 5.3.x Instrukcja obsługi programu DHL EasySHip v. 5.3.x I n s t r u k c j a E a s y S h i p 5. 3. x Strona 1 Spis treści 1. Konfiguracja aplikacji... 3 2. Przygotowanie listu przewozowego... 4 3. Dodawanie Nadawcy...

Bardziej szczegółowo

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

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów? UONET+ - moduł Sekretariat Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów? W module Sekretariat wydruki dostępne w widoku Wydruki/ Wydruki list można przygotować w formacie PDF oraz

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

System magazynowy małego sklepu.

System magazynowy małego sklepu. System magazynowy małego sklepu. dokumentacja użytkownika. Mariusz Grabowski e-mail: mariosh@interia.pl Jabber ID: mariosh@jabber.autocom.pl Spis treści 1 Wstęp. 2 2 Przed uruchomieniem. 3 3 Korzystanie

Bardziej szczegółowo

Ćwiczenie 1 Galeria zdjęć

Ćwiczenie 1 Galeria zdjęć Galeria zdjęć Pobierz przykład (http://jsekulska.kis.p.lodz.pl/studia.htm). Krok 1 Ustawienie stołu montażowego Otwieramy nowy plik i nazywamy go (np. gallery.fla). Ustawiamy wielkość pola roboczego na

Bardziej szczegółowo

Wypożyczalnia by CTI. Instrukcja

Wypożyczalnia by CTI. Instrukcja Wypożyczalnia by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Lista sprzętu... 7 3.1. Dodawanie nowego sprzętu... 8 3.2. Dodawanie przeglądu... 9 3.3. Edycja sprzętu...

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...

Bardziej szczegółowo

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

Tworzenie pliku źródłowego w aplikacji POLTAX2B. Tworzenie pliku źródłowego w aplikacji POLTAX2B. Po utworzeniu spis przekazów pocztowych klikamy na ikonę na dole okna, przypominającą teczkę. Następnie w oknie Export wybieramy format dokumentu o nazwie

Bardziej szczegółowo

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3 DODAJEMY TREŚĆ DO STRONY 1. Dockbar, CMS + wyszukiwarka aplikacji... 2 2. Dodawanie portletów... 3 Widok zawartości stron... 3 Omówienie zawartości portletu (usunięcie ramki itd.)... 4 3. Ikonki wybierz

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. Tematy zajęć: 1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. 2. Posługiwanie się podstawowymi kontrolkami. 3. Własności i zdarzenia w WPF. 4. Zadania aplikacji. Okna. 5. Polecenia. Zasoby.

Bardziej szczegółowo

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Instrukcja laboratoryjna

Instrukcja laboratoryjna Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z

Bardziej szczegółowo

Uruchamianie bazy PostgreSQL

Uruchamianie bazy PostgreSQL Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL

Bardziej szczegółowo

Obszar Logistyka/Zamówienia Publiczne

Obszar Logistyka/Zamówienia Publiczne Obszar Logistyka/Zamówienia Publiczne Plany Zamówień Publicznych EG_LOG Plany Zamówień Publicznych Instrukcja Użytkownika. Instrukcja użytkownika 2 Spis treści SPIS TREŚCI... 3 NAWIGACJA PO SYSTEMIE...

Bardziej szczegółowo

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Projektowanie i programowanie aplikacji biznesowych. Wykład 2 Projektowanie i programowanie aplikacji biznesowych Wykład 2 Kontrolki w Windows API Aby korzystać z kontrolek należy dołączyć plik nagłówkowy o nazwie commctrl.h oraz bibliotekę o nazwie libcomctl32.a.

Bardziej szczegółowo

Konfiguracja szablonu i wystawienie pierwszej aukcji allegro

Konfiguracja szablonu i wystawienie pierwszej aukcji allegro Konfiguracja szablonu i wystawienie pierwszej aukcji allegro Metod na wystawienie aukcji na allegro jest co najmniej 2. W pierwszej przechodzimy do zakładki MOJA SPRZEDAŻ, w USTAWIENIACH SPRZEDAŻY odnajdujemy

Bardziej szczegółowo

Program dla praktyki lekarskiej

Program dla praktyki lekarskiej Program dla praktyki lekarskiej ErLab Instrukcja konfiguracji i obsługi Spis Treści 1. Wstęp... 2 2. Konfiguracja... 3 2.1. Serwer... 3 2.2. Laboratorium... 3 2.3. Punkt pobrań... 4 3. Wysyłanie skierowania...

Bardziej szczegółowo

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

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word Formularz MS Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje moŝna następnie zebrać

Bardziej szczegółowo

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

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

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Karty pracy W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Ustawienia Pierwszym krokiem w rozpoczęciu pracy z modułem Karty Pracy jest definicja

Bardziej szczegółowo

Wstawianie nowej strony

Wstawianie nowej strony Wstawianie nowej strony W obszernych dokumentach będziemy spotykali się z potrzebą dzielenia dokumentu na części. Czynność tę wykorzystujemy np.. do rozpoczęcia pisania nowego rozdziału na kolejnej stronie.

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy

Bardziej szczegółowo

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

Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację przygotowaną na poprzednich zajęciach w katalogu SKOKI1 do nowego katalogu SKOKI2. Wydział: Zarządzania i Modelowania Komputerowego Kierunek: Inżynieria Danych Przedmiot: Programowanie baz danych w środowisku RAD-C++ Rok 2 Semestr 4 Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację

Bardziej szczegółowo

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 3 przejdziemy teraz do zaprojektowania strony przegladaj_dzialami.aspx na której użytkownicy będą przeglądać

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2. Spis treści: 1 Podstawy pracy z aplikacją... 2 1.1 Układ strony... 2 strona 1 z 7 1 Podstawy pracy z aplikacją InDesign jest następcą starzejącego się PageMakera. Pod wieloma względami jest do niego bardzo

Bardziej szczegółowo

Instrukcja obsługi programu Profile GT

Instrukcja obsługi programu Profile GT Instrukcja obsługi programu Profile GT 1. Instalacja i pierwsze uruchomienie Instalacja programu jest prosta. Należy uruchomić plik setup.exe i w zasadzie wszystkie pytania można pominąć przyjmując domyślne

Bardziej szczegółowo

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800.

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Wraz z niniejszym tutorialem, dołączone są 4 pliki (krok0, krok1, itd). Nie należy ich

Bardziej szczegółowo

Telesprzedaż by CTI Instrukcja

Telesprzedaż by CTI Instrukcja Telesprzedaż by CTI Instrukcja 1 Spis treści 1. Opis programu...4 2. Konfiguracja...5 2.1. Połączenie z serwerem MS SQL...6 2.2. Połączenie z serwerem MS SQL systemu Call Center...7 2.3. Nawiązanie połączenia

Bardziej szczegółowo

Bazy danych Karta pracy 1

Bazy danych Karta pracy 1 Bazy danych Karta pracy 1 Bazy danych Karta pracy 1 1. Utwórz katalog Bazy danych służący do przechowywania wszelkich danych dotyczących kursu. 2. W katalogu Bazy danych stwórz podkatalog BD1 służący jako

Bardziej szczegółowo

Podział na strony, sekcje i kolumny

Podział na strony, sekcje i kolumny Formatowanie stron i sekcji Formatowanie stron odnosi się do całego dokumentu lub jego wybranych sekcji. Dla całych stron ustalamy na przykład marginesy, które określają odległość tekstu od krawędzi papieru.

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

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

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS Zmiany funkcjonalne i lista obsłużonych zgłoszeń Spis treści 1 Zmiany funkcjonalne... 3 Automatyczny zapis karty obiegu w pierwszym etapie... 3 Mapowanie wielu kontrolek typu Załącznik do dokumentu generowanego

Bardziej szczegółowo

Windows Server Active Directory

Windows Server Active Directory Windows Server 2012 - Active Directory Active Directory (AD) To usługa katalogowa a inaczej mówiąc hierarchiczna baza danych, która przynajmniej częściowo musi być ściśle związana z obiektową bazą danych.

Bardziej szczegółowo

Pierwsza niedogodność dotyczy strony zarządzaj działami.

Pierwsza niedogodność dotyczy strony zarządzaj działami. Zaprojektowana aplikacja umożliwia wprawdzie pełne zarządzanie danymi w bazie jednak w pewnych przypadkach funkcjonalność wykonywania operacji bazodanowych może nie być zadawalająca. Pierwsza niedogodność

Bardziej szczegółowo

,Aplikacja Okazje SMS

,Aplikacja Okazje SMS , jest rozwiązaniem, które umożliwia bez umiejętności programistycznych uruchomić własną aplikację na fanpage-u firmy lub marki. Pozwala ona na dodanie numeru telefonu do swojej bazy w SerwerSMS.pl, umożliwiając

Bardziej szczegółowo

Kalipso wywiady środowiskowe

Kalipso wywiady środowiskowe Kalipso wywiady środowiskowe Instrukcja obsługi INFO-R Spółka Jawna - 2017 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax: (33) 853 04 06 e-mail: admin@ops.strefa.pl Spis treści:

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1)

INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1) INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1) Uruchomienie programu Po uruchomieniu programu wyświetlane jest okno logowania, w którym wprowadza się nazwę użytkownika (opis w dalszej części instrukcji)

Bardziej szczegółowo

Instrukcja obsługi Modułu Płatności dla Moodle 1.7, 1.8, 1.9

Instrukcja obsługi Modułu Płatności dla Moodle 1.7, 1.8, 1.9 Instrukcja obsługi Modułu Płatności dla Moodle 1.7, 1.8, 1.9 Wersja z 4 kwietnia 2011r. Spis treści 1. Wymagania............................................ 1 2. Jak kupić.............................................

Bardziej szczegółowo

System rezerwacji online

System rezerwacji online Spis treści 1. Część widoczna dla klientów dokonujących rezerwacji...1 1.a. Ogólne informacje...1 1.b. Etapy w rezerwacji...3 I. Etap 1 wybór dat początku i końca pobytu oraz wybór pokoi...3 II. Etap 2

Bardziej szczegółowo

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera. Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera. Wchodzimy w Centrum sieci -> Połączenia sieciowe -> następnie do właściwości naszej karty sieciowej. Następnie przechodzimy do Protokół internetowy

Bardziej szczegółowo

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0. Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2 Instrukcja tworzenia bazy danych dla programu AUTOSAT 3 wersja 0.0.4 2z12 1. Wymagania systemowe. Przed rozpoczęciem instalacji

Bardziej szczegółowo

Notowania Mobilne wersja Java

Notowania Mobilne wersja Java Notowania Mobilne wersja Java Instrukcja obsługi programu Notowania Mobilne to aplikacja, która pozwala na dostęp do notowań giełdowych w czasie rzeczywistym z każdego miejsca na świecie, gdzie tylko możliwe

Bardziej szczegółowo

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen? 27.06.11 FAQ Systemu EKOS 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen? Procedura rejestracji ocen wymaga podpisywania protokołów (w postaci wypełnionych formularzy InfoPath Forms

Bardziej szczegółowo

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1) W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,

Bardziej szczegółowo

Tworzenie szablonów użytkownika

Tworzenie szablonów użytkownika Poradnik Inżyniera Nr 40 Aktualizacja: 12/2018 Tworzenie szablonów użytkownika Program: Plik powiązany: Stratygrafia 3D - karty otworów Demo_manual_40.gsg Głównym celem niniejszego Przewodnika Inżyniera

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7 DOKUMENTY I GRAFIKI SPIS TREŚCI Zarządzanie zawartością... 2 Tworzenie folderu... 3 Dodawanie dokumentu / grafiki... 4 Wersje plików... 7 Zmiana uprawnień w plikach... 9 Link do dokumentów i dodawanie

Bardziej szczegółowo

Kurs walut. Specyfikacja projektu. Marek Zając 2013-12-16

Kurs walut. Specyfikacja projektu. Marek Zając 2013-12-16 Kurs walut Specyfikacja projektu Marek Zając 2013-12-16 Spis treści 1. Podsumowanie... 2 1.1 Wstęp... 2 1.2 Projekt interfejsu... 2 1.2.1 Rozmiar głównego okna... 2 2. Słownik pojęć... 2 2.1 Definicja

Bardziej szczegółowo

DODAJEMY TREŚĆ DO STRONY

DODAJEMY TREŚĆ DO STRONY DODAJEMY TREŚĆ DO STRONY SPIS TREŚCI Pasek narzędzi i wyszukiwarka aplikacji... 2 Dodawanie portletów... 3 Widok zawartości stron... 4 Zawartość portletu... 5 Ikonki wybierz oraz dodaj zawartość stron...

Bardziej szczegółowo

Zmiany w programie VinCent Office v.1.09

Zmiany w programie VinCent Office v.1.09 Zmiany w programie VinCent Office v.1.09 1. Zmiany ogólne dotyczące modułów FK i GM. a) Zmiana sposobu wyświetlania danych w tabelach Do wersji 1.08 dane prezentowane w tabelach miały zdefiniowane określone

Bardziej szczegółowo

Jeżeli pole Krawędź będzie zaznaczone uzyskamy obramowanie w całej wstawianej tabeli

Jeżeli pole Krawędź będzie zaznaczone uzyskamy obramowanie w całej wstawianej tabeli Tabela Aby wstawić tabelę do dokumentu należy wybrać z górnego menu Tabela-->Wstaw-->Tabela W kategorii Rozmiar określamy z ilu kolumn i ilu wierszy ma się składać nasza tabela. Do dokumentu tabelę możemy

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika ul. Zawalna 1/5 51-118 Wrocław e-mail: biuro@innotechtion.pl www.innotechtion.pl Spis treści 1 Instalacja oprogramowania SMS Studio...2 2 Pierwsze uruchomienie... 4 2.1 Rejestracja...

Bardziej szczegółowo

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Tworzenie i edycja danych na stronie www 1. Rozpoczęcie pracy. Logowanie się do systemu zarządzania treścią dwajeden.pl ropocząć należy od podania

Bardziej szczegółowo

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl AKTYWNY SAMORZĄD Instrukcja użytkownika TYLDA Sp. z o.o. 65-001 Zielona Góra ul. Wazów 6a tel. 68 324-24-72 68 325-75-10 www.tylda.pl tylda@tylda.pl wersja 1.1 2014.12.01 2 Spis treści 1. Konta użytkowników...

Bardziej szczegółowo

Arkusz kalkulacyjny MS Excel 2010 PL.

Arkusz kalkulacyjny MS Excel 2010 PL. Arkusz kalkulacyjny MS Excel 2010 PL. Microsoft Excel to aplikacja, która jest powszechnie używana w firmach i instytucjach, a także przez użytkowników domowych. Jej główne zastosowanie to dokonywanie

Bardziej szczegółowo

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

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM Zaznaczanie komórek Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM Aby zaznaczyć blok komórek które leżą obok siebie należy trzymając wciśnięty LPM przesunąć kursor rozpoczynając od komórki

Bardziej szczegółowo

Dodatek. Instrukcja instalacji i konfiguracji. dla Subiekt nexo. Wersja:

Dodatek. Instrukcja instalacji i konfiguracji. dla Subiekt nexo. Wersja: Dodatek dla Subiekt nexo Instrukcja instalacji i konfiguracji Wersja: 1.0.1., ul. Zwoleńska 127 lok. 32, 04-761 Warszawa Spis treści 1. Informacje ogólne... 3 O programie... 3 Wymagania systemowe i sprzętowe...

Bardziej szczegółowo

Skrócona instrukcja obsługi programu EndymionKOL 2012-12-17

Skrócona instrukcja obsługi programu EndymionKOL 2012-12-17 Skrócona instrukcja obsługi programu EndymionKOL 2012-12-17 1. Do czego służy ten program: Program został stworzony z myślą o ułatwieniu wyliczania danych na temat kolejek oczekujących sprawozdawanych

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Instalacja programu:

Instalacja programu: Instrukcja programu Konwerter Lido Aktualizacja instrukcji : 2012/03/25 INSTALACJA PROGRAMU:... 1 OKNO PROGRAMU OPIS... 3 DODANIE MODUŁÓW KONWERSJI... 3 DODANIE LICENCJI... 5 DODANIE FIRMY... 7 DODAWANIE

Bardziej szczegółowo

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu ibok Internetowe Biuro Obsługi Klienta Instrukcja obsługi SPIS TREŚCI 1. AUTORYZACJA UŻYTKOWNIKA W SYSTEMIE IBOK... 3 1.1 Logowanie... 3 1.2 Przywracanie

Bardziej szczegółowo