D8510 application development fundamentals demo

1,312 views
1,232 views

Published on

D8510_D8L51 application development fundamentals demo (part of my presentation). Enjoy (in polish).

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,312
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Agent Triggers
  • no one has access to these operations. Sign agents to run on behalf of someone else can sign agents that will be executed on behalf of someone else. This setting applies to scheduled agents only. no one has this right. Sign agents to run on behalf of the invoker of the agent can sign agents that can be invoked by someone else, for example, web agents. all users have this right. Run restricted LotusScript/Java agents can run LotusScript/Java agents with limited functionality, such as those commands that cannot violate security. no can run these agents. Run simple and formula agents can run simple and formula based agents, both shared and private. all can run simple agents. Sign script libraries to run on behalf of someone else are allowed to sign script libraries in agents executed by someone else. all users have this right.
  • 23.. 24. Wdrożenie aplikacji na serwer.
  • 23.. 24. Wdrożenie aplikacji na serwer.
  • D8510 application development fundamentals demo

    1. 1. D8510 – Application Development Fundamentals Marek Zawadzki
    2. 2. Kilka słów o prowadzącym (Marek Zawadzki) <ul><li>Od kilkunastu lat związany z technologią IBM Lotus. </li></ul><ul><li>Pracował w IBM Polska 8 lat (różne stanowiska). </li></ul><ul><li>Autor dwóch książek poświęconych Lotus Notes (wersja 4 i wersja R5). </li></ul><ul><li>Autor kilkunastu systemów pomocy z Lotus Notes dla Klientów firmy IBM Polska. </li></ul><ul><li>Adres email: [email_address] </li></ul>
    3. 3. Agenda kursu (1) <ul><li>IBM Lotus Domino 8 oraz środowisko Domino Designer : </li></ul><ul><ul><li>1. Wprowadzenie do pracy grupowej ( groupware ). </li></ul></ul><ul><ul><li>2. Wprowadzenie do platformy IBM Lotus Domino 8. </li></ul></ul><ul><ul><li>3. Przegląd przykładowych aplikacji Domino. </li></ul></ul><ul><ul><li>4. Przegląd środowiska IBM Lotus Domino Designer 8. </li></ul></ul><ul><li>Praca z elementami projektu aplikacji: </li></ul><ul><ul><li>5. Sposoby tworzenia aplikacji. </li></ul></ul><ul><ul><li>6. Praca z formularzami ( Forms ). </li></ul></ul><ul><ul><li>7. Praca z polami w formularzu ( Fields ). </li></ul></ul><ul><ul><li>8. Praca z widokami ( Views ). </li></ul></ul><ul><li>Programowanie aplikacji Domino </li></ul><ul><ul><li>9. Wprowadzenie do języka formuł ( Formula Language ). </li></ul></ul><ul><ul><li>10. Zastosowanie formuł w formularzach / polach. </li></ul></ul><ul><ul><li>11. Tworzenie formularza odpowiedzi ( response form ), dziedziczenie danych. </li></ul></ul>
    4. 4. Agenda kursu (2) <ul><ul><li>12. Rozszerzanie funkcjonalności formularzy, za pomocą czynności ( actions ). </li></ul></ul><ul><ul><li>13. Ukrywanie elementów ( Hide – When Options ). </li></ul></ul><ul><ul><li>14. Przeglądanie zapisanych dokumentów, wyszukiwanie dokumentów. </li></ul></ul><ul><ul><li>15. Implementacja prostego obiegu dokumentów ( workflow ). </li></ul></ul><ul><li>Widoki oraz nawigacja w aplikacji Domino: </li></ul><ul><ul><li>16. Widoki kategoryzowane, wyświetlanie odpowiedzi w widokach. </li></ul></ul><ul><ul><li>17. Wyrażenia selekcji w widokach, widoki selektywne. </li></ul></ul><ul><ul><li>18. Właściwości widoków. </li></ul></ul><ul><ul><li>19. Struktury ( Outlines ), strony ( Pages ), układy ramek ( Framesets ). </li></ul></ul><ul><li>Automatyzacja zadań oraz bezpieczeństwo: </li></ul><ul><ul><li>20. Zastosowanie agentów do automatyzacji zadań ( Agents ). </li></ul></ul><ul><ul><li>21. Definiowanie dostępu do baz danych (ACL). </li></ul></ul><ul><ul><li>22. Definiowanie dostępu do elementów projektu. </li></ul></ul><ul><li>Wdrożenie aplikacji na serwer: </li></ul><ul><ul><li>23. Przygotowanie aplikacji do wdrożenia (ikona, system pomocy). </li></ul></ul><ul><ul><li>24. Wdrożenie aplikacji na serwer. </li></ul></ul>
    5. 5. IBM Lotus Domino 8 oraz środowisko Domino Designer <ul><ul><li>Wprowadzenie do pracy grupowej ( groupware ) </li></ul></ul>
    6. 6. Definicja pracy grupowej oraz komputerowe jej wspomaganie <ul><li>Praca grupowa jest technologią wspomagającą pracę grup osób. </li></ul><ul><li>Technologia ta może być stosowana do: </li></ul><ul><ul><li>komunikowania się członków grup, </li></ul></ul><ul><ul><li>współpracy i koordynacji działań osób. </li></ul></ul><ul><ul><li>rozwiązywania różnych problemów. </li></ul></ul><ul><li>Komputerowe wspomaganie pracy grupowej ( Computer-Supported Cooperative Work ) jest dziedziną wiedzy zajmującą się prowadzeniem badań i analizą narzędzi pracy grupowej. </li></ul><ul><li>Technologię pracy grupowej można postrzegać w dwóch różnych aspektach: </li></ul><ul><ul><li>członkowie grup pracują razem w tym samym czasie (tryb rzeczywisty lub praca synchroniczna ), lub w różnym czasie (praca grupowa asynchroniczna). </li></ul></ul><ul><ul><li>członkowie grup pracują razem w tym samym miejscu ( face-to-face ) lub w różnych, czasem nawet bardzo oddalonych od siebie miejscach ( distance ). </li></ul></ul>
    7. 7. Elementy pracy grupowej (2009) <ul><li>Informacja tekstowa oraz kontekst pracy </li></ul><ul><li>Narzędzia komunikacji (poczta elektroniczna, konferencje WWW, Instant Messaging ) </li></ul><ul><li>Narzędzia koordynujące (spotkania, workflow , kalendarze grupowe, awareness ) </li></ul><ul><li>Repozytoria informacji (współdzielenie wiedzy, zbieranie i odtwarzanie wiedzy) </li></ul><ul><li>Społeczności i towarzystwo ( Sociality ): filtrowanie znajomości, zaufane osoby </li></ul><ul><li>Zintegrowane systemy: przestrzenie „multimedialne”, wirtualne środowiska, współpraca ( collaboration ) </li></ul><ul><li>Osoby (ludzie) </li></ul><ul><ul><li>Nazwa, wygląd, status, rola, itd. </li></ul></ul><ul><li>Artefakty </li></ul><ul><ul><li>Obiekty używane (lub wyprodukowane) podczas interakcji pomiędzy osobami </li></ul></ul><ul><li>Zadania i aktywności </li></ul><ul><ul><li>Cele, zadania, scenariusze wykonania, czynności do wykonania </li></ul></ul><ul><li>Sytuacje „interaktywne” </li></ul><ul><ul><li>Relacje pomiędzy osobami, czas i przestrzeń </li></ul></ul><ul><li>Protokoły „interaktywne” </li></ul><ul><ul><li>Wykorzystywane do komunikacji i wymiany informacji </li></ul></ul>
    8. 8. Cechy aplikacji pracy grupowej <ul><li>Podstawowymi funkcjami aplikacji pracy grupowej są z reguły: </li></ul><ul><ul><li>poczta elektroniczna , służąca do bezpośredniej wymiany informacji. </li></ul></ul><ul><ul><li>zarządzanie dokumentami zarówno tekstowymi, jak i różnego rodzaju informacją (np. grafika, wideo, pliki dźwiękowe, inne). </li></ul></ul><ul><ul><li>harmonogram zadań . </li></ul></ul><ul><ul><li>rozbudowane przesyłanie wiadomości pocztowych wraz z ich dekretacją. </li></ul></ul><ul><ul><li>definiowanie i zarządzanie przepływem pracy . </li></ul></ul><ul><ul><li>odpowiednie prawa dostępu (bezpieczeństwo danych) . </li></ul></ul>
    9. 9. IBM Lotus Domino 8 oraz środowisko Domino Designer <ul><ul><li>Wprowadzenie do platformy IBM Lotus Domino 8 </li></ul></ul>
    10. 10. Platforma Lotus Notes Domino (1) <ul><li>Zintegrowana komunikacja: </li></ul><ul><ul><li>Poczta elektroniczna, kalendarze, lista czynności do wykonania. </li></ul></ul><ul><li>Szablony, na podstawie których można tworzyć nowe aplikacje: </li></ul><ul><ul><li>Baza dyskusyjna, biblioteka dokumentów ( workflow ), blog, zarządzanie projektami ( TeamRoom ). </li></ul></ul><ul><li>Bazy i aplikacje dostępne w Lotus Notes i WWW. </li></ul><ul><li>Narzędzie do tworzenia nowych baz dokumentów (Domino Designer). </li></ul><ul><li>Możliwość rozszerzenia za pomocą Lotus Expeditor (Eclipse i aplikacje kompozytowe). </li></ul>
    11. 11. Platforma Lotus Notes Domino (2) <ul><li>Architektura typu klient – serwer: </li></ul><ul><ul><li>klientem może być Lotus Notes. </li></ul></ul><ul><ul><li>klientem może być również przeglądarka WWW. </li></ul></ul><ul><ul><li>z zasobów serwera można też korzystać z urządzeń mobilnych. </li></ul></ul><ul><li>Serwer pracujący na wszystkich znanych platformach sprzętowych: </li></ul><ul><ul><li>systemy MS Windows. </li></ul></ul><ul><ul><li>inne systemy IBM, jak np. AS/400 (iSeries). </li></ul></ul><ul><ul><li>Sun Solaris. </li></ul></ul><ul><ul><li>Linux. </li></ul></ul><ul><li>Na serwerze Domino mogą być uruchomione różne zadania, np.: </li></ul><ul><ul><li>router - odpowiedzialny za pocztę elektroniczną. </li></ul></ul><ul><ul><li>replica – proces replikacji danych pomiędzy serwerami. </li></ul></ul><ul><ul><li>http – serwer WWW. </li></ul></ul>SERWER DOMINO APLIKACJE DOMINO TELEFONY (np. BlackBerry) Lotus Notes/Outlook/Inny WWW Dostęp off-line
    12. 12. Platforma Lotus Notes Domino (3). Typy klientów. <ul><li>Lotus Notes – natywny klient dla aplikacji Domino (poczta, aplikacje): </li></ul><ul><ul><li>Lotus Notes Basic – podstawowa wersja klienta Notes (technologia Notes). </li></ul></ul><ul><ul><li>Lotus Notes Standard – rozbudowana wersja klienta Notes (technologia Notes i Java). </li></ul></ul><ul><li>Domino Web Access for MS Outlook (DAMO) – konektor dla MS Outlook. </li></ul><ul><li>Lotus Domino Designer – środowisko do projektowania aplikacji Domino (np. za pomocą tzw. „formula language”). </li></ul><ul><li>Lotus Domino Administrator – klient administracyjny (z tego poziomu administrujemy serwerami). </li></ul>
    13. 13. Platforma Lotus Notes Domino (4). Typy klientów. <ul><li>IBM Lotus Notes – korzysta z protokołu Notes NPRC w celu wymiany poczty z serwerem Domino (Notes, Internet): </li></ul><ul><ul><li>Wersja podstawowa (Basic) – oparta głownie na technologii Notes: </li></ul></ul><ul><ul><ul><li>nlnotes.exe – uruchamia wersję Basic </li></ul></ul></ul><ul><ul><li>Wersja Standardowa (Standard) – technologia Notes / Eclipse / Expeditor </li></ul></ul><ul><ul><ul><li>notes.exe – uruchamia wersję Standard </li></ul></ul></ul><ul><li>Domino Web Access – klient pocztowy dostępny przez przeglądarkę (protokół HTTP) </li></ul><ul><li>Internet mail – korzysta z pliku poczty poprzez POP3, IMAP lub serwery HTTP. Poczta jest wymieniana za pomocą protokołu SMTP. </li></ul><ul><li>Można też używać MS Outlook – Domino Web Access for MS Outlook ( DAMO ). </li></ul>
    14. 14. Platforma Lotus Notes Domino (5). Lotus Notes 8. <ul><li>Dwie konfiguracje Lotus Notes : </li></ul><ul><ul><li>Ze względu na wymagania sprzętowe mamy dwie konfiguracje programu lotus Notes 8: </li></ul></ul><ul><ul><ul><li>Podstawowa </li></ul></ul></ul><ul><ul><ul><li>Standardowa </li></ul></ul></ul><ul><li>Mają one różną funkcjonalność </li></ul><ul><li>Podstawowa funkcjonalnością zbliżona jest do Lotus Notes 7 </li></ul>
    15. 15. Platforma Lotus Notes Domino (6). Notes Standard. Konfiguracja standardowa oparta jest na technologii Lotus oraz Lotus Expeditor. Lotus Expeditor dostarcza nowych możliwości klienta LN: pasek tytułu, pasek menu, “Open List” , zarządzanie zakładkami, pasek stanu, itp. Lotus Expeditor odpowiada również za wygląd (global.css, który można zmienić).
    16. 16. Platforma Lotus Notes Domino (7). Notes Basic. <ul><li>Konfiguracja podstawowa (Basic) jest całkowicie wykonana w technologii Lotus. </li></ul><ul><li>Oferuje podobną funkcjonalność jak wersja Standard, ale nieco się od niej różni (wizualnie, niektóre elementy okna). </li></ul><ul><li>Pełny opis różnić pomiędzy wersjami znajduje się w dokumentacji programu. </li></ul>
    17. 17. Platforma Lotus Notes Domino (8). Poczta elektroniczna. <ul><li>Tworzenie i wysyłanie wiadomości pocztowych </li></ul><ul><li>Odbieranie wiadomości, tworzenie odpowiedzi na nie różne rodzaje odpowiedzi </li></ul><ul><li>Podgląd wiadomości pocztowych </li></ul><ul><li>Tworzenie folderów </li></ul><ul><li>Zarządzanie dokumentami </li></ul><ul><li>Zmiana kolejności kolumn </li></ul><ul><li>Archiwizacja dokumentów </li></ul><ul><li>Podpisy cyfrowe </li></ul><ul><li>Szyfrowanie dokumentów </li></ul><ul><li>Nowe: np. odwoływanie wiadomości. </li></ul>
    18. 18. Platforma Lotus Notes Domino (9). Kalendarz. <ul><li>Zarządzanie kalendarzem, pozycjami kalendarza </li></ul><ul><li>Tworzenie wpisów do kalendarza (np. termin) </li></ul><ul><li>Organizowanie spotkań firmowych, zarządzanie spotkaniami </li></ul><ul><li>Odpowiedzi użytkowników na zaproszenia na spotkania (tzw. Opcje właściciela i uczestnika spotkania) </li></ul><ul><li>Tworzenie wpisów powtarzających się, np. ze zdefiniowanymi regułami </li></ul><ul><li>Nieobecność w biurze… </li></ul><ul><li>Tworzenie listy czynności do wykonania </li></ul><ul><li>Możliwość przydzielania zadań </li></ul><ul><li>Nowe pozycje kalendarza </li></ul>
    19. 19. Platforma Lotus Notes Domino (10). DWA. <ul><li>dostęp przez przeglądarkę do poczty Domino </li></ul><ul><li>pełna funkcjonalność: </li></ul><ul><ul><li>poczta </li></ul></ul><ul><ul><li>kalendarz </li></ul></ul><ul><ul><li>zadania </li></ul></ul><ul><ul><li>dziennik </li></ul></ul><ul><ul><li>adresy </li></ul></ul><ul><li>obsługa MS IE & Mozilla Firefox. </li></ul><ul><li>możliwość pracy offline (DOLS). </li></ul><ul><li>nowy, wygodny interfejs </li></ul><ul><li>drag & drop. </li></ul>
    20. 20. IBM Lotus Domino 8 oraz środowisko Domino Designer <ul><ul><li>Przegląd przykładowych aplikacji Domino </li></ul></ul>
    21. 21. Aplikacje (bazy danych) Domino <ul><li>Zwiększają wielkość tzw. procesu biznesowego, pomagają wzmocnić ten proces. </li></ul><ul><li>Pozwalają ludziom na szybką komunikację, bez względu na to, gdzie się oni znajdują. </li></ul><ul><li>Maksymalizują współpracę osób w firmie. </li></ul>Aplikacje Lotus Notes Domino pozwalają na tworzenie, komunikowanie, udostępnianie, śledzenie danych opartych na dokumentach.
    22. 22. Definicja bazy danych Domino <ul><li>Baza danych Domino jest czymś w rodzaju kontenera dla aplikacji i wszystko jest przechowywane razem w jednym pliku: </li></ul><ul><ul><li>design elements : dokumenty projektu aplikacji (formularze i inne) </li></ul></ul><ul><ul><li>data : dokumenty z danymi </li></ul></ul><ul><ul><li>logic : zapisane „logika” działania aplikacji (języki projektowania) </li></ul></ul><ul><ul><li>ACL ( Access Control List ) – prawa dostępu do aplikacji </li></ul></ul><ul><li>Plik ten ma rozszerzenie NSF ( Notes Storage Facility ) </li></ul><ul><li>Plik bazy danych może mieć również rozszerzenie NTF ( Notes Template File ), ale zwykle jest to rozszerzenie szablonu bazy danych. </li></ul>
    23. 23. Aplikacje w IBM Lotus Notes Domino 8 <ul><li>W platformie IBM Lotus Notes Domino dostępne są szablony (między innymi): </li></ul><ul><ul><li>Poczta elektroniczna – jej działanie (Notes, WWW). </li></ul></ul><ul><ul><li>Dziennik osobisty – kontener dokumentów, podstawowe formularze. </li></ul></ul><ul><ul><li>Baza dyskusyjna (podstawowe dokumenty, dziedziczenie informacji pomiędzy dokumentami, różne widoki). </li></ul></ul><ul><ul><li>Biblioteka dokumentów MS Office – formularze, możliwość zadeklarowania przepływu ( workflow ) lub Biblioteka dokumentów Document Library (polska wersja językowa). </li></ul></ul><ul><ul><li>Team Room – zarządzanie projektami, różne formularze oraz prawa dostępu do części aplikacji. </li></ul></ul><ul><ul><li>Blog – blog firmowy. </li></ul></ul>
    24. 24. Jak utworzyć nową aplikację (bazę danych)? <ul><li>Aby utworzyć plik „pustej” bazy danych: </li></ul><ul><ul><li>Z menu File wybieramy polecenie Aplication/New. </li></ul></ul><ul><ul><li>W oknie New Application podajemy opisową nazwę dla tworzonej bazy danych. </li></ul></ul><ul><ul><li>Podajemy również nazwę pliku NSF (zalecane 8 znaków). </li></ul></ul><ul><li>Uwaga : we wstępnej fazie projektu bazę tworzymy na stacji roboczej projektanta (server: local) </li></ul>
    25. 25. Dziennik osobisty ( personal journal ) <ul><li>Ta aplikacja jest zaprojektowana do przechowywania prywatnych dokumentów, które nie powinny być dostępne dla innych użytkowników. </li></ul><ul><li>Zwykle aplikacja jest dostępna na lokalnym komputerze, ale można z niej korzystać z poziomu WWW. </li></ul><ul><li>Aplikacja jest dość prosto zaprojektowana i może być zastosowana do innych projektów. </li></ul>
    26. 26. Baza dyskusyjna ( discussion database ) <ul><li>Baza dyskusyjna jest „zwyczajnym” forum dyskusyjnym. Od strony projektowania warto prześledzić: </li></ul><ul><ul><li>Różne rodzaje odpowiedzi i dziedziczenie danych pomiędzy dokumentami. </li></ul></ul><ul><ul><li>Widoki hierarchiczne oraz liczbę dostępnych odpowiedzi. </li></ul></ul><ul><li>Forum dyskusyjne może być dostępne również przez przeglądarkę WWW. </li></ul>
    27. 27. Biblioteka dokumentów ( MS Office document library ) <ul><li>Biblioteka dokumentów pozwala na zarządzanie nimi według określonego procesu workflow . </li></ul><ul><li>W aplikacji wbudowano proste obiegi dokumentów oraz informowanie za pomocą poczty elektronicznej. </li></ul>
    28. 28. Team Room (1) <ul><li>Szablon TeamRoom pozwala na łatwe i zarządzanie projektem (dokumenty, zadania, workflow ). </li></ul><ul><li>W aplikacji TeamRoom warto zwrócić uwagę na różnego rodzaju widoki (wyrażenia selekcji) oraz profilowanie dostępu. </li></ul>
    29. 29. IBM Lotus Domino 8 oraz środowisko Domino Designer <ul><ul><li>Przegląd środowiska IBM Lotus Domino Designer 8 </li></ul></ul>
    30. 30. Przegląd środowiska IBM Lotus Domino Designer 8.X (1) <ul><li>Domino Designer jest środowiskiem do tworzenia i modyfikowania elementów projektu aplikacji. </li></ul>
    31. 31. Przegląd środowiska IBM Lotus Domino Designer 8.X (2) <ul><li>Mamy następujące elementy Domino Designer: </li></ul><ul><ul><li>Design Pane . </li></ul></ul><ul><ul><li>Design List . </li></ul></ul><ul><ul><li>Work Pane . </li></ul></ul><ul><ul><li>Programmer’s Pane . </li></ul></ul><ul><ul><li>Programmer’s Pane InfoList . </li></ul></ul><ul><ul><li>Objects . </li></ul></ul><ul><ul><li>Reference . </li></ul></ul>
    32. 32. Przegląd środowiska IBM Lotus Domino Designer 8.X (3) <ul><li>Aby otworzyć istniejącą aplikację Domino w programie Domino Designer: </li></ul><ul><ul><li>Klikamy prawym klawiszem myszy na ikonę aplikacji. </li></ul></ul><ul><ul><li>Wybieramy polecenie Open in Designer . </li></ul></ul>
    33. 33. Przegląd środowiska IBM Lotus Domino Designer 8.X (4). Design Pane . <ul><li>Panel znajduje się po lewej stronie klienta Domino Designer. </li></ul><ul><li>Działa identycznie jak pasek zakładek w programie Lotus Notes: </li></ul><ul><ul><li>Projektowane (otwierane) aplikacje są automatycznie dodawane do zakładek. </li></ul></ul><ul><ul><li>Zakładki można usuwać. </li></ul></ul>
    34. 34. Przegląd środowiska IBM Lotus Domino Designer 8.X (5). Design List . <ul><li>Po wybraniu elementu projektu w bazie danych po prawej stronie ekranu pojawiają się dokumenty wybranego typu oraz ich podstawowe właściwości (między innymi: nazwa, datę ostatniej modyfikacji, dostępność w różnych typach klientów). </li></ul>
    35. 35. Przegląd środowiska IBM Lotus Domino Designer 8.X (6). Work Pane . <ul><li>Po otwarciu np. formularza (lub innego elementu projektu) otwiera się panel, który pozwala na modyfikację elementów projektu. </li></ul>
    36. 36. Przegląd środowiska IBM Lotus Domino Designer 8.X (7). Programmer’s Pane . <ul><li>Panel ten przeznaczony jest dla projektantów / programistów. W panelu tym dodaje się elementy programistyczne: </li></ul><ul><ul><li>@Formula language . </li></ul></ul><ul><ul><li>@Command language . </li></ul></ul><ul><ul><li>Lotus Script . </li></ul></ul><ul><ul><li>... </li></ul></ul>
    37. 37. Przegląd Domino Designer 8.X (8). Programmer’s Pane InfoList . Objects Tab . <ul><li>Po lewej stronie panelu programistycznego znajduje się InfoList : </li></ul><ul><ul><li>Zakładka Objects – wyświetla obiekty istniejące w dokumencie projektowym. </li></ul></ul><ul><ul><li>Zakładka Reference – ułatwia dostęp do możliwości programistycznych. </li></ul></ul>
    38. 38. Przegląd środowiska IBM Lotus Domino Designer 8.X (9). Reference Tab . <ul><li>Zakładka Reference jest punktem dostępu do systemu pomocy Domino Designer. Jej zawartość zmienia się w zależności od wybranego języka programowania. </li></ul>
    39. 39. Filmy demonstracyjne (1) <ul><li>Zasada działania aplikacji (dyskusja). </li></ul><ul><li>Zasada działania aplikacji (biblioteka dokumentów). </li></ul><ul><li>Zasada działania aplikacji TeamRoom. </li></ul><ul><li>Przeglądanie właściwości aplikacji Domino (okno właściwości). </li></ul><ul><li>Otwieranie gotowej aplikacji w Domino Designer. </li></ul><ul><li>Przegląd programu Domino Designer. </li></ul>
    40. 40. Praca z elementami projektu aplikacji Sposoby tworzenia aplikacji
    41. 41. Podstawowe rodzaje baz danych i aplikacji <ul><li>Broadcast – baza danych dająca użytkownikowi możliwość aktualizowania nowych wiadomości poprzez pocztę elektroniczną. Przykładem takiej bazy może być dystrybucja i rozsyłanie nowości. </li></ul><ul><li>Discussion – bazy danych tego rodzaju „śledzą” tematy główne i odpowiedzi do nich. Są one bardzo pomocne do współdzielenia informacji w różnorakich środowiskach. </li></ul><ul><li>Reference – są często określane mianem biblioteki dokumentów. Przechowują informacje, które w każdej chwili mogą zostać uaktualnione. </li></ul><ul><li>Tracking – w tych bazach dokumentów, dokumenty papierowe (i ich przepływ) zostały przeniesione na ich postać elektroniczną. Te bazy określają status i kategorię dokumentów w sposób automatyczny. </li></ul><ul><li>Workflow – tego rodzaju aplikacje przesyłają informacje w całym procesie lub cyklu. Ma to zastosowanie, kiedy kilka osób musi przeglądać informacje. </li></ul>
    42. 42. Etapy projektowania aplikacji <ul><li>Rozpoznać potrzeby firmy. </li></ul><ul><li>Rozrysować plan bazy danych na papierze i przedyskutować jej działanie z potencjalnymi użytkownikami. </li></ul><ul><li>Utworzyć plik bazy (*.nsf) lub kilka plików, jeśli jest to niezbędne. </li></ul><ul><li>Utworzyć formularze i zdefiniować odpowiednio pola. </li></ul><ul><li>Utworzyć widoki (np. w oparciu o nazwy wstawionych pól) lub inne elementy projektu bazy danych. </li></ul><ul><li>Zdefiniować ACL, czyli kto może mieć dostęp do bazy danych. </li></ul><ul><li>Utworzyć dokument „O bazie danych”. </li></ul><ul><li>Utworzyć odpowiednią dokumentację i zaprojektować ikonę. </li></ul><ul><li>Skopiować na serwer i przetestować. </li></ul><ul><li>Poprawić projekt, zastosować do bazy. </li></ul><ul><li>Przeszkolić użytkowników aplikacji. </li></ul>
    43. 43. Sposoby tworzenia aplikacji (1) <ul><li>Mamy następujące możliwości utworzenie nowych aplikacji: </li></ul><ul><ul><li>Na podstawie projektu istniejącej bazy danych (kopiowanie aplikacji). </li></ul></ul><ul><ul><li>Utworzenie aplikacji od początku za pomocą szablonu Blank . </li></ul></ul><ul><ul><li>Na podstawie gotowego szablonu. </li></ul></ul>
    44. 44. Sposoby tworzenia aplikacji (2) <ul><li>Podczas tworzenia aplikacji z szablonu domyślnie włączona jest opcja Inherit future design changes. </li></ul><ul><li>Oznacza to, że utworzona aplikacja będzie „dziedziczyła” przyszłe zmiany w szablonie. </li></ul><ul><ul><li>Na serwerze uruchamiane jest zadanie Designer , które odpowiada za odświeżanie zmian z szablonów aplikacji. </li></ul></ul><ul><li>Opcję można wyłączyć we właściwościach aplikacji. </li></ul>
    45. 45. Sposoby tworzenia aplikacji (3) <ul><li>Baza danych Domino jest czymś w rodzaju kontenera dla aplikacji i wszystko jest przechowywane razem w jednym pliku NSF ( Notes Storage Facility ). </li></ul><ul><ul><li>design elements: dokumenty projektu aplikacji (formularze i inne). </li></ul></ul><ul><ul><li>data : dokumenty z danymi. </li></ul></ul><ul><ul><li>logic : zapisane „logika” działania aplikacji (języki projektowania). </li></ul></ul><ul><ul><li>ACL (Access Control List) – prawa dostępu do aplikacji. </li></ul></ul><ul><li>Podczas tworzenia bazy danych z szablonu „pobierane” są wszystkie elementy projektu. </li></ul><ul><li>Szablon Blank ma jedynie domyślny widok ( Untitled ) oraz wstępnie ustalone ACL. </li></ul>
    46. 46. Elementy aplikacji Domino (1) <ul><li>Framesets – zestawienie ramek, które są stosowane do oddania struktury aplikacji. </li></ul><ul><li>Pages : element, który jest używany jedynie do wyświetlania informacji, nie zawiera żadnych pól. </li></ul>
    47. 47. Elementy aplikacji Domino (2) <ul><li>Forms – formularze są stosowane do zbierania informacji od użytkownika oraz prezentowania użytkownikowi informacji. </li></ul><ul><li>Formularze dają ustrukturyzowane podejście do tworzenia i wyświetlania dokumentów. </li></ul><ul><li>Formularze zwykle mają pola, które obliczają dane lub je przechowują. Dane te są wpisywane przez użytkownika aplikacji. </li></ul><ul><li>Kiedy użytkownik wypełni formularz i go zapisze tworzony jest dokument. Dokument jest przechowywany poza formularzem. Kiedy jest on otwierany używany jest formularz do wyświetlenia dokumentu. </li></ul>
    48. 48. Elementy aplikacji Domino (3) <ul><li>Views – widok stanowi listę dokumentów przechowywanych w aplikacji. </li></ul><ul><li>Widok może wyświetlać dokumenty w sposób posortowany, na przykład alfabetycznie według nazwiska. </li></ul><ul><li>Widok może być także kategoryzowany (wyświetlać dokumenty według zadanych kategorii). </li></ul><ul><li>Każda aplikacja musi mieć przynajmniej jeden widok. </li></ul><ul><li>Folders – foldery są kontenerem dla powiązanych ze sobą dokumentów. </li></ul><ul><li>Foldery mają niemalże identyczne właściwości jak widoki. </li></ul><ul><li>Podstawowa różnica pomiędzy widokiem a folderem: </li></ul><ul><ul><li>Widoki mają zawsze wyrażenie selekcji. </li></ul></ul><ul><ul><li>Zawartość folderu wynika z działań użytkownika. </li></ul></ul>
    49. 49. Elementy aplikacji Domino (4) <ul><li>Agents – agentów stosuje się do automatyzacji działań użytkownika. Mogą być uruchamiane przez użytkownika, ale mogą działać w tle. Agenci mogą wykonywać proste czynności (np. przenoszenie dokumentów), mogą być bardziej skomplikowane (np. Napisane w języku Java). </li></ul><ul><li>Web Services – jest to aplikacja modularna ( self-contained, self-describing ) , która bazuje na języku XML. Wymaga znajomości Lotus Script, języka Java i należy do zaawansowanych elementów projektowych. </li></ul>
    50. 50. Elementy aplikacji Domino (5) <ul><li>Outlines – struktury pozwalają na zaprojektowanie sposobu poruszania się po aplikacji. </li></ul><ul><li>Subforms – podformularz to zestawienie elementów projektowych, które są przechowywane jako osobny obiekt. </li></ul><ul><ul><li>Główną ideą tworzenia i stosowania podformularzy jest ich łatwość ponownego użycia oraz modyfikowania. </li></ul></ul>
    51. 51. Elementy aplikacji Domino (6) <ul><li>Shared fields – w aplikacji Domino można zdefiniować pole wspólne ( Shared Field ). Pole takie może być dodane do wszystkich projektowanych formularzy. Pola takie są bardzo użyteczne, na przykład do wyświetlania autora dokumentu oraz daty utworzenia dokumentu. </li></ul><ul><li>Shared columns - :kolumny w widoku mogą być wspólne, co daje możliwość wstawiania ich do wielu widoków jednocześnie. </li></ul><ul><li>Actions – czynności są stosowane do automatyzacji fragmentów aplikacji. Mogą być używane w formularzach, stronach, widokach. </li></ul><ul><li>Script libraries – biblioteka skryptów przechowuje wspólny kod, który używany jest w aplikacji ( LotusScript, JavaScript , Java ) . </li></ul>
    52. 52. Elementy aplikacji Domino (7) <ul><li>Image resources – aplikacje mogą przechowywać pliki graficzne. Pliki te mogą być wstawione do różnych elementów aplikacji. </li></ul><ul><li>Data connections – służy do zdefiniowania polaczenia pomiędzy aplikacją Domino a zewnętrzną aplikacją (np. DB2, baza danych Oracle). </li></ul><ul><li>Database resources – zasoby aplikacji: </li></ul><ul><ul><li>Icon – ikona / grafika służąca do identyfikacji aplikacji. </li></ul></ul><ul><ul><li>About Database – opcjonalny dokument opisujący funkcjonalność aplikacji dla użytkowników. </li></ul></ul><ul><ul><li>Using Database – dokument opisujący sposób działania aplikacji. </li></ul></ul><ul><ul><li>Database script – program LotusScript , powiązany z aplikacją. </li></ul></ul><ul><ul><li>Design Synopsis – raport o zaprojektowanej aplikacji. </li></ul></ul>
    53. 53. Filmy demonstracyjne (2) <ul><li>Tworzenie nowej aplikacji w oparciu o szablon. </li></ul><ul><li>Kopiowanie aplikacji Domino. </li></ul><ul><li>Tworzenie „pustego” pliku bazy danych (*.NSF). </li></ul><ul><li>Przegląd wybranych elementów projektowych aplikacji. </li></ul>
    54. 54. Ćwiczenie 1 <ul><li>Wstępna analiza aplikacji FREETIME </li></ul>
    55. 55. Praca z elementami projektu aplikacji Praca z formularzami ( Forms )
    56. 56. Formularze w aplikacji Domino (1) <ul><li>Rozróżniamy trzy rodzaje (typy) formularzy: </li></ul><ul><ul><li>Document – główny dokument bazy danych. </li></ul></ul><ul><ul><li>Response – dokument typu „odpowiedź”. </li></ul></ul><ul><ul><li>Response to Response – dokument typu „odpowiedź do odpowiedzi”. </li></ul></ul><ul><li>Nazwa formularza: </li></ul><ul><ul><li>jest tzw. case sensitive. </li></ul></ul><ul><ul><li>Maksymalnie 264 znaki. </li></ul></ul><ul><ul><li>W menu Create pokazywane są tylko pierwsze 64 znaki. </li></ul></ul><ul><li>Mogą mieć synonimy (np. Nowy dokument | Dokument: </li></ul><ul><ul><li>Synonimy są używane np. w formułach. </li></ul></ul><ul><ul><li>Zmieniają nazwę, która jest widziana przez użytkowników. </li></ul></ul>
    57. 57. Formularze w aplikacji Domino (2) <ul><li>Aby utworzyć nowy formularz: </li></ul><ul><ul><li>Otworzyć aplikację w Domino Designer. </li></ul></ul><ul><ul><li>Wybrać widok Forms (domyślny) i kliknąć przycisk New Form . </li></ul></ul><ul><ul><li>Nowy formularz otwiera się automatycznie w panelu roboczym ( Work Pane ). </li></ul></ul><ul><li>Rekomendowane jest stosowanie aliasów / synonimów. </li></ul><ul><li>Są one widoczne w menu Create dla potencjalnego użytkownika. </li></ul><ul><li>Alias jest przechowywany w polu Form , które jest tworzone automatycznie. </li></ul><ul><li>Alias może być używany przez projektantów w tworzonych formułach. </li></ul>
    58. 58. Formularze w aplikacji Domino (3) <ul><li>Każdy element ma swoje właściwości (okno właściwości). </li></ul><ul><li>Właściwości formularza kontrolują wiele aspektów aplikacji. </li></ul><ul><li>Niektóre automatycznie wpływają na wygląd przechowywanych w aplikacji dokumentów, pozostałe wymagają ich odświeżenia (np. za pomocą agentów). </li></ul>
    59. 59. Formularze w aplikacji Domino (4). Form Info . <ul><li>Name : Nazwa formularza oraz alias / synonim. </li></ul><ul><li>Comment : Pomocny komentarz dla projektanta (opis). </li></ul><ul><li>Type : Rodzaj projektowanego formularza. </li></ul><ul><li>Display : Definicja, gdzie będzie widoczna nazwa formularza. </li></ul><ul><li>Versioning : Domyślnie zapisywane jest jedna wersja dokumentu, zapisywana po jego edycji. Dokumenty te mogą być wersjonowane, sam sposób przechowywania wersji można zdefiniować. </li></ul>
    60. 60. Formularze w aplikacji Domino (5). Form Info . <ul><li>Store form in document . Jeśli opcja ta zostanie zaznaczona, wtedy za każdym razem formularz jest zapisywany z dokumentem. UWAGA: Zwiększa się wielkość aplikacji. </li></ul><ul><li>Automatically refresh fields . Opcja ta określa sposób przeliczenia pól obliczanych w formularzu. Brak zaznaczenia powoduje konieczność ręcznego przeliczania pól. </li></ul><ul><li>Anonymous form . Gdy opcja nie jest zaznaczona Notes automatycznie dodaje $UpdatedBy do każdego formularza. Pole to „śledzi” każdego użytkownika, który edytuje formularz. Gdy opcja jest zaznaczona tworzone jest pole $Anonymous z wartością “ “. </li></ul><ul><li>No initial focus . Domyślnie, gdy użytkownik tworzy nowy dokument kursor wstawiany jest w pierwszym polu do edycji. Zaznaczenie tej opcji powoduje, ze kursor nie jest widoczny. </li></ul><ul><li>Sign documents that use this form . Opcja ta powoduje utworzenie pola $Signature , które zawiera zaszyfrowany podpis cyfrowy, pochodzący z pliku ID użytkownika tworzącego dokument. </li></ul>
    61. 61. Formularze w aplikacji Domino (6). Form Info . <ul><li>Render pass through HTML in Notes . Po zaznaczeniu tej opcji Domino tłumaczy wszystko dla przeglądarki WWW (np. nie są wyświetlane zagnieżdżone widoki). </li></ul><ul><li>Do not add field names to index . Zaznaczenie tej opcji powoduje, że nazwa pola nie jest dodawana do indeksu. I nie jest przechowywana w pamięci aplikacji. </li></ul><ul><li>Allow Autosave . Pozwala na zdefiniowanie automatycznego zapisu dokumentu, co X minut. Wymaga to też zaznaczenia odpowiedniej opcji w ustawieniach programu Lotus Notes. </li></ul><ul><li>Conflict handling . Definiuje sposób postępowania z konfliktami replikacji / zapisu: </li></ul><ul><ul><li>Create conflicts. </li></ul></ul><ul><ul><li>Merge conflicts. </li></ul></ul><ul><ul><li>Create no conflicts. </li></ul></ul>
    62. 62. Formularze w aplikacji Domino (7). Defaults . <ul><li>On Create . Opcje, które określają sposób dziedziczenia danych z dokumentu „rodzica”. </li></ul><ul><li>On Open . Opcje określające stan dokumentu w momencie jego otwarcia: </li></ul><ul><ul><li>Edit mode – jeśli użytkownik powinien mieć możliwość edycji. </li></ul></ul><ul><ul><li>Show context pane – pokazuje się powiązany dokument w osobnym panel ( Parent , Doclink ) . </li></ul></ul>
    63. 63. Formularze w aplikacji Domino (8). Defaults . <ul><li>On Close . Wybór tej opcji powoduje pojawienie się odpowiedniego komunikatu. </li></ul><ul><li>On Web Access . Opcja powiązana z &quot;Treat document contents as HTML . Kiedy “Generate HTML for all fields” zostanie zaznaczona, generowany jest HTML zawierający wszystkie ukryte pola na formularzu. </li></ul><ul><li>Dodatkowo można zdefiniować kolorystykę łączy / linków w generowanym kodzie HTML. </li></ul><ul><li>Data source options : Opcje używane, jeśli łączymy aplikację z inną, relacyjną bazą danych. </li></ul>
    64. 64. Formularze w aplikacji Domino (9). Launch Properties . <ul><li>Auto Launch . Można zdefiniować, co ma być uruchamiane podczas otwierania dokumentu (po jego zapisaniu). Opcja ta nie dotyczy zastosowania formularza lecz już utworzonego dokumentu. </li></ul><ul><li>Auto Frame . Opcja ta ma wpływ na formularz oraz na dokumenty utworzone za jego pomocą. Określa sposób uruchomienia formularza (dokumentu). </li></ul>
    65. 65. Formularze w aplikacji Domino (10). Form Background . Header Properties . <ul><li>Color Use . Umożliwia zdefiniowanie koloru formularza. </li></ul><ul><li>Graphic or Resource. Umożliwia zdefiniowanie tła formularza. </li></ul><ul><li>Allow users to change these properties – pozwala na zmianę koloru lub grafiki przez użytkownika (dokument). </li></ul><ul><li>Add header to form . Umożliwia dodanie nagłówka do formularza / dokumentu. </li></ul><ul><li>Size Properties oraz Border Properties to opcje pozwalające na kontrolę wstawianego nagłówka. </li></ul>
    66. 66. Formularze w aplikacji Domino (11). Printing Properties . Security . <ul><li>Printing properties . Opcje, które pozwalają na zdefiniowanie dodatkowego tekstu pojawiającego się podczas wydruku dokumentów (nagłówek firmowy). </li></ul><ul><li>Security. Opcje określające, kto może czytać (tworzyć) dokumenty utworzone za pomocą projektowanego formularza. </li></ul>
    67. 67. Formularze w aplikacji Domino (12). Zapisywanie i podgląd formularza. <ul><li>Aby obejrzeć formularz w programie Lotus Notes: </li></ul><ul><ul><li>Zapisz formularz (CTRL+S). </li></ul></ul><ul><ul><li>Z menu Design wybierz Preview in Notes lub Preview in Web Browser . </li></ul></ul><ul><ul><li>Można wybrać odpowiednią ikonę na pasku ikon. </li></ul></ul>
    68. 68. Właściwości tekstu (1) <ul><li>Projektując formularz można definiować ustawienia tekstu oraz akapitów. </li></ul>
    69. 69. Właściwości tekstu (2). Paragraph Hide When . Paragraph Style . <ul><li>Paragraph Hide When . Opcje te umożliwiają zdefiniowanie sposobu (przypadków) ukrycia tekstu. </li></ul><ul><li>Paragraph Style . Możliwe jest utworzenie stylów tekstu i akapitów, podobnie jak w zwykłym edytorze tekstu. </li></ul>
    70. 70. Tworzenie tabel (1). <ul><li>Tabele są bardzo przydatne, gdy chcemy odpowiednio „ułożyć” pola na formularzu: </li></ul><ul><li>Aby utworzyć nową tabelę: </li></ul><ul><ul><li>Z menu Create wybrać polecenie Table . Można też kliknąć odpowiednią ikonę na pasku ikon. </li></ul></ul><ul><ul><li>W oknie Create Table wybrać rodzaj tabeli. </li></ul></ul><ul><ul><li>Podać liczbę wierszy i kolumn, kliknąć OK . </li></ul></ul>
    71. 71. Tworzenie tabel (2). Rodzaje tabel. <ul><li>Dostępne są następujące rodzaje tabel: </li></ul><ul><ul><li>Basic Table – „standardowa” tabela. </li></ul></ul><ul><ul><li>Tabbed Table – tabela, w której wiersze przedstawione są w postaci zakładek. </li></ul></ul><ul><ul><li>Animated Table – tabela, która wyświetla kolejno wiersze na 2 sekundy. </li></ul></ul><ul><ul><li>Caption Table – każdy wiersz jest wyświetlany po kliknięciu kursorem. </li></ul></ul><ul><ul><li>Programmed Table – wyświetla wiersz w zależności od zadanych warunków. </li></ul></ul>
    72. 72. Właściwości tabeli (3). Table Layout . <ul><li>Table Layout . Podobnie jak w edytorze tekstu, opcje te pozwalają na kontrolę rozmiaru komórek oraz umiejscowienia tabeli na formularzu. </li></ul><ul><li>Opcje zaznaczone „gwiazdką” dotyczą całej tabeli, bez względu na to, która komórka tabeli została zaznaczona. </li></ul>
    73. 73. Właściwości tabeli (4). Cell Borders / Background . <ul><li>Cell Borders . Opcje pozwalające na zdefiniowanie obramowania komórek lub tabeli. </li></ul><ul><li>Table/Cell Background . Opcje pozwalające na zdefiniowanie kolorów lub grafiki w komórkach lub tabeli. </li></ul>
    74. 74. Właściwości tabeli (5). Table Borders / Margins . <ul><li>Table Borders . Opcje określające sposób obramowania tabeli. </li></ul><ul><li>Table Margins . Opcje pozwalające na kontrole marginesów tabeli. </li></ul>
    75. 75. Właściwości tabeli (6). <ul><li>Ostatnie zakładki okna właściwości tabeli zawierają specjalne opcje dotyczące programowania / sposobu wyświetlania i nazewnictwa wierszy w tabeli. </li></ul>
    76. 76. Właściwości tabeli (7). Przykłady tabel.
    77. 77. Filmy demonstracyjne (3) <ul><li>Tworzenie formularza i zapisywanie go (nazwa). </li></ul><ul><li>Dodawanie tekstu do formularza. </li></ul><ul><li>Dodawanie tabeli do formularza (typy tabel). </li></ul><ul><li>Przeglądanie projektowanego formularza w Notes. </li></ul><ul><li>Przegląd wybranych zakładek właściwości tekstu. </li></ul><ul><li>Przegląd wybranych zakładek właściwości tabeli. </li></ul><ul><li>Przegląd wybranych zakładek właściwości formularza. </li></ul>
    78. 78. Ćwiczenie 2 <ul><li>Tworzenie formularzy, formatowanie tekstu, dodawanie pól tekstowych </li></ul>
    79. 79. Praca z elementami projektu aplikacji Praca z polami w formularzu ( Fields )
    80. 80. Pola w formularzu (1). Nazwy pól. <ul><li>Pola to nazwana część formularza, która przechowuje dane wpisane przez użytkownika lub oblicza na podstawie wpisanej formuły. </li></ul><ul><li>Pola mogą wyglądać różnie dla użytkownika: </li></ul><ul><ul><li>Styl Notes ( Notes style ). </li></ul></ul><ul><ul><li>Styl OS ( native OS style ). </li></ul></ul><ul><li>Nazwa pola: </li></ul><ul><ul><li>Nie może zawierać spacji. </li></ul></ul><ul><ul><li>Musi się rozpoczynać literą, znakiem _, znakiem $ </li></ul></ul><ul><ul><li>Może zawierać numery. </li></ul></ul><ul><ul><li>Musi być unikatowa dla formularza. </li></ul></ul><ul><ul><li>Nie jest case sensitive . </li></ul></ul><ul><li>Nazwa pola powinna być opisowa, ale w miarę krótka. </li></ul><ul><li>Zwyczajowo stosuje się wielkie i małe litery, na przykład DepartmentName . </li></ul><ul><li>Niektóre nazwy są zarezerwowane: SendTo . </li></ul>
    81. 81. Pola w formularzu (2). Dodawanie pól. <ul><li>Aby dodać nowe pole do formularza: </li></ul><ul><ul><li>Z menu Create wybrać polecenie Field . Można kliknąć ikonę na paku ikon. </li></ul></ul><ul><ul><li>Wpisać nazwę pola. </li></ul></ul><ul><ul><li>Zdefiniować opcje dotyczące wstawionego pola. </li></ul></ul>
    82. 82. Pola w formularzu (3). Typy danych. <ul><li>W platformie jest dostępnych 18 typów danych dla pól w formularzach (każdy typ ma swoją ikonę, która widoczna jest podczas projektowania formularza). </li></ul>
    83. 83. Pola w formularzu (4). Właściwości pola. <ul><li>Każde pole ma swoje właściwości. Kolejno są one następujące: </li></ul><ul><ul><li>Field Info : nazwa pola, typ danych, styl. </li></ul></ul><ul><ul><li>Control : format danych, które są zależne od wybranego typu pola. Na przykład pole typu Text ma kilka opcji, pole typu Number ma ich wiele. </li></ul></ul><ul><ul><li>Advanced : pomoc do pola, separatory wielu wartości, opcje bezpieczeństwa. </li></ul></ul><ul><ul><li>Font : rozmiar czcionki, styl czcionki oraz jej atrybuty. </li></ul></ul><ul><ul><li>Alignment : sposób wyrównania, wypunktowanie, odstępy. </li></ul></ul><ul><ul><li>Hide When : opcje pozwalające na ukrycie pola, w zależności od warunków. </li></ul></ul><ul><ul><li>Field HTML : definiowanie tagów HTML. </li></ul></ul>
    84. 84. Pola w formularzu (5). Text . <ul><li>Pole typu Text : </li></ul><ul><ul><li>Domyślnym typem pola jest Text (podczas dodawania pola do formularza). Pole to pozwala na wpisywania jakichkolwiek znaków, ale nie pozwala na ich formatowanie. Jedynie projektant ma możliwość definiowania sposobu formatowania pola typu Text . </li></ul></ul><ul><ul><li>Pole typu Text nie może być stosowane w formułach matematycznych. Pole można stosować do danych typu numer telefonu, nr dokumentu tożsamości. </li></ul></ul><ul><ul><li>Dane przechowywane w polu Text muszą być konwertowane do innego typu. </li></ul></ul><ul><li>Pole typu Rich Text : </li></ul><ul><ul><li>Możliwość formatowania znaków </li></ul></ul><ul><ul><li>Możliwość importowania grafiki. </li></ul></ul><ul><ul><li>Możliwość dodawania tabel. </li></ul></ul><ul><ul><li>Możliwość przechowywania załączników. </li></ul></ul><ul><ul><li>Możliwość tworzenie sekcji tekstu. </li></ul></ul><ul><li>Jest podobne pole – Rich Text Lite , które daje możliwość wskazania typu przechowywanych obiektów. </li></ul><ul><li>Ograniczenia: </li></ul><ul><ul><li>Zawartość pola nie może zostać dodana do widoku. </li></ul></ul><ul><ul><li>Zawartość pola Rich-Text nie można połączyć z innymi rodzajami danych w formule. </li></ul></ul><ul><ul><li>Brak możliwości kontroli nad informacją wpisywaną przez użytkownika. </li></ul></ul><ul><ul><li>Maksymalna wartość pola 1 GB. </li></ul></ul>
    85. 85. Pola w formularzu (6). Pole Number . <ul><li>Number – pole numeryczne, przechowujące dane numeryczne lub np. walutowe. </li></ul><ul><li>Jest wiele opcji pozwalających na formatowanie pola. </li></ul><ul><li>Wpisanie danych tekstowych powoduje wyświetlenie komunikatu o błędzie. </li></ul>
    86. 86. Pola w formularzu (7). Pole Date/Time . <ul><li>Pole przechowuje informacje dotyczące daty i czasu. </li></ul><ul><li>Daje możliwość utworzenia w łatwy sposób „ikonki” wyboru daty (opcja Calendar /Time control ). </li></ul><ul><li>Kiedy użytkownik wpisuje datę jest ona automatycznie interpretowana. </li></ul><ul><ul><li>Jeśli jest to niemożliwe pojawia się komunikat „ Unable to Interpret Time or Date ”. </li></ul></ul><ul><li>Można wpisać tekst: </li></ul><ul><ul><li>Today . </li></ul></ul><ul><ul><li>Tomorrow . </li></ul></ul><ul><ul><li>Yesterday . </li></ul></ul>
    87. 87. Pola w formularzu (8). Listy wyboru. <ul><li>Notes umożliwia zaprezentowanie użytkownikowi listy do wyboru: </li></ul><ul><ul><li>Dialog List . </li></ul></ul><ul><ul><li>Radio Buttons . </li></ul></ul><ul><ul><li>Checkboxes . </li></ul></ul><ul><li>Choices : lista wpisów do wyboru. Domyślnie są one wpisywane w kolejnych wierszach. </li></ul><ul><li>Refresh fields on keyword change : Powoduje odświeżenie pól na formularzu, gdy użytkownik wybierze wartość (przydatne, gdy zawartość zależy od wybranej opcji). </li></ul><ul><li>Gdy opcja nie jest zaznaczona, pola zostaną odświeżone podczas zapisywania dokumentu. </li></ul><ul><li>Refresh choices on document refresh : Powoduje odświeżenie listy wyboru gdy użytkownik odświeży dokument ( F9 lub z menu View -> Refresh ). </li></ul>
    88. 88. Pola w formularzu (9). Dialog List . <ul><li>Pola Dialog List (lista dialogowa) pozwala użytkownikowi na wybranie wartości z okna dialogowego. </li></ul><ul><li>Projektant może umożliwić: </li></ul><ul><ul><li>Wyświetlanie pola „wyboru”, którego kliknięcie otwiera okno dialogowe. </li></ul></ul><ul><ul><li>Wpisanie nowych słów kluczowych przez użytkownika (opcja Allow values not in list ). </li></ul></ul><ul><ul><li>Wybór kilku wartości jednocześnie (opcja Allow Multiple Values ). </li></ul></ul>
    89. 89. Pola w formularzu (10). Checkbox . <ul><li>Można utworzyć pole, pozwalające użytkownikom na możliwość wyboru z predefiniowanych wartości: </li></ul><ul><ul><li>Listę wyboru można zdefiniować ręcznie lub za pomocą formuły. </li></ul></ul><ul><ul><li>Nie można dodać nowych słów kluczowych. </li></ul></ul><ul><ul><li>Pole można formatować za pomocą różnych opcji. </li></ul></ul>
    90. 90. Pola w formularzu (11). Radio Button . <ul><li>Pole typu Radio Button : </li></ul><ul><ul><li>Jest podobne do pola typu Checkbox , można podobnie je formatować. </li></ul></ul><ul><ul><li>Umożliwia użytkownikowi wybranie jednej tylko wartości. </li></ul></ul><ul><ul><li>Po jej wybraniu niemożliwe jest odznaczenie pola. </li></ul></ul><ul><ul><li>Użytkownik nie ma możliwości dodania nowych słów kluczowych. </li></ul></ul>
    91. 91. Pola w formularzu (12). Pola typu Names . <ul><li>Notes oferuje 3 typy pól, które związane są z nazwami użytkowników: </li></ul><ul><ul><li>Names . </li></ul></ul><ul><ul><li>Readers . </li></ul></ul><ul><ul><li>Authors . </li></ul></ul><ul><li>Pola Readers i Authors mają dodatkowe znaczenie w definiowaniu bezpieczeństwa. </li></ul>
    92. 92. Pola w formularzu (13). Pola typu Names . <ul><li>Names – pozwala na przechowywanie informacji związanych z nazwami użytkowników (funkcja @UserName). </li></ul><ul><li>Nazwy użytkowników mogą być wyświetlane w dwóch formatach: </li></ul><ul><ul><li>CN=User One/OU=Sales/O=USA (canonical). </li></ul></ul><ul><ul><li>User One/Sales/USA ( abbreviated ) . </li></ul></ul><ul><li>Użytkownik, który ma poziom dostępu Autor musi mieć prawo do edycji swojego dokumentu. W tym celu należy w dokumencie powinno znajdować się przynajmniej jedno pole typu Autor . Pole to powinno zawierać przynajmniej jednego użytkownika lub grupy. </li></ul><ul><li>Pole Readers pozwala użytkownikom na wskazania, kto może czytać ten dokument. Osoby te muszą mieć minimum poziom dostępu Reader . </li></ul><ul><li>Jeśli pole typu Readers jest puste wtedy wszyscy z poziomem dostępu Reader (czytelnik) mają do niego dostęp. </li></ul>CN=Betty Power/OU=Handel/O=RBC/C=PL Nazwa hierarchiczna użytkownika (cannonical format) Betty Power/Handel/RBC/PL Nazwa skrócona użytkownika (fully distinquished in abbreviated format)
    93. 93. Pola w formularzu (14). Inne pola. <ul><li>Color – pole tego typu pozwala na dodanie opcji wyboru koloru ( color picker ) bezpośrednio z formularza. </li></ul><ul><li>Formula - pole tego rodzaju może być użyte, by zapewnić możliwość „obsługi” prenumeraty dokumentów w projektowanej aplikacji. Jest to ważne w momencie współpracy z bazą danych headline.nsf . </li></ul><ul><li>Password – pole typu „password” przechowujące informacje związane z hasłem. </li></ul><ul><li>Time Zone – pozwala na wybór przez użytkownika odpowiedniej strefy czasowej (na przykład podczas umawiania spotkań w kalendarzu). </li></ul>
    94. 94. Pola w formularzu (15). <ul><li>Dla przypomnienia: </li></ul><ul><ul><li>Nazwa pola powinna być unikalna dla pojedynczego formularza. </li></ul></ul><ul><ul><li>Nazwa nie może rozpoczynać się od liczby. </li></ul></ul><ul><ul><li>Niektóre znaki (na przykład $, @ są zarezerwowane. </li></ul></ul><ul><li>Istnieją następujące podziały pól, które dodajemy do formularzy: </li></ul><ul><ul><li>Podział według „sposobu” przeliczania. </li></ul></ul><ul><ul><li>Podział według rodzaju danych. </li></ul></ul>Pola (FIELDS) Single Use Wspólne (SHARED) Edytowalne Obliczane Typy danych
    95. 95. Pola w formularzu (16). Pola Shared . <ul><li>Tworzone pola są zawsze na początku typu single-use (zastosowanie tylko dla pojedynczego formularza). </li></ul><ul><li>Aby pole można byłoby zastosować w kilku formularzach należy zmienić jego typ na Shared . </li></ul><ul><li>Przykłady pół typu Shared : </li></ul><ul><ul><li>Autor dokumentu. </li></ul></ul><ul><ul><li>Data utworzenia dokumentu. </li></ul></ul><ul><li>Pole współdzieli jedynie swoją definicję. </li></ul><ul><ul><li>Typ danych. </li></ul></ul><ul><ul><li>Definicję sposobu obliczania (Editable, computed). </li></ul></ul><ul><ul><li>Formuły. </li></ul></ul><ul><li>Pola tego rodzaju nie współdzielą: </li></ul><ul><ul><li>Czcionki (styl, rozmiar). </li></ul></ul><ul><ul><li>Akapity (styl, wyrównanie). </li></ul></ul><ul><ul><li>Opcje ukrywania. </li></ul></ul>
    96. 96. Pola w formularzu (17). Pola Shared . <ul><li>Aby zdefiniować nowe pole typu Shared : </li></ul><ul><ul><li>W Domino Designer wybrać Resources -> Shared Fields. </li></ul></ul><ul><ul><li>Kliknąć przycisk New Shared Field . </li></ul></ul><ul><ul><li>Nazwać pole i zdefiniować właściwości. </li></ul></ul><ul><ul><li>Zapisać pole, zamknąć okno. </li></ul></ul><ul><li>Jeśli pole już stanieje (single-use): </li></ul><ul><ul><li>Otworzyć formularz, zaznaczyć pole. </li></ul></ul><ul><ul><li>Z menu wybrać Design -> Share this field . </li></ul></ul><ul><li>Aby wstawić pole Shared do formularza: </li></ul><ul><ul><li>Z menu wybrać Create -> Resource -> Insert shared field . </li></ul></ul><ul><ul><li>W oknie wybrać nazwę pola wstawianego. </li></ul></ul><ul><ul><li>Kliknąć OK . </li></ul></ul>
    97. 97. Filmy demonstracyjne (4) <ul><li>Dodawanie pola do formularza, nazywanie pola. </li></ul><ul><li>Przegląd wybranych zakładek okna właściwości pola. </li></ul><ul><li>Dodawanie „zwykłych” pól tekstowych. </li></ul><ul><li>Opisywanie pól za pomocą tekstu pomocy </li></ul><ul><li>Zmiana typu pola oraz przegląd możliwości pól wyboru (Dialog List). </li></ul><ul><li>Dodawanie i modyfikowanie pola typu Radio Button. </li></ul><ul><li>Tworzenie pola typu Shared. Wstawianie pola Shared do formularza. </li></ul>
    98. 98. Ćwiczenie 3 <ul><li>Dodawanie i modyfikowanie rodzajów pól w formularzach </li></ul>
    99. 99. Praca z elementami projektu aplikacji Praca z widokami ( Views )
    100. 100. Widoki w aplikacji (1). Proste widoki. <ul><li>Widok ( View ) to lista zapisanych w aplikacji dokumentów. Dokumenty te mogą być sortowane, ale i kategoryzowane (grupowanie dokumentów). </li></ul><ul><li>Widoki dają użytkownikowi możliwość przeglądania dokumentów na różne sposoby. </li></ul><ul><li>Aplikacja musi mieć przynajmniej jeden widok. </li></ul><ul><li>Widoki są konstruowane za pomocą kolumn i wierszy (dokumenty). </li></ul><ul><li>Kolumna to definicja danych, które mają być wyświetlane: </li></ul><ul><ul><li>Proste funkcje ( Simple functions ). </li></ul></ul><ul><ul><li>Pole ( Field contents ). </li></ul></ul><ul><ul><li>Formuła ( Formula results ). </li></ul></ul>
    101. 101. Widoki w aplikacji (2). Typy widoków. <ul><li>Shared – dostępne dla użytkowników z prawem dostępu minimum Reader . Są przechowywane w aplikacji. </li></ul><ul><li>Shared, contains documents not in any folder – widok, który pomaga w znalezieniu dokumentów, które znajdują się w folderach (np. w sytuacji gdy źle opisaliśmy wyrażenia selekcji). </li></ul><ul><li>Shared, contains deleted documents – widok przechowujący „usunięte” dokumenty. Można je z takiego widoku odzyskać. </li></ul><ul><li>Shared, private on first use – widok przechowywany w bazie danych. Po kliknięciu staje się widokiem Private . Idealny do dystrybucji prywatnych widoków do wielu osób. </li></ul><ul><li>Shared, desktop private on first use – podobny do poprzedniego, ale przechowywany na stacji roboczej, w pliku desktop.dsk . </li></ul><ul><li>Private – widok przeznaczony dla użytkownika, który go utworzył. Gdy ma prawa w ACL do tworzenia prywatnych widoków to jest przechowywany w bazie danych. Jeśli nie, to w desktop.dsk . </li></ul>
    102. 102. Widoki w aplikacji (3). Tworzenie widoku. <ul><li>Aby utworzyć nowy widok w aplikacji Domino: </li></ul><ul><ul><li>Otworzyć Domino Designer i wybrać Views . </li></ul></ul><ul><ul><li>Kliknąć przycisk New View . </li></ul></ul><ul><ul><li>Wpisać nazwę dla widoku, wybrać typ. </li></ul></ul><ul><ul><li>Kliknąć Save and Customize – widok zostaje zapisany, otwiera się okno projektu. </li></ul></ul>
    103. 103. Widoki w aplikacji (4). Praca z kolumnami. <ul><li>Aby dodać nową kolumnę w widoku: </li></ul><ul><ul><li>Kliknąć na nagłówku kolumny (zaznaczyć kolumnę). </li></ul></ul><ul><ul><li>Wybrać z menu Create -> Insert New Column lub Create -> Append New Column. </li></ul></ul><ul><ul><li>Kliknąć dwukrotnie na nagłówku, aby sformatować ją ( Column Properties ). </li></ul></ul><ul><ul><li>Wpisać nazwę kolumny . </li></ul></ul><ul><li>Aby usunąć kolumnę z widoku: </li></ul><ul><ul><ul><li>Kliknąć na nagłówku kolumny (zaznaczyć kolumnę). </li></ul></ul></ul><ul><ul><ul><li>Z klawiatury wybrać DELETE . </li></ul></ul></ul>
    104. 104. Widoki w aplikacji (5). Simple Functions . <ul><li>Dla kolumn w widokach dostępne są proste funkcje, które pozwalają na przyspieszenie projektowania widoków: </li></ul><ul><ul><li>Attachments – wyświetla liczbę załączników w dokumencie. </li></ul></ul><ul><ul><li>Author(s) Distinguished Names – wyświetla nazwę autora dokumentu, np. Marek Zawadzki / Marketing / Poland . </li></ul></ul><ul><ul><li>Author(s) Simple Name – wyświetla imię i nazwisko autora dokumentu. </li></ul></ul><ul><ul><li>Creation Date – wyświetla datę i/lub czas utworzenie dokumentu. </li></ul></ul><ul><ul><li>Last Modified – wyświetla datę ostatniej modyfikacji dokumentu. </li></ul></ul><ul><ul><li># in View – wyświetla kolejny numer dokumentu w widoku (ustawienie domyślne dla pierwszej tworzonej kolumny). Odpowiedzi są także numerowane, na przykład: 1.1. </li></ul></ul>
    105. 105. Widoki w aplikacji (6). Simple Functions . <ul><li>Aby zastosować prostą funkcję do kolumny w widoku: </li></ul><ul><ul><li>Otworzyć widok i zaznaczyć żądaną kolumnę. </li></ul></ul><ul><ul><li>W panelu Programmer’s Pane kliknąć opcję Simple Function . </li></ul></ul><ul><ul><li>Wybrać funkcję i odświeżyć widok (ikona Odśwież ). </li></ul></ul>
    106. 106. Widoki w aplikacji (7). Fields . <ul><li>Aby wyświetlić zawartość pola w widoku: </li></ul><ul><ul><li>Otworzyć widok i zaznaczyć żądaną kolumnę. </li></ul></ul><ul><ul><li>W panelu Programmer’s Pane kliknąć opcję Field . </li></ul></ul><ul><ul><li>Wybrać pole i odświeżyć widok (ikona Odśwież ). </li></ul></ul>
    107. 107. Widoki w aplikacji (8). Formatowanie kolumn. <ul><li>Projektant aplikacji może zdefiniować sposób wyświetlania danych: </li></ul><ul><ul><li>Szerokość kolumny. </li></ul></ul><ul><ul><li>Tytuł kolumny. </li></ul></ul><ul><ul><li>Rodzaj, rozmiar i kolor czcionki. </li></ul></ul><ul><ul><li>Format daty i czasu. </li></ul></ul><ul><ul><li>Format liczbowy. </li></ul></ul><ul><ul><li>Czcionkę, rozmiar, kolor i styl nagłówka. </li></ul></ul>
    108. 108. Widoki w aplikacji (9). Shared Column . <ul><li>Projektant aplikacji ma możliwość tworzenia kolumny typu Shared , co pozwala zaoszczędzić czas projektowania oraz dbać o spójność aplikacji. </li></ul><ul><li>Kolumnę taką (np. Autor dokumentu) można dodawać do widoków w aplikacji. </li></ul><ul><li>Aby utworzyć nową kolumnę Shared : </li></ul><ul><ul><li>Otworzyć Domino Designer i wybrać Shared Code -> Columns . </li></ul></ul><ul><ul><li>Kliknąć przycisk New Shared Column . </li></ul></ul><ul><ul><li>W oknie właściwości podać nazwę kolumny, a także zdefiniować inne parametry. </li></ul></ul><ul><ul><li>Zapisać i zamknąć projekt kolumny. </li></ul></ul>
    109. 109. Widoki w aplikacji (10). Shared Column . <ul><li>Aby dodać kolumnę Shared do widoku: </li></ul><ul><ul><li>Otworzyć projekt widoku. </li></ul></ul><ul><ul><li>W menu wybrać Create -> Insert Shared Column lub Append Shared Column. </li></ul></ul><ul><ul><li>Wybrać kolumnę do wstawienia. </li></ul></ul><ul><li>Uwaga : Domyślnie wartość i format są dodawane. Opcja Use Formula Only pomija formatowanie. </li></ul><ul><li>Aby zmienić wartość kolumny: </li></ul><ul><ul><li>Wybrać Design -> Edit Shared Column. </li></ul></ul><ul><li>Aby uwspólnić istniejącą kolumnę w widoku: </li></ul><ul><ul><li>Otworzyć widok, zaznaczyć żądaną kolumnę. </li></ul></ul><ul><ul><li>Wybrać Create -> Copy as Shared Column. </li></ul></ul><ul><ul><li>Wpisać nazwę kolumny. </li></ul></ul>
    110. 110. Filmy demonstracyjne (5) <ul><li>Tworzenie nowego (prostego) widoku. </li></ul><ul><li>Praca z kolumnami w widoku (dodawanie, usuwanie, przenoszenie). </li></ul><ul><li>Zastosowanie prostych funkcji (Simple Functions) do kolumn w widoku. </li></ul><ul><li>Zastosowanie zawartości pól w kolumnach widoku. </li></ul><ul><li>Przegląd wybranych możliwości formatowania kolumn w widoku. </li></ul><ul><li>Tworzenie kolumny typu Shared. Dodawanie kolumny do widoku. </li></ul><ul><li>Uwspólnianie kolumn w widoku. </li></ul>
    111. 111. Ćwiczenie 4 <ul><li>Tworzenie prostych widoków </li></ul>
    112. 112. 3. Programowanie aplikacji Domino Wprowadzenie do języka formuł ( Formula Language )
    113. 113. Programowanie aplikacji (1). <ul><li>Projektant bazy danych Domino ma następujące możliwości projektowania aplikacji (między innymi): </li></ul><ul><ul><li>Simple formula – „zapisane” fragmenty kodu, które można zastosować (np. CopyToDatabase). </li></ul></ul><ul><ul><li>Formula Language – język funkcji „matematycznych”, za pomocą których można łatwo i szybko projektować aplikacje Domino. </li></ul></ul><ul><ul><li>@Commands – zaprogramowane wcześniej gotowe fragmenty kodu, które odzwierciedlają działanie poleceń menu. </li></ul></ul><ul><ul><li>LotusScript –język programowania, podobny do MS Visual Basic </li></ul></ul><ul><li>Dodatkowo można używać języka JavaScript, a także HTML. </li></ul><ul><li>W wersji 8 jest możliwość rozszerzania aplikacji za pomocą Lotus Expeditor (Java) – nowe funkcje Notes 8 w wersji Standard. </li></ul>
    114. 114. Programowanie aplikacji (2). Zastosowanie. <ul><li>Formuły mogą być używane w wielu miejscach aplikacji Domino: </li></ul><ul><ul><li>Pola edytowalne ( Editable fields ). </li></ul></ul><ul><ul><li>Pola obliczane ( Computed fields ). </li></ul></ul><ul><ul><li>Przyciski czynności ( Action buttons ). </li></ul></ul><ul><ul><li>Struktury ( Outlines ). </li></ul></ul><ul><ul><li>Agenty ( Agents ). </li></ul></ul><ul><ul><li>Kolumny w widoku ( View columns ). </li></ul></ul><ul><ul><li>Wyrażenia selekcji widoku ( View selection ). </li></ul></ul><ul><ul><li>Punty aktywne ( Hotspots ). </li></ul></ul><ul><ul><li>Czynności ( Actions ). </li></ul></ul><ul><ul><li>Tytuły okna ( Window titles ). </li></ul></ul>
    115. 115. Programowanie aplikacji (3). Elementy. <ul><li>W formułach Domino stosujemy następujące elementy składowe: </li></ul><ul><ul><li>Zmienne ( Variables ). </li></ul></ul><ul><ul><li>Stałe ( Constants ). </li></ul></ul><ul><ul><li>Operatory ( Operators ). </li></ul></ul><ul><ul><li>Słowa kluczowe ( Keywords ). </li></ul></ul><ul><ul><li>Funkcje ( @Functions ). </li></ul></ul><ul><li>Za pomocą formuł możemy oprogramować różnego rodzaju elementy, na przykład przyciski czynności. </li></ul><ul><li>Dostępne są wtedy zdarzenia ( events ), między innymi: </li></ul><ul><ul><li>Input translation (zmiana wpisu np. do pola). </li></ul></ul><ul><ul><li>Input validation (walidacja poprawności wpisu). </li></ul></ul><ul><ul><li>Window Title (tytuł okna). </li></ul></ul><ul><ul><li>Default Value (wartość domyślna). </li></ul></ul>Tworząc formuł należy uważać na typy danych! Operator 1 2 + Argument Argument
    116. 116. Programowanie aplikacji (4). Zmienne. <ul><li>Zmienna ( variable ) jest wartość, która ulega zmianom w dokumencie, na przykład, imię i nazwisko: </li></ul><ul><ul><li>FirstName (nazwa pola jako prosta formuła) </li></ul></ul><ul><ul><li>FirstName + &quot; &quot; + LastName (z odpowiednimi operatorami) </li></ul></ul><ul><ul><li>@ProperCase(FirstName) (jako argument) </li></ul></ul><ul><li>Tymczasowe zmienne ( temporary variable ) istnieją jedynie w formule i nie mają żadnych dodatkowych atrybutów. Dane przypisane tymczasowej zmiennej nie są zapisywane. </li></ul><ul><li>Składnia i przykład: </li></ul><ul><ul><li>tempname := value </li></ul></ul><ul><ul><li>firstname := “John”; </li></ul></ul><ul><ul><li>lastname := “Smith”; </li></ul></ul><ul><ul><li>@ProperCase(firstname) + “ “ + @ProperCase(lastname) </li></ul></ul>
    117. 117. Programowanie aplikacji (4). Stałe i operatory. <ul><li>Stosowane w przypadku, gdy wartości są stałe: </li></ul><ul><ul><li>Text (29/12/98) </li></ul></ul><ul><ul><li>Number (-987). </li></ul></ul><ul><ul><li>Time [01/18/96 09:30:45] (84600 s/day). </li></ul></ul><ul><ul><li>„ Joe&quot; + &quot; &quot; + &quot;Boston&quot; + @Text(Total). </li></ul></ul><ul><li>Dwukropek Colon (:) </li></ul><ul><ul><li>&quot;Cleveland&quot; : &quot;Melbourne&quot; : &quot;Rotterdam&quot; </li></ul></ul><ul><li>Średnik Semicolon (;) </li></ul><ul><ul><li>@If(@Attachments = 1 ; 5 ; &quot; &quot;) @If(DueDate < @Today ; &quot;Past Due&quot; ; NULL) </li></ul></ul>NULL – nieznany typ danych lub brakujące dane
    118. 118. Programowanie aplikacji (5). Operatory.
    119. 119. Programowanie aplikacji (6). Słowa kluczowe. <ul><li>Słowa kluczowe używamy do opisu wyrażeń w formułach lub do wyrażeń selekcji: </li></ul><ul><li>Oznaczenie komentarza w formule: </li></ul><ul><ul><li>REM &quot;To jest mój formularz&quot; </li></ul></ul><ul><li>Wyrażenie selekcji w widoku: </li></ul><ul><ul><li>SELECT Form = &quot;Idea&quot; </li></ul></ul><ul><li>Przypisanie wartości do pola w formularzu: </li></ul><ul><ul><li>FIELD CompanyName := Company + &quot; inc.&quot; </li></ul></ul><ul><li>Przypisanie wartości domyślnej dla pola: </li></ul><ul><ul><li>DEFAULT City := “New York” </li></ul></ul><ul><li>Ustawienie zmiennej systemowej w pliku notes.ini na stacji roboczej: </li></ul><ul><ul><li>ENVIRONMENT Department := “HR” </li></ul></ul>
    120. 120. Programowanie aplikacji (7). Zasady w formułach. <ul><li>Formuły Notes bazują na pewnych regułach (ogólne zasady tworzenia formuł, stosowaniu separatorów, operatorów oraz nawiasach). </li></ul><ul><li>Notes rozpoznaje 3 separatory: </li></ul><ul><ul><li>Colon ( : ) – oddziela wartości w liście (“Austin” : “Paris” : “Rome”) </li></ul></ul><ul><ul><li>Semicolon (; ) – oddziela wyrażenia w formule </li></ul></ul><ul><ul><ul><li>SELECT City = “Paris” ; </li></ul></ul></ul><ul><ul><ul><li>FIELD Country := “FR” </li></ul></ul></ul><ul><ul><li>Spaces - spacje mogą stosowane w formułach (REM “Comments Only”). </li></ul></ul>
    121. 121. Programowanie aplikacji (8). Zasady w formułach. <ul><li>Język formuł nie zależy od wielkości znaków, poza na znakami cudzysłów ( quotation marks ): </li></ul><ul><ul><li>“ new york” </li></ul></ul><ul><ul><li>“ New York” </li></ul></ul><ul><li>Podane przykłady są różnymi wartościami. </li></ul><ul><li>Znaki te mogą być stosowane tylko do stałych tekstowych. </li></ul>
    122. 122. Programowanie aplikacji (9). @Functions. <ul><li>Mamy następujące rodzaje funkcji (między innymi): </li></ul><ul><ul><li>String Manipulation – obróbka danych tekstowych. </li></ul></ul><ul><ul><li>Logical Operation – operacje logiczne. </li></ul></ul><ul><ul><li>Date / Time Operation – operacje na dacie i czasie. </li></ul></ul><ul><ul><li>Arithmetic Operation – operacje arytmetyczne. </li></ul></ul><ul><ul><li>List Operation – operacje na listach. </li></ul></ul><ul><ul><li>Data Conversions – konwersja danych. </li></ul></ul><ul><ul><li>Special Functions – funkcje specjalne. </li></ul></ul><ul><li>Funkcje stosujemy następująco (składnia i przykłady): </li></ul><ul><ul><li>@funname(arg1 ; arg2 ; ... ; argn). </li></ul></ul><ul><ul><li>@Sum(1 ; 32 ; 43 ; 56) . </li></ul></ul><ul><ul><li>@Text(TargetRetailPrice) . </li></ul></ul>
    123. 123. Programowanie aplikacji (10). String Manipulations . <ul><li>@ProperCase </li></ul><ul><ul><li>Konwertuje wpis w formule (każde słowo rozpoczyna się od wielkiej litery). </li></ul></ul><ul><li>@UpperCase </li></ul><ul><ul><li>Zwraca tekst KAPITALIKAMI. </li></ul></ul><ul><li>@Trim </li></ul><ul><ul><li>„ pozbywa” się nadmiarowych znaków spacji. </li></ul></ul><ul><li>@Length </li></ul><ul><ul><li>Zwraca wartość równą liczbie znaków. </li></ul></ul><ul><li>@Left </li></ul><ul><ul><li>Zwraca znaki określone w formule (lewa strona). </li></ul></ul><ul><li>@NewLine </li></ul><ul><ul><li>Dodaje nową linię (znak karetki). </li></ul></ul><ul><li>@ProperCase(marek zawadzki) </li></ul><ul><ul><li>Marek Zawadzki </li></ul></ul><ul><li>@Trim(@UpperCase(&quot;_Roger_S&quot;) </li></ul><ul><ul><li>ROGER S </li></ul></ul><ul><li>@Length(&quot;Co robisz?&quot;) </li></ul><ul><ul><li>10 </li></ul></ul><ul><li>@Left(&quot;Do roboty&quot; ; 2) </li></ul><ul><ul><li>Do </li></ul></ul><ul><li>Name + @NewLine + Addresss </li></ul><ul><ul><li>Marek Zawadzki BELGRADZKA </li></ul></ul>
    124. 124. Programowanie aplikacji (11). Logical Operations . <ul><li>@If </li></ul><ul><ul><li>Funkcja warunkowa, zwraca różne wartości w zależności od warunków. </li></ul></ul><ul><li>@Failure </li></ul><ul><ul><li>Powoduje wyświetlenie komunikatu o błędzie (podczas walidacji formuł). </li></ul></ul><ul><li>@Success </li></ul><ul><ul><li>Zwracana jest wartość True (1). </li></ul></ul><ul><li>@If(Name = &quot;Marek&quot; ; &quot;Instructor&quot; ; &quot;Student&quot;) </li></ul><ul><li>@If(Age > 70 ; &quot;Stary&quot; ; &quot;Młody&quot;) </li></ul><ul><li>@If(@IsNewDoc ; &quot;Nowy dokument&quot; ; &quot;Stary dokument&quot;) </li></ul><ul><li>@If(LName = NULL ; @Failure(&quot;Wpisz coś&quot;) ; @Success) </li></ul>
    125. 125. Programowanie aplikacji (12). Date / Time Operations . <ul><li>@Created </li></ul><ul><ul><li>Zwraca datę utworzenia dokumentu. </li></ul></ul><ul><li>@Adjust </li></ul><ul><ul><li>Zwracana jest data zadeklarowana w formule. </li></ul></ul><ul><li>@Today (@Tomorrow) </li></ul><ul><ul><li>Zwraca dzisiejszą i jutrzejszą datę. </li></ul></ul><ul><li>&quot;Dokument utworzono dnia &quot; + @Text(@Created) </li></ul><ul><li>@Adjust(CreateDate ; 0 ; 0 ; 30 ; 0 ; 0 ; 0) </li></ul><ul><li>@Adjust(@Today ; 0 ; 0 ; 30 ; 0 ; 0 ; 0) </li></ul><ul><li>@Adjust(@Tomorrow ; 0 ; 0 ; 30 ; 0 ; 0 ; 0) </li></ul><ul><li>@Month(@Created) </li></ul>
    126. 126. Programowanie aplikacji (13). Arithmetic Operations . <ul><li>@Max </li></ul><ul><ul><li>Zwraca wartość maksymalną z podanej listy. </li></ul></ul><ul><li>@Round </li></ul><ul><ul><li>Zaokrągla wynik podanej formuły. </li></ul></ul><ul><li>@Sum </li></ul><ul><ul><li>Zwraca sumę podanych argumentów w formule. </li></ul></ul><ul><li>@Max(MonthOne ; MonthTwo) </li></ul><ul><li>@Round(123 ; 10) </li></ul><ul><li>@Sum(Price ; 10 ; Tax) </li></ul><ul><li>@Sum(Price : 10 : Tax) </li></ul><ul><li>Uwaga : W dwóch ostatnich przykładach pola muszą zawierać wartości domyślne. </li></ul>
    127. 127. Programowanie aplikacji (14). List Operations . <ul><li>@Elements </li></ul><ul><ul><li>Oblicza liczbę elementów w liście elementów. </li></ul></ul><ul><li>@Subset </li></ul><ul><ul><li>Przeszukuje elementy listy i zwraca podany (numer kolejny) element. </li></ul></ul><ul><li>@Sort(list;[ORDER]) </li></ul><ul><ul><li>Sortuje listę w zadany sposób </li></ul></ul><ul><li>Students := &quot;Joe&quot; : &quot;Sue&quot; : &quot;Tom„ </li></ul><ul><li>@Elements(Students) </li></ul><ul><li>@If(@Elements(Students) = 3 ; &quot;OK&quot; ; &quot;&quot;) </li></ul><ul><li>@Subset(&quot;Cleveland&quot; : &quot;Singapore&quot; : &quot;Mel&quot; ; 2) </li></ul><ul><ul><li>Cleveland : Singapore </li></ul></ul><ul><li>@Subset(&quot;A&quot; ; &quot;B&quot; ; &quot;C&quot; ; &quot;D&quot; ; -3) </li></ul><ul><ul><li>B ; C ; D </li></ul></ul><ul><li>Cities := “Paris” : “Rome” : “Berlin”; </li></ul><ul><li>@Sort(Cities; [ASCENDING]) </li></ul>
    128. 128. Programowanie aplikacji (15). List Operations . <ul><li>@UserName </li></ul><ul><ul><li>Zwraca nazwę użytkownika na podstawie pliku user.id. </li></ul></ul><ul><li>@Name </li></ul><ul><ul><li>Przetwarza nazwę użytkownika według podanych w formule parametrów. </li></ul></ul><ul><li>@IsNewDoc </li></ul><ul><ul><li>Sprawdza status dokumentu. </li></ul></ul><ul><li>@Name([CN] ; Author) </li></ul><ul><li>@UserName </li></ul><ul><li>@If(@IsNewDoc ; &quot;Tworzysz nowy&quot; ; &quot;Edytujesz stary dokument &quot; + Title) </li></ul><ul><li>@If(Department = NULL ; @Failure(&quot;No, no”) ; @Success) </li></ul>
    129. 129. Programowanie aplikacji (16). Aplikacja . Na CD-ROM znajduje się baza danych, w której znajdują się przykładowe formuły Notes.
    130. 130. Programowanie aplikacji (17). Format danych . <ul><li>Gdy formaty danych są nieodpowiednie pojawiają się następujące komunikaty błędów: </li></ul><ul><ul><li>“ Field: ‘Total’: Incorrect data type for operator or @Function: Number expected” </li></ul></ul><ul><ul><li>“ Field: ‘Department’: Incorrect data type for operator or @Function: Text expected: </li></ul></ul><ul><li>Funkcje do konwersji danych są następujące: </li></ul><ul><li>@Text(value) </li></ul><ul><ul><li>@Text(RetailPrice) </li></ul></ul><ul><li>@TextToNumber </li></ul><ul><ul><li>@TextToNumber(“100”) </li></ul></ul><ul><li>@TextToTime </li></ul><ul><ul><li>@TextToTime(“1/1/99”) </li></ul></ul>
    131. 131. Programowanie aplikacji (18). User Input (przykłady). <ul><li>Jest kilka @ Funkcji, które pomagają w zaprojektowaniu mechanizmu wprowadzania danych przez użytkownika. </li></ul><ul><li>Dane wprowadzone przez użytkownika są przechwytywane przez formułę i są zwracane we wskazanym polu. </li></ul><ul><li>@Prompt - wyświetla okno dialogowe dla użytkownika i zwraca odpowiednią wartość tekstową. Funkcja jest użyteczna dla „pobierania” informacji od użytkownika i projektowania następujących po sobie czynności. </li></ul><ul><li>@DialogBox – wyświetla okno dialogowe wraz z aktualnym dokumentem. Użytkownik może wybrać przycisk OK. lub Cancel. </li></ul><ul><li>@PickList - wyświetla okno, którego zawartość może być następująca: </li></ul><ul><ul><li>Zadany w formule widok, z którego użytkownik może wybrać jeden lub kilka dokumentów. @PickList zwraca wartość kolumny z wybranego dokumentu. </li></ul></ul><ul><ul><li>Okno adresowe , wyświetlające informacje ze wszystkich dostępnych książek adresowych. Użytkownik może wybrać jedną lub kilka osób / grup. Zwracane są nazwy wybranych elementów. </li></ul></ul>
    132. 132. 3. Programowanie aplikacji Domino Zastosowanie formuł w formularzach / polach
    133. 133. Pola edytowalne i obliczane (1) <ul><li>Pola dzieli się również na: </li></ul><ul><ul><li>Edytowalne ( editable ) – użytkownik może zmienić wartość pola (nawet po jego obliczeniu) </li></ul></ul><ul><ul><li>Obliczane ( computed ) – wartość pola jest obliczana według podanej formuły obliczeniowej. </li></ul></ul><ul><li>W zależności od rodzaju pola obliczanego pole jest odświeżane w różnych sytuacjach: </li></ul>Computed Fields Computed Computed for display Computed when composed CREATED SAVED REFRESH OPENED (E, R) REFRESHED (Current Session) CALCULATE ONCE WHEN CREATED
    134. 134. Pola edytowalne i obliczane (2). Editable . <ul><li>Pola edytowalne pozwalają na wprowadzanie danych przez użytkownika, ale mogą też korzystać z następujących formuł: </li></ul><ul><ul><li>Default Value – przechowuje i zwraca domyślną wartość. </li></ul></ul><ul><ul><li>Input Translation – modyfikuje wprowadzoną zawartość pola. </li></ul></ul><ul><ul><li>Input Validation – weryfikuje wprowadzona wartość w polu, według zadanych warunków. </li></ul></ul>
    135. 135. Pola edytowalne i obliczane (3). Computed . <ul><li>Pola obliczane nie pozwalają na wpisanie danych przez użytkownika. Ich wartość obliczana jest na podstawie formuły. </li></ul>Computed Fields Computed Computed for display Computed when composed CREATED SAVED REFRESH OPENED (E, R) REFRESHED (Current Session) CALCULATE ONCE WHEN CREATED
    136. 136. Praca z formułami (1). Programmer’s Pane . <ul><li>Projektant / programista wprowadza formuły w panelu programisty Programmer’s Pane . Panel ma także swoje właściwości, które można dostosować do własnych potrzeb: </li></ul><ul><ul><li>Otworzyć element projektu, kliknąć pole. Otworzy się automatycznie podgląd w panelu. </li></ul></ul><ul><ul><li>Kliknąć prawym klawiszem myszy na panelu i wybrać właściwości. </li></ul></ul>
    137. 137. Praca z formułami (2). Programmer’s Pane . <ul><li>Formuły wprowadza się „ręcznie” – podczas wpisywania pojawia się pomoc, opis stosowanej funkcji (składnia). </li></ul><ul><li>Sprawdzana jest też poprawność wpisanej formuły. </li></ul>
    138. 138. 3. Programowanie aplikacji Domino 11. Tworzenie formularza odpowiedzi ( response form ), dziedziczenie danych
    139. 139. Formularz Response , dziedziczenie danych (1) <ul><li>Formularz typu Response daje takie same możliwości jak formularz typu Document . Dodatkową funkcją jest możliwość dodania komentarza do oryginalnego dokumentu bez potrzeby jego edycji (w większości aplikacji użytkownik nie może edytować cudzych dokumentów). </li></ul><ul><li>Dokument typu Response jest tworzony z dokumentu „rodzica”. Gdy nie ma dokumentu „rodzica” pojawia się komunikat o będzie. </li></ul><ul><li>Trzeci rodzaj formularza – Response to Response – pozwala na skomentowanie obu dokumentów: dokumentu odpowiedzi oraz dokumentu głównego. </li></ul><ul><li>Wszystkie dokumenty zwykle pokazywane są w widokach hierarchizowanych (np. baza dyskusji). </li></ul>
    140. 140. Formularz Response , dziedziczenie danych (2) <ul><li>Każdy dokument utworzony w Notes przechowuje „swój” numer ID, którego częścią jest tzw. unique ID ( UNID ). </li></ul><ul><li>Kiedy jest zapisywany dokument odpowiedzi, przechowuje on UNID dokumentu „rodzica” w polu $REF. </li></ul>
    141. 141. Formularz Response , dziedziczenie danych (3) <ul><li>Aby utworzyć formularz typu Response : </li></ul><ul><ul><li>Otworzyć Domino Designer. </li></ul></ul><ul><ul><li>W widoku Forms kliknąć przycisk New form . </li></ul></ul><ul><ul><li>Otworzyć okno właściwości formularza, wybrać typ Response . </li></ul></ul>
    142. 142. Formularz Response , dziedziczenie danych (4) <ul><li>Domyślnie nie jest włączone dziedziczenie danych ( data inheritance ) z dokumentu głównego. </li></ul><ul><li>Aby zdefiniować dziedziczenie danych z dokumentu głównego: </li></ul><ul><ul><li>Zaznaczamy opcję „ Formulas inherit values from selected documents” w oknie właściwości formularza (na zakładce Defaults ). </li></ul></ul><ul><ul><li>Określamy, które pola z głównego dokumentu mają być dziedziczone. </li></ul></ul><ul><ul><li>Wpisać formuły w polach, które mają dziedziczyć informacje. Formuły te maja być powiązane z polami, których wartości dziedziczymy. </li></ul></ul><ul><li>UWAGA: Dziedziczenie danych odbywa się tylko raz, w momencie tworzenia dokumentu. Pola muszą być typu Computed when Compose . </li></ul>
    143. 143. Filmy demonstracyjne (6) <ul><li>Przegląd aplikacji FUNCTIONS.NSF. </li></ul><ul><li>Definiowanie wartości domyślnych w polach (Radio Button, Date/Time). </li></ul><ul><li>Definiowanie tytułu okna w formularzach. </li></ul><ul><li>Definiowanie zdarzeń Input Validation oraz Input Translation. </li></ul><ul><li>Formatowanie panelu Programmer’s Pane. </li></ul><ul><li>Zmiana typu formularza, dziedziczenie wartości. </li></ul>
    144. 144. Ćwiczenie 5 <ul><li>Dodawanie logiki do aplikacji (Formula Language) </li></ul>
    145. 145. 3. Programowanie aplikacji Domino 12. Rozszerzanie funkcjonalności formularzy, za pomocą czynności ( actions )
    146. 146. Dodatkowe możliwości (1). Czynności formularza ( actions ). <ul><li>Czynność to procedura do wykonania, którą dodaje się do formularza lub widoku. Czynności są widoczne albo w postaci przycisków na pasku czynności ( action bar ) lub w menu Actions . </li></ul><ul><li>Czynności mogą być programowane za pomocą: </li></ul><ul><ul><li>Prostych czynności ( simple actions ). </li></ul></ul><ul><ul><li>Języka formuł ( formula language ). </li></ul></ul><ul><ul><li>LotusScript. </li></ul></ul><ul><ul><li>JavaScript. </li></ul></ul>
    147. 147. Dodatkowe możliwości (2). Czynności systemowe ( system actions ). <ul><li>Każdy formularz i widok ma wbudowane czynności systemowe. Nie są one automatycznie wyświetlane w panelu czynności. </li></ul><ul><li>Aby dodać czynności systemowe: </li></ul><ul><ul><li>Należy z menu wybrać Create -> Action -> Insert System Actions . </li></ul></ul>
    148. 148. Dodatkowe możliwości (3). Tworzenie czynności. <ul><li>Aby dodać nową czynność (akcję) do formularza: </li></ul><ul><ul><li>Otworzyć formularz i wyświetlić panel czynności Action Pane . </li></ul></ul><ul><ul><li>Z men u wybrać Create -> Action . </li></ul></ul><ul><ul><li>W oknie właściwości czynności podać jej nazwę. </li></ul></ul><ul><ul><li>( opcjonalnie ) Zmienić jej pozycję w menu Actions . </li></ul></ul><ul><ul><li>Wybrać opcje Display (np. Only show icon …). </li></ul></ul><ul><ul><li>Wybrać ikonę dla projektowanego przycisku (różne możliwości). </li></ul></ul><ul><ul><li>Wprowadzić formułę dla czynności w panelu programistycznym. </li></ul></ul>
    149. 149. Dodatkowe możliwości (4). Proste czynności ( simple actions ). <ul><li>Notes dostarcza kilka prostych czynności, które nie wymagają od projektanta umiejętności programistycznych. </li></ul><ul><li>Aby zastosować predefiniowaną prostą czynność: </li></ul><ul><ul><li>Utwórz nową czynność, przejdź do panelu Programmer’s Pane . </li></ul></ul><ul><ul><li>Wybierz Simple Actions z listy rozwijalnej. </li></ul></ul><ul><ul><li>Dodaj wybraną czynność za pomocą przycisku Add Action . </li></ul></ul><ul><ul><li>Zapisz i zamknij dokument. </li></ul></ul>
    150. 150. Dodatkowe możliwości (5). @Commands . <ul><li>Polecenia @Command to specjalny typ @Function – pozwalają na uruchamianie poleceń programu Notes. </li></ul><ul><li>Za pomocą @Commands można obsłużyć polecenia programu Notes, jak i dodatkowe (np. administracyjne) polecenia systemowe. </li></ul><ul><li>Podstawowa składnia jest następująca: </li></ul><ul><ul><li>@Command([CommandName]; parameters) </li></ul></ul><ul><li>Nie wszystkie wymagają parametrów: </li></ul><ul><ul><li>@Command([FileSave]) . </li></ul></ul><ul><ul><li>@Command([FilePrint]) . </li></ul></ul>
    151. 151. Dodatkowe możliwości (6). @Commands . <ul><li>@Command([FileSave]) </li></ul><ul><ul><li>Zapisuje aktywny dokument, wymusza polecenie File -> Save . </li></ul></ul><ul><li>@Command([FileCloseWindow]) </li></ul><ul><ul><li>Zamyka bieżące okno Notes. Jeśli dokument nie był zapisany, pojawia się odpowiedni komunikat. </li></ul></ul><ul><li>@Command([ToolsSpellCheck]) </li></ul><ul><ul><li>Uruchamia sprawdzenie pisowni. Dokument musi być w trybie do edycji. </li></ul></ul><ul><li>@Command([Compose]; “ FormName”) </li></ul><ul><ul><li>Tworzy nowy dokument w oparciu o wskazany formularz (nie jest wymagane). </li></ul></ul><ul><li>@Command([MailForward]) </li></ul><ul><ul><li>Umożliwia przesłanie aktywnego dokumentu innym osobom. </li></ul></ul><ul><li>@Command([ToolsRefreshAllDocs]) </li></ul><ul><ul><li>Odświeża wszystkie pola w formularzu, dokumenty w widoku. </li></ul></ul>
    152. 152. Dodatkowe możliwości (7). @Commands . <ul><li>Aby dodać @Command do projektowanej czynności: </li></ul><ul><ul><li>Wybierz istniejącą czynność lub utwórz nową. </li></ul></ul><ul><ul><li>Przejdź do panelu Programmer’s Pane . </li></ul></ul><ul><ul><li>Wpisz żądaną komendę @Command . Aby uzyskać listę wszystkich poleceń wybierz zakładkę Reference , a następnie wybierz Formula @Commands z dostępnej listy. </li></ul></ul>
    153. 153. Dodatkowe możliwości (8). Shared Actions . <ul><li>Projektant aplikacji może utworzyć czynność Shared Action , która może zostać dodana do dowolnego formularza i widoku: </li></ul><ul><ul><li>Otworzyć Domino Designer, następnie Share Code i wybrać Actions . </li></ul></ul><ul><ul><li>Kliknąć przycisk New Shared Action . </li></ul></ul><ul><ul><li>Wprowadzić informacje w oknie właściwości. </li></ul></ul><ul><ul><li>Wprowadzić formułę dla projektowanej czynności. </li></ul></ul><ul><ul><li>Zapisać czynność i zamknąć okno. </li></ul></ul>
    154. 154. Dodatkowe możliwości (9). Shared Actions . <ul><li>Aby dodać Shared Action do widoku: </li></ul><ul><ul><li>Otworzyć dokument widoku, wyświetlić panel czynności. </li></ul></ul><ul><ul><li>Z menu wybrać Create -> Action -> Insert shared action . </li></ul></ul><ul><ul><li>W oknie dialogowym wybrać czynność, którą chcemy dodać (można dodać kilka czynności) </li></ul></ul><ul><ul><li>Kliknąć przycisk Done . </li></ul></ul>
    155. 155. Dodatkowe możliwości (10). Actions / Subactions . <ul><li>Jeśli formularz lub widok wymaga zaprojektowania większej liczby czynności, wtedy czynności takie można pogrupować ( sub-actions ): </li></ul><ul><ul><li>Z menu wybrać Create -> Action -> Action with Sub Action . </li></ul></ul><ul><ul><li>Nazwać przycisk „nadrzędny” oraz projektowaną czynność. </li></ul></ul><ul><ul><li>Opisać jej działanie za pomocą formuły. </li></ul></ul><ul><ul><li>Zapisać i zamknąć dokument. </li></ul></ul>
    156. 156. Dodatkowe możliwości (11). Actions Bar Properties . <ul><li>Pasek czynności można dostosować do potrzeb użytkowników: </li></ul><ul><ul><li>W panelu czynności wybrać polecenie z menu Design -> Action Bar Properties . </li></ul></ul><ul><ul><li>Wybrać żądane opcje i zdefiniować je (zakładki okna właściwości paska czynności): </li></ul></ul><ul><ul><ul><li>Alignment – wyrównanie paska. </li></ul></ul></ul><ul><ul><ul><li>Bar height – wysokość. </li></ul></ul></ul><ul><ul><ul><li>Bar color – kolorystyka paska czynności. </li></ul></ul></ul><ul><ul><ul><li>Borders – obramowanie. </li></ul></ul></ul><ul><ul><ul><li>Button size – rozmiar przycisków. </li></ul></ul></ul><ul><ul><ul><li>Button font size and style – rodzaj i rozmiar czcionki. </li></ul></ul></ul>
    157. 157. Filmy demonstracyjne (7) <ul><li>Przegląd czynności w różnych aplikacjach. </li></ul><ul><li>Wstawianie czynności systemowych (system actions). </li></ul><ul><li>Tworzenie czynności, użycie Simple Actions. </li></ul><ul><li>Tworzenie czynności, polecenia @Commands. </li></ul><ul><li>Tworzenie czynności Shared Action, dodawanie jej do formularza. </li></ul><ul><li>Tworzenie przycisków czynności (Actions with Subactions). </li></ul><ul><li>Formatowanie paska czynności. </li></ul>
    158. 158. Ćwiczenie 6 <ul><li>Projektowanie czynności ( actions ) </li></ul>
    159. 159. 3. Programowanie aplikacji Domino Ukrywanie elementów ( Hide – When Options )
    160. 160. Ukrywanie elementów projektu (1) <ul><li>Nie wszystkie informacje muszą być widoczne dla użytkownika w tym samym czasie. </li></ul><ul><li>Dostępne są następujące opcje / możliwości ukrycia fragmentów dokumentu: </li></ul><ul><ul><li>Opcje Hide-When dla tekstu i pól. </li></ul></ul><ul><ul><li>Opcje Hide-When dla tabel. </li></ul></ul><ul><ul><li>Opcje Hide-When dla czynności. </li></ul></ul><ul><ul><li>Wbudowane opcje ukrywania (np. Printed ). </li></ul></ul><ul><ul><li>Formuły Hide-When. </li></ul></ul>
    161. 161. Ukrywanie elementów projektu (2) <ul><li>Aby zdefiniować opcje ukrywania: </li></ul><ul><ul><li>Wyświetlić właściwości elementu, który chcemy ukryć. </li></ul></ul><ul><ul><li>Wybrać zakładkę Hide-When . </li></ul></ul><ul><ul><li>Wybrać żądane opcje ukrywania. </li></ul></ul>
    162. 162. Ukrywanie elementów projektu (3) <ul><li>W poniższym przykładzie zastosowano formułę ukrywającą elementy formularza. </li></ul><ul><li>Dodatkowo należy zaznaczyć opcje Refresh fields on keyword change , co powoduje odświeżenie zawartości formualarza. </li></ul>
    163. 163. Filmy demonstracyjne (8) <ul><li>Przykładowe działanie formuły Hide-When w aplikacji. </li></ul><ul><li>Ukrywanie przycisków (standardowe zdarzenia Notes). </li></ul><ul><li>Ukrywanie fragmentu formularza (formuła Notes). </li></ul>
    164. 164. Ćwiczenie 7 <ul><li>Ukrywanie przycisków czynności (Hide-When) </li></ul>
    165. 165. 3. Programowanie aplikacji Domino 14. Przeglądanie zapisanych dokumentów, wyszukiwanie dokumentów.
    166. 166. Przeglądanie zapisanych dokumentów (1) <ul><li>Projektując aplikację dla środowiska Domino warto zadbać o ponowne użycie raz zapisanych w aplikacji informacji (dokumentów, formularzy, widoków). </li></ul><ul><li>Temu celowi służą dwie funkcje: </li></ul><ul><ul><li>@DbColumn – w celu utworzenia dynamicznej listy w polach wyboru ( radio button , dialog list ) . </li></ul></ul><ul><ul><li>@DbLookup – zwraca żądaną informację (wartość pola) z dokumentu w widoku. </li></ul></ul>
    167. 167. Przeglądanie zapisanych dokumentów (2). @DbColumn . <ul><li>Przyczyną zastosowania funkcji @DbColumn jest wyszukiwanie i zwracanie kolumny danych z widoku. </li></ul><ul><li>Formuła może wyszukiwać dane wewnątrz lub na zewnątrz aplikacji. </li></ul><ul><li>Formułę zwykle stosuje się tworzenia „dynamicznych” list wyboru (pola: radio button , dialog list ) . </li></ul><ul><li>Gdy lista opcji jest generowana za pomocą funkcji @DbColumn , wtedy projektant nie musi „ręcznie” zarządzać listą wyboru. </li></ul><ul><li>Składnia funkcji @DbColumn jest następująca : </li></ul><ul><ul><li>@DbColumn(Class : “NoCache” ; Server : Database ; View ; ColumnNumber) </li></ul></ul>
    168. 168. Przeglądanie zapisanych dokumentów (3). @DbColumn . <ul><li>Class : “NoCache” </li></ul><ul><ul><li>Identyfikacja bazy danych, z której korzystamy. Baza Notes jest identyfikowana “Notes” lub “”. </li></ul></ul><ul><ul><li>NoCache – definiuje, czy dane mają być przechowywane do ponownego użycia, czy przeglądane za każdym razem, kiedy jest wykonywana formuła. </li></ul></ul><ul><li>Server : Database </li></ul><ul><ul><li>Nazwa serwera, nazwa bazy danych. </li></ul></ul><ul><li>View </li></ul><ul><ul><li>Dokładna nazwa widoku, który ma być przeszukiwany za pomocą formuły. </li></ul></ul><ul><li>ColumnNumber </li></ul><ul><ul><li>Numer kolumny, której wartości mają być zwrócone przez funkcję. </li></ul></ul><ul><ul><li>Notes „liczy” kolumny od lewej strony. </li></ul></ul><ul><ul><li>Nie wszystkie kolumny są liczone – na przykład kolumny zawierające dane statyczne ( static text ) nie są liczone. </li></ul></ul>
    169. 169. Przeglądanie zapisanych dokumentów (4). @DbColumn . <ul><li>@DbColumn(“” ; “” : “Lookups.NSF” ; “Departments” ; 2) </li></ul><ul><li>Formuła: </li></ul><ul><ul><li>Stosuje wyszukiwanie Notes. </li></ul></ul><ul><ul><li>Przechowuje rezultaty wyszukiwania do dalszych operacji. </li></ul></ul><ul><ul><li>Przeszukuje bazę danych Lookups .nsf na tym samym serwerze. </li></ul></ul><ul><ul><li>Przeszukuje widok Departments . </li></ul></ul><ul><ul><li>Zwraca wartości kolumny 2. </li></ul></ul><ul><li>@DbColumn(“” : “NoCache”; “85255CEB:0032AC04”; “Requests”; 1) </li></ul><ul><li>Formuła: </li></ul><ul><ul><li>Stosuje wyszukiwanie Notes. </li></ul></ul><ul><ul><li>Nie przechowuje rezultatów wyszukiwania ( no cache ). </li></ul></ul><ul><ul><li>Przeszukuje baze danych o numerze ID Replica. </li></ul></ul><ul><ul><li>Przeszukuje widok Requests . </li></ul></ul><ul><ul><li>Zwraca wartość kolumny 1. </li></ul></ul>
    170. 170. Przeglądanie zapisanych dokumentów (5). @DbLookup . <ul><li>Funkcja @DbLookup sprawdza pierwszą posortowaną kolumnę i wyszukuje dokument zawierający wartość kluczową ( key value ) . Na tej podstawie zwracana jest informacja. </li></ul><ul><li>Składnia jest podobna do @DbColumn , ale ma jeszcze kilka dodatkowych argumentów. </li></ul><ul><ul><li>@DbLookup( Class : &quot;NoCache&quot; ; Server : Database ; View ; Key ; ColumnNum ) </li></ul></ul><ul><ul><li>lub </li></ul></ul><ul><ul><li>@DbLookup( Class : &quot;NoCache&quot; ; Server : Database ; View ; Key ; “Fieldname” ) </li></ul></ul>
    171. 171. Przeglądanie zapisanych dokumentów (6). @DbLookup . <ul><li>Class : “NoCache” </li></ul><ul><ul><li>Identyfikacja bazy danych, z której korzystamy. Baza Notes jest identyfikowana “Notes” lub “”. </li></ul></ul><ul><ul><li>NoCache – definiuje, czy dane mają być przechowywane do ponownego użycia, czy przeglądane za każdym razem, kiedy jest wykonywana formuła. </li></ul></ul><ul><li>Server : Database </li></ul><ul><ul><li>Nazwa serwera, nazwa bazy danych. </li></ul></ul><ul><li>View </li></ul><ul><li>Dokładna nazwa widoku, który ma być przeszukiwany za pomocą formuły. </li></ul><ul><li>Key </li></ul><ul><ul><li>Informacja, która jest wyszukiwana w pierwszej posortowanej kolumnie. Zwykle jest to nazwa pola. </li></ul></ul><ul><ul><li>Identyfikuje dokument do odczytania. </li></ul></ul><ul><li>ColumnNumber </li></ul><ul><ul><li>Kiedy używa się numeru kolumny, Notes znajduje dokument według kluczowej wartości, a następnie wyświetla jakąkolwiek wartość z podanej kolumny. </li></ul></ul><ul><li>Fieldname </li></ul><ul><ul><li>Nazwa pola, z którego dane będą przeglądane, po zidentyfikowaniu dokumentu. </li></ul></ul><ul><ul><li>Jeśli używa się nazwy pola, nie musi być ono widoczne w widoku. </li></ul></ul><ul><ul><li>Argument ten podany jest w “” . </li></ul></ul>
    172. 172. Przeglądanie zapisanych dokumentów (7) <ul><li>Baza danych ma formularz o nazwie Departament, w którym są następujące pola: </li></ul><ul><ul><li>DepartmentName – nazwa departamentu. </li></ul></ul><ul><ul><li>DepartmentManager – kierownik departamentu. </li></ul></ul><ul><li>Kiedy dokument jest tworzony za pomocą formularza Departament (alias Dept): </li></ul><ul><ul><li>Kol. 1: zawartość pola DepartmentName . </li></ul></ul><ul><ul><li>Kol 2: zawartość pola DepartmentManager . </li></ul></ul>
    173. 173. Przeglądanie zapisanych dokumentów (8) <ul><li>Aplikacja FREETIME ma formularz, gdzie znajdują się pola: </li></ul><ul><ul><li>Department – zawartość pobierana jest za pomocą @DBColumn. </li></ul></ul><ul><ul><li>ManagerName – zawartość zależy od wybranego departamentu. </li></ul></ul><ul><li>Kiedy użytkownik wskaże zawartość pola Department , inne pola „wyliczają” się automatycznie. </li></ul><ul><li>Pole Department : </li></ul><ul><ul><ul><li>@DbColumn(&quot;&quot; ; &quot;&quot; : &quot;Departamenty.nsf&quot; ; &quot;Dept&quot; ; 1) </li></ul></ul></ul><ul><li>Pole ManagerName : </li></ul><ul><ul><ul><li>@If(Department = NULL; NULL; @DbLookup(&quot;&quot; ; &quot;main&quot; : &quot;Departamenty.nsf&quot; ; &quot;Dept&quot; ; Department; 2)) </li></ul></ul></ul>
    174. 174. Przeglądanie zapisanych dokumentów (9) <ul><li>Aby aktualizacja dokumentu odbywała się „automatycznie” należy włączyć opcję Refresh fields on keyword change . </li></ul><ul><li>Za każdym razem, gdy użytkownik zmieni wartość w polu pole docelowe zostanie odświeżone. </li></ul>
    175. 175. Ćwiczenie 8 <ul><li>Wykorzystanie zapisanych w dokumentach informacji </li></ul>
    176. 176. 3. Programowanie aplikacji Domino Implementacja prostego obiegu dokumentów
    177. 177. Implementacja workflow (1) <ul><li>Projektant aplikacji może łatwo dodać obieg dokumentów do aplikacji. Aplikacje te mogą przesyłać dokumenty pomiędzy jedną aplikacją, a drugą. Można również wysyłać powiadomienia do użytkowników. </li></ul><ul><li>Przesyłanie dokumentów może być uruchomione za pomocą: </li></ul><ul><ul><li>Czynności użytkownika (kliknięcie przycisku). </li></ul></ul><ul><ul><li>Formuł w polach formularza. </li></ul></ul><ul><ul><li>Zdarzeń formularza. </li></ul></ul><ul><ul><li>Agentów (stacja robocza, serwer). </li></ul></ul><ul><li>Wymagania konieczne: </li></ul><ul><ul><li>Musi być adresat (adres). </li></ul></ul><ul><ul><li>Dokument jest tworzony na podstawie formularza z opcją „ mail enabled form ”. </li></ul></ul>
    178. 178. Implementacja workflow (2) <ul><li>Dla formularza należy włączyć opcję „ mail enabled ” . </li></ul><ul><li>Projektant ma 3 sposoby na włączenie funkcjonalności przesyłania dokumentów: </li></ul><ul><ul><li>Zaznaczyć opcję “ On close: Present mail send dialog ” we właściwościach formularza. </li></ul></ul><ul><ul><li>Zastosować funkcję @MailSend bez argumentów. </li></ul></ul><ul><ul><li>Zastosować funkcję @MailSend z argumentami. </li></ul></ul><ul><li>Pole SendTo jest zarezerwowane dla formularzy, które będą przesyłane dalej. </li></ul><ul><li>Pole SendTo służy do przechowywania nazw, do których będzie przesyłany dokument: </li></ul><ul><ul><li>Nazwy użytkowników. </li></ul></ul><ul><ul><li>Nazwy grup. </li></ul></ul><ul><ul><li>Nazwy baz typu mail-in. </li></ul></ul>
    179. 179. Implementacja workflow (4). Mail send dialog . <ul><li>Po zaznaczeniu opcji “ On close: Present mail send dialog ” przy zamykaniu dokumentu będzie się pojawiał dodatkowy komunikat. </li></ul><ul><li>Wymagania: </li></ul><ul><ul><li>W formularzu musi się znajdować pole SendTo . </li></ul></ul><ul><li>Rezultat: </li></ul><ul><ul><li>Dokument zostanie przesłany do podanych w polu SendTo osób. </li></ul></ul>
    180. 180. Implementacja workflow (5). @MailSend . <ul><li>Funkcja @MailSend bez argumentów zwykle dodawana jest do przycisków czynności. </li></ul><ul><li>Funkcja powoduje przesłanie dokumentu do osób / grup podanych w polu SendTo (nie działa przez WWW). </li></ul><ul><li>Uwaga : domyślnie formularze i dokumenty są przechowywane osobno. Kiedy wysyłamy dokument użytkownikowi i ten go otwiera pojawia się komunikat błędu: </li></ul><ul><ul><li>“ Form Not Found: Form Name”. </li></ul></ul><ul><li>Dokument jest otwierany za pomocą domyślnego formularza w aplikacji. </li></ul><ul><li>Aby przeciwdziałać błędom tego rodzaju można zaznaczyć opcję Store form in document we właściwościach formularza. </li></ul>
    181. 181. Implementacja workflow (6). @MailSend . <ul><li>Funkcja @MailSend z argumentami działa już inaczej. </li></ul><ul><li>Nie jest przesyłany dokument, lecz tworzona jest nowa wiadomość pocztowa z argumentami, które zadeklarował projektant aplikacji. </li></ul><ul><li>Składnia funkcji jest następująca: </li></ul><ul><ul><li>@MailSend(SendTo ; CopyTo ; BlindCopyTo ; Subject ; Remarks ; BodyFields ; [Flags]) </li></ul></ul>
    182. 182. Implementacja workflow (7). @MailSend . <ul><li>SendTo </li></ul><ul><ul><li>Główni odbiorcy wiadomości, niekoniecznie musi odpowiadać polu SendTo, może to być całkiem inne pole. </li></ul></ul><ul><li>CopyTo (Optional) </li></ul><ul><ul><li>Użytkownicy którzy powinni dostać kopię wiadomości. </li></ul></ul><ul><li>BlindCopyTo (Optional) </li></ul><ul><ul><li>Użytkownicy którzy powinni dostać ukrytą kopię wiadomości. </li></ul></ul><ul><li>Subject (Optional) </li></ul><ul><ul><li>Temat wiadomości. </li></ul></ul><ul><li>Remark (Optional) </li></ul><ul><ul><li>Tekst pojawiający się na początku pola Body wiadomości pocztowej. </li></ul></ul><ul><li>BodyFields (Optional) </li></ul><ul><ul><li>Nazwy pól (lub pola), których zawartość ma być dodana do wiadomości. </li></ul></ul><ul><li>Flags (Optional) </li></ul><ul><ul><li>Opcje opisujące priorytet wiadomości oraz jej zabezpieczenia. </li></ul></ul>
    183. 183. Implementacja workflow (8). @MailSend . <ul><li>[IncludeDocLink] </li></ul><ul><ul><li>Dodaje łącze (link) do dokumentu. </li></ul></ul><ul><li>[Sign] </li></ul><ul><ul><li>Podpisuje cyfrowo wiadomość pocztową. </li></ul></ul><ul><li>[Encrypt] </li></ul><ul><ul><li>Szyfruje wiadomość pocztową za pomocą kluczy publicznych adresatów. Tylko oni mogą odszyfrować wiadomość. </li></ul></ul><ul><li>[PriorityHigh] </li></ul><ul><ul><li>Powoduje, że wiadomość jest wysyłana natychmiast (ważne, gdy jest kilka serwerów w organizacji). </li></ul></ul><ul><li>[ReturnReceipt] </li></ul><ul><ul><li>Wymaga potwierdzenia przeczytania wiadomości. </li></ul></ul>
    184. 184. Implementacja workflow (9). Przykład . <ul><li>Przykład może być następujący: </li></ul><ul><li>@MailSend (&quot;David Lee/&quot;;&quot;&quot;;&quot;Joseph Smith/Support&quot;;&quot;Status Report&quot;; &quot;Sorry it's late!&quot;; &quot;STATUS&quot;:&quot;PLANS&quot;; [SIGN] : [DELIVERYREPORTCONFIRMED] : [RETURNRECEIPT]) </li></ul>
    185. 185. Implementacja workflow (10). Przykład . <ul><li>W poniższym przykładzie wysyłany jest mail do Kierownika departamentu: </li></ul><ul><ul><li>sendto := ManagerName; </li></ul></ul><ul><ul><li>copy := NULL; </li></ul></ul><ul><ul><li>bcc := NULL; </li></ul></ul><ul><ul><li>subject := &quot;Nowy wniosek oczekuje na akceptację&quot;; </li></ul></ul><ul><ul><li>bodytext := &quot;Nowy wniosek urlopowy został wysłany. Aby go otworzyć kliknij ten link - &quot;; </li></ul></ul><ul><ul><li>bodyfields := NULL; </li></ul></ul><ul><ul><li>flags := [IncludeDoclink]; </li></ul></ul><ul><ul><li>@MailSend(sendto;copy;bcc;subject;bodytext;bodyfields;flags) </li></ul></ul>
    186. 186. Implementacja workflow (11). Przykład . <ul><li>W tym przypadku Manager zmienia status wniosku urlopowego i przesyła poczta informacje o przejrzeniu dokumentu: </li></ul><ul><li>sendto := RequestedBy; </li></ul><ul><li>copy := NULL; </li></ul><ul><li>bcc := NULL; </li></ul><ul><li>subject := &quot;Wniosek o urlop został zaktualizowany&quot;; </li></ul><ul><li>bodytext := &quot;Twój wniosek o urlop został przejrzany przez Kierownika. Aby go obejrzeć kliknij link: &quot;; </li></ul><ul><li>bodyfields := NULL; </li></ul><ul><li>flags := [IncludeDoclink]; </li></ul><ul><li>@MailSend(sendto;copy;bcc;subject;bodytext;bodyfields;flags) </li></ul>
    187. 187. Filmy demonstracyjne (9) <ul><li>Przykład zastosowania funkcji @DbColumn do wyświetlania danych. </li></ul><ul><li>Przykład zastosowania funkcji @DbLookup do znajdowania danych. </li></ul><ul><li>Zasada działania opcji Present mail send dialog (gdy nie ma pola SendTo ). </li></ul><ul><li>Zasada działania opcji Present mail send dialog (gdy JEST pole SendTo ). </li></ul><ul><li>Zasada działania funkcji @MailSend z parametrami. </li></ul>
    188. 188. Ćwiczenie 9 <ul><li>Implementacja prostego obiegu dokumentów </li></ul>
    189. 189. Widoki oraz nawigacja w aplikacji Domino Widoki kategoryzowane, wyświetlanie odpowiedzi w widokach.
    190. 190. Rozszerzanie możliwości widoków (1). Widok domyślny. <ul><li>Projektant może zdefiniować widok domyślny w aplikacji. </li></ul><ul><li>Po wybraniu tej opcji, wszystkie inne widoki będą podobne do domyślnego widoku. </li></ul>
    191. 191. Rozszerzanie możliwości widoków (2) <ul><li>Pierwszy widok w aplikacji można zastosować do utworzenia następnych widoków, zmodyfikować je. </li></ul><ul><li>Aby utworzyć nowy widok w oparciu o już istniejący: </li></ul><ul><ul><li>Otworzyć listę widoków w Domino Designer. </li></ul></ul><ul><ul><li>Kliknąć przycisk New View . </li></ul></ul><ul><ul><li>Podać nazwę widoku oraz jego typ. </li></ul></ul><ul><ul><li>Kliknąć przycisk Copy from… </li></ul></ul><ul><ul><li>Wybrać nazwę kopiowanego widoku i kliknąć OK . </li></ul></ul>
    192. 192. Rozszerzanie możliwości widoków (3). Widoki kategoryzowane. <ul><li>Aplikacja zwykle zawiera wiele rodzajów dokumentów. Warto je więc odpowiednio pogrupować w widokach (za pomocą tzw. kategorii). </li></ul><ul><li>Kolumny kategorii: </li></ul><ul><ul><li>Pierwsza kolumna w widoku. </li></ul></ul><ul><ul><li>Mają szerokość = 1 . </li></ul></ul><ul><ul><li>Nie mają tytułu. </li></ul></ul><ul><ul><li>Wyświetlają „twistie”. </li></ul></ul><ul><li>W widoku kategoryzowanym kolumna kategorii zwykle ma większą i pogrubioną czcionkę (dla

    ×