Dokumentacja szablonów XML
Transkrypt
Dokumentacja szablonów XML
Dokumentacja szablonów XML 1. Struktura szablonu Szablony interfejsu zawierają dane oraz zbiór kodów zwanych tagami, opisujące te dane. Tagi w systemie XML składają się z dwóch części – tagów otwierających oraz tagów zamykających (np. <Dane>…</Dane>). Funkcją tagów jest ścisły opis każdego elementu danych, w tym wypadku opisują one strukturę szablonu interfejsu użytkownika wykorzystując dodatkowo atrybuty reprezentujące właściwości poszczególnych elementów. Nazwa pliku XML w jakim znajduje się szablon, jest nazwą obiektu biznesowego, do którego się odnosi, np. Article.xml czy BOM.xml. Struktura szablonu przykładowego obiektu 1. Deklaracja – element służący do identyfikacji pliku XML. Może zawierać m.in. informacje na temat wersji systemu XML oraz kodowania. Aplikacja odczytuje szablony z domyślnym kodowaniem „UTF-8”. Deklaracja nie wymaga bloku zamykającego. 2. Element główny – jest to tag, który może zawierać w sobie inne tagi lub kolekcję tagów gdzie w przypadku szablonu interfejsu element główny zawiera w sobie kolekcję widoków umieszczonych w kontenerach tych widoków. Atrybuty opisujące element główny Nazwa Typ Opis Category String Kategoria w jakiej zostaną umieszczone widoki szablonu Assembly String Przestrzeń nazw w jakiej znajduje się obiekt biznesowy dostarczający dane do szablonu ShowInNavbar Boolean Określa czy widoki z szablonu mają się wyświetlać w panelu nawigacyjnym aplikacji Priority Int32 Wyznacza priorytet wyświetlania się kategorii w 1 panelu nawigacyjnym aplikacji. 3. Zbiór widoków – kolekcja widoków, które wchodzą w skład szablonu 4. Blok zamykający element główny – koniec definicji szablonu interfejsu. 2. Widoki Widoki umieszcza się pomiędzy tagami <Containers>…</Containers> w elemencie głównym szablonu (UiTemplate). Przykład kontenera widoku: Opis poszczególnych atrybutów Nazwa Typ Name String ContainerType Enum Text String RootMenu ShowInNavbar Boolean AllowPreFilter Boolean Priority Int32 View String Opis Jest nazwą dla kontenera widoku. Musi być unikalna. Określa typ widoku jaki będzie reprezentował dany kontener (poniżej opis) Etykieta widoku wyświetlana w panelu nawigacyjnym aplikacji (dla kontenera typu „Form” oznaczać będzie tytuł okna a dla kontenera typu „Menu” etykietę pozycji w menu określanym przez atrybut „RootMenu”) Dla kontenera typu „Menu” określa etykietę menu nadrzędnego w jakiej ma się znaleźć Określa czy widok ma być widoczny w panelu nawigacyjnym aplikacji (nie dotyczy kontenera typu „Form” i „Menu”) Określa czy dla danego widoku będzie można definiować filtry bazodanowe redukujące ilość dostarczanych danych (dotyczy tylko kontenerów typu „List”, „Pivot” oraz „Scheduler”) Wyznacza kolejność w jakiej ma zostać wyświetlony widok w panelu nawigacyjnym aplikacji (nie dotyczy kontenerów typu „Form” i „Menu”) Dla kontenera typu „Menu” określa nazwę (atrybut „Name”) kontenera jaki ma zostać 2 Category String wyświetlony Kategoria w jakiej znajdzie się widok w panelu nawigacyjnym aplikacji Typy widoków „List” – widok tabeli. Przykład widoku tabeli: Kontener repezentujący widok tabularyczny składa się z jednego elementu o typie „UiDataGrid” umieszczonego w bloku „<Items>”, w którego skład wchodzą kontrolki przeznaczone do interakcji z użytkownikiem. Dokładny opis kontrolki „UiDataGrid” znajduje się w dziale „Kontrolki”. Ten typ widoku wywołać można z pozycji w panelu nawigacyjnym aplikacji gdzie etykietę określa atrybut „Text”, kolejność na liście atrybut „Priority” a kategorię w jakiej docelowo ma się znaleźć „Category”. Widok stosuje się do reprezentacji danych w tabeli umieszczonej w głównej części aplikacji. „Pivot” – widok tabeli przestawnej Przykład widoku tabeli przestawnej 3 Widok tabeli przestawnej jest skonstruowany dokładnie w taki sam sposób jak widok tabeli z ta różnicą, że typem kontenera jest „Pivot”, a elementem umieszczonym w bloku „Items” jest „UiPivotGrid”, którego dokładny opis znajduje się w dziale „Kontrolki”. Zastosowaniem tego widoku jest tworzenie zestawień danych. „Scheduler” – widok kalendarza Przykład widoku kalendarza Widok kalendarza daje możliwość przedstawienia w przejrzysty sposób zdarzeń na osi czasu z uwzględnieniem zasobów oraz różnych reprezentacji widoków czasu. Dokładny opis kontrolki „UiScheduler” znajduje się w dziale „Kontrolki”. „Form” – widok okna 4 Widok okna różni się od pozostałych widoków, ponieważ w bloku „Items” nie znajdują się kontrolki tylko kontenery typu „UiPanel” kategoryzujące kontrolki, które się w nich znajdują. Panele reprezentują zakładki w oknie. Ten typ widoku nie jest umieszczany w panelu nawigacyjnym. Wywołuje się go np. klikając w pozycję tabeli w widoku „List”. Okno reprezentuje właściwości konkretnego obiektu biznesowego. UiPanel – kontener będący reprezentacją zakładki w oknie oraz pojemnik na kontrolki. Jedna z jego cech jest możliwość stworzenia siatki, na której będą umieszczone kontrolki się w nim znajdujące. Siatkę definiuje się za pomocą tagów „<ColumnDefinitoin>” oraz „<RowDefinitions>”. Każda pozycja znajdująca się w tych blokach reprezentuje kolumnę lub wiersz na siatce. Dodatkowo panel posiada możliwość przewijania zawartości jeżeli jeśli kontrolek jest zbyt dużo, służy do tego atrybut „Scrollable”, który przyjmuje wartości logiczne (np. Scrollable=”true”) Przykład panelu znajdującego się bloku „Items” kontenera okna ColumnDefinitions – kolekcja definicji kolumn. Jako elementy przyjmuje tagi „ColumnDefinition”, które mają jeden atrybut „Width”. Atrybut „Width” przyjmuje następujące wartości: „*” – dopasuj do siatki (rozciągnięcie kolumny tak aby pokryła całą wolną część okna uwzględniając pozostałe kolumny) „Auto” – dopasuj do zawartości (dopasowanie szerokości kolumny do szerokości najdłuższego elementu jaki się w niej znajduje) „10” – szerokość podana w liczbach (Elementy w tej kolumnie zostaną zmniejszone do podanej szerokości) 5 RowDefinitions – kolekcja definicji wierszy. Jako elementy przyjmuje taki „RowDefinition”, które mają jeden atrybut „Height”. Atrybut „Height” przyjmuje następujące wartości: „*” – dopasuj do siatki (rozciągnięcie wiersza tak aby pokrył całą wolną część okna uwzględniając pozostałe wiersze) „Auto” – dopasuj do zawartości (dopasowanie wysokości wiersza do wysokości najdłuższego elementu jaki się w nim znajduje) „10” – szerokość podana w liczbach (Elementy w tym wierszu zostaną zmniejszone do podanej wysokości) Items – kontrolki widoczne dla użytkownika „Menu” – widok menu. Umieszczany w menu głównym aplikacji. Widok „Menu” charakteryzuje się tym, iż nie jest umieszczany w panelu nawigacyjnym aplikacji, a w jej menu głównym. Występuje wraz z innymi widokami w szablonie. Ten typ kontenera nie służy do przechowywania elementów a jedynie wskazuje na inne widoki znajdujące się w tym samym szablonie. Zachowuje się jak hiperłącze wyświetlające konkretny widok. Powyższy przykład ilustruje w jaki sposób uruchomić przykładowy widok o nazwie (atrybut „View” – wartość powinna wskazywać na nazwę innego widoku) „Ustawienia” z pozycji Menu->Narzędzia w aplikacji, przy czym menu w jakim będzie się znajdować łącze jest określone przez atrybut „RootMenu”. 3. Kontrolki UiElement – element bazowy, po którym dziedziczą wszystkie elementy szablonu. Dziedziczenie polega na dołączeniu wszystkich atrybutów obiektu bazowego do obiektu, który dziedziczy po obiekcie bazowym. Właściwości elementu bazowego 6 Nazwa Typ HorizontalAlignment Enum VerticalAlignment Enum Width Height Column String String Int32 Row Int32 ColumnSpan Int32 RowSpan Int32 Name Margin String String FontSize FontColor IsEnabled String String Boolean Opis Rozmieszczenie w poziomie: - Left – do lewej - Right – do prawej - Center – wyśrodkowane - Stretch - rozciągnięte Rozmieszczenie w pionie: - Top – go góry - Bottom – do dołu - Center – wyśrodkowane - Stretch - rozciągnięte Wysokość elementu Szerokość elementu Kolumna na siatce (w przypadku „UiPanel” i jego definicji siatki) Wiersz na siatce (w przypadku „UiPanel” i jego definicji siatki) Zasięg kolumn (w przypadku „UiPanel” i jego definicji siatki) Zasięg wierszy (w przypadku „UiPanel” i jego definicji siatki) Nazwa elementu, musi być unikalna Margines np. „2,0,2,1” „lewo,góra,prawa,dół” Wielkość czcionki Kolor czcionki Włącza lub wyłącza element do interakcji UiControl :: UiElement – Kontrolka bazowa, dziedziczą po niej inne kontrolki Nazwa Typ Opis Binding String Powiązanie z nazwą właściwości w obiekcie biznesowym. Z właściwości o tej nazwie będą pobierane dane w zależności od kontrolki Hint String Informacja typu ToolTip wyświetlająca się po najechaniu kursorem myszy na kontrolkę Context String Powiązanie do obiektu biznesowego. Jeśli ten atrybut jest użyty to właściwość pobrana atrybutem „Binding” będzie brana z powiązanego obiektu UiDataGrid :: UiControl – tabela, reprezentuje dane w postaci listy, dziedziczy po UiControl zyskując właściwości obiektu dziedziczącego. 7 Właściwości kontrolki Nazwa Columns Typ List Actions AddButtons List List DoubleClickAction UiAction GridFilter String IsEditable Boolean ShowIndicator Boolean ShowGroupPanel Boolean ShowTotalSummary Boolean HideColumnChooser ShowAutoFilterRow Boolean Boolean AllowRefresh AllowAdd Boolean Boolean AllowRemove AllowEdit Boolean Boolean AllowNotyfications Boolean 8 Opis Lista definicji kolumn w tabeli (opis poniżej) Lista definicji akcji (opis w dziale „Akcje”) W przypadku tabeli zawierającej różne typy danych daje możliwość umieszczenia w opcji „Nowy” dodatkowych pozycji dodających dany typ obiektu do listy (opis poniżej) Akcja odwołująca się do skryptu podmieniająca funkcjonalność podwójnego kliknięcia w pozycję na liście (opis poniżej) Filtr pozycji – zapisywany z poziomu kontrolki Określa czy dane na siatce mają możliwość edycji Pokazuje bądź ukrywa boczny panel z lewej ukazujące zmiany dokonane przez użytkownika w wierszach listy Pokazuje bądź ukrywa górny panel grupowania kolumn Pokazuje bądź ukrywa wiersz podsumowań Ukrywa opcję „Konfiguracja widoku” Pokazuje bądź ukrywa wiersz służący do filtrowania danych. Treść filtru zapisywana jest w atrybucie „GridFilter” Zezwala na odświeżanie danych Zezwala na dodawanie elementów do listy (Uwaga: Jeśli atrybut „IsEditable” jest ustawiony na „false” to przy dodaniu nowego elementu do listy zostanie wyświetlone okno, w którym trzeba wypełnić dane dla obiektu, w przeciwnym wypadku zostanie dodany element gdzie jego edycja będzie ręczna) Zezwala na usuwanie elementów z listy Zezwala na uruchomienie okna edycji wiersza Zezwala na obsługę notyfikacji obiektów biznesowych czyli automatycznego dodawania bądź usuwania pozycji w przypadku pracy wielostanowiskowej AllowPrint Boolean Zezwala na opcję wydruków AllowExportToExcel Boolean Zezwala na eksport danych do arkusza kalkulacyjnego AllowFilterAdding Boolean Dodaje opcję w konfiguracji widoków umożliwiającą dodawanie filtrów bazodanowych oraz skryptowych OnAdd String Wyrażenie przekazujące do nowo dodanego obiektu dodatkowe właściwości (opis poniżej) ViewType Enum Typ widoku: - TableView – widok tabeli - TreeListView – widok drzewa KeyField String W przypadku widoku TreeListView – Klucz główny ParentField String W przypadku widoku TreeListView – Klucz obcy ShowHorizontalLines Boolean Pokazuje bądź ukrywa poziome linie na siatce ShowVerticalLines Boolean Pokazuje bądź ukrywa pionowe linie na siatce Kontrolka „UiDataGrid” może działać w dwóch trybach – jako kontrolka umieszczona w oknie oraz jako element głównego widoku o typie „List” (opisanym powyżej w dziale „Widoki”) W przypadku gdy kontrolka jest osadzona jako element widoku „List” nie należy wypełniać atrybutu „Binding” dziedziczonego z „UiControl”, ponieważ dane będą dostarczane z szablonu nadrzędnego, w którym znajduje się widok. W tym trybie kontrolka dostarcza listę wszystkich obiektów z bazy powiązanych z typem obiektu biznesowego, które jednakże można ograniczyć używając filtrów bazodanowych opisanych w dziale „Filtry”. Jeśli „UiDataGrid” znajduje się w oknie, a dokładniej mówiąc, jako pozycja kontenera „UiPanel” w atrybut „Binding” należy wpisać nazwę właściwości reprezentującą kolekcję obiektów, które mają zostać wyświetlone na liście. Rozszerzony opis właściwości Columns (Lista tagów) – lista definicji kolumn w tabeli Opis poszczególnych atrybutów definiujących kolumnę Nazwa Binding Typ String Opis Powiązanie z właściwością obiektu 9 Text Width IsReadonly String Double Boolean Mask Cast String String IsHidden TotalSummary Boolean String GroupSummary String SortOrder String GroupIndex Int32 Filter String UnboundExpression String UnboundType GroupInterval String Enum kolekcji. Jeśli istnieje taka potrzeba można odnieść się do podrzędnych właściwości oddzielając je znakiem ‘.’ Np. „Obiekt.Obiekt.KodObiektu” Nagłówek kolumny Szerokość kolumny Tylko do odczytu, brak możliwości edycji cel w kolumnach Maska tekstu w celach kolumny Rzutowanie typu właściwości pobieranej za pomocą atrybutu „Binding” na określony typ. Używane najczęściej w przypadku, gdy typ właściwości jest interfejsem i w trakcie działania aplikacji reprezentuje inny typ Włącza lub wyłącza widoczność kolumny Wyrażenie definiujące podsumowanie kolumny Wyrażenie definiujące podsumowanie kolumny Kolejność sortowania danych w kolumnie Ascending – rosnąco Descending - malejąco Pozycja kolumny wśród pogrupowanych kolumn Atrybut wykorzystywany gdy kolumna jest powiązana bezpośrednio z obiektem biznesowym (poniżej opis) Wyrażenie używanie w polach kalkulowanych Typ pola kalkulowanego Pozwala pogrupować kolumnę po określonym przedziale: Default – domyślny Value – wartość Date – Data DateMonth – miesiąc DateYear – Rok Aplhabetical - Alfabetycznie DisplayText – wyświetlany tekst OnAdd (Atrybut) – Wyrażenie, za pomocą którego do nowo dodanego obiektu można przekazać dodatkowe właściwości. Można go użyć tylko w przypadku gdy kontrolka „UiDataGrid” znajduje się w widoku „Form”. Wyrażenie posiada dwie zdefiniowane zmienne – „@SRC” oraz „@DST”, gdzie pierwsza z nich reprezentuje 10 obiekt źródłowy a druga obiekt docelowy, dla którego można przekazać właściwość (np. Jeżeli dodajemy nowy obiekt do listy pozycji zleceń produkcyjnych to zmienna „@DST” przyjmuje wartość nowo dodanej pozycji, zaś zmienna „@SRC” wartość nadrzędnego obiektu, w którym znajdują się te pozycje. W takim przypadku podczas dodawania elementu można przypisać zlecenie produkcyjne do nowo dodanej pozycji zlecenia w następujący sposób „@DST.WorkOrder = @SRC”. DoubleClickAction (Tag) – Akcja odwołująca się do skryptu użytkownika napisanego w języku C# nadpisująca domyślną akcję podwójnego kliknięcia myszą w pozycję listy. Akcja nie różni się składnią od standardowej akcji skryptowej. Jedyną różnicą jest sposób jej wywołania. Akcje skryptowe wymagają dodania kontrolki „UiScript” zawierającej skrypt do tego samego kontenera w jakim znajduje się akcja. Dokładny opis działania wyżej przedstawionej akcji sktyptowej znajduje się w dziale „Akcje”. AddButtons – Daje możliwość rozszerzenia standardowej czynności dodawania nowego obiektu do listy o dodatkowe pozycje. Właściwość tą stosuje się w przypadku gdy na liście mogą znajdować się różne typy obiektów dziedziczące po typie bazowym różniące się kilkoma właściwościami w zależności od swojego typu. Nazwa Typ Text Type String String Icon String Opis Etykieta pozycji Pełna nazwa typu obiektu, który ma zostać dodany do listy Nazwa pliku ikony (bez rozszerzenia) 11 UiPivotGrid :: UiControl – tabela przestawna, reprezentuje dane w postaci zestawień. Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Atrybuty: Nazwa Field AllowExportToExcel Typ List Boolean AllowFilterAdding Boolean AllowCellEditing ShowColumnGrandTotals Boolean Boolean ShowColumnTotals Boolean ShowRowGrandTotals Boolean ShowRowTotals Boolean RowTreeWidth RowTreeHeight RowTreeOffset FieldRowTotalsLocation Int32 Int32 Int32 Enum FieldColumnTotalsLocation Enum Opis Lista definicji pól (opis poniżej) Zezwala na eksport danych do arkusza kalkulacyjnego Zezwala na dodawanie filtrów bazodanowych i skryptowych Zezwala na edycję wartości cel Pokazuje całkowite podsumowanie wartości kolumn Pokazuje podsumowanie kolumn Pokazuje całkowite podsumowanie wartości wierszy Pokazuje podsumowanie wierszy Szerokość wiersza w drzewie Wysokość wiersza w drzewie Offset wiersza w drzewie Lokalizacja podsumowania wierszy: - „Tree” – w drzewie - „Far” – pod wierszem - Near – nad wierszem Lokalizacje podsumowań kolumn: - Far – za kolumną - Near – przed kolumną Fields – lista definicji pól w tabeli przestawnej. Definicja pola reprezentuje właściwość obiektu biznesowego, z którym powiązana jest kontrolka „UiPivotGrid” za pomocą atrybutu „Binding” w przypadku gdy kontrolka jest umieszczona w oknie, w przeciwnym wypadku nie używać tego atrybutu, ponieważ gdy pivot znajduje się w widoku „Pivot” kontekst pobierany jest z typu aktualnego zestawu danych. Atrybuty pola: Nazwa Filters Typ List Opis Lista filtrów pól 12 Binding String Area Enum AreaIndex Int32 SortOrder Enum AllowedAreas Enum GroupInterval Enum FormatType Enum Width Int32 Nazwa powiązanej właściwości pobieranej z aktualnego kontekstu kontrolki Obszar w jakim znajduje się pole: - „RowArea” – wiersze - „ColumnArea” – kolumny - „FilterArea” – filtry - „DataArea” - dane Kolejność pola w obszarze w jakim się znajduje Kolejność sortowania danych w polu: - „Ascending” – rosnąco - „Descending” - malejąco Obszary dostępne dla pola – Zawiera te same wartości co atrybut „Area” z tą różnicą, że można je łączyć oddzielając je spacją (np. „RowArea DataArea ColumnArea”) Przedział grupy: - „Default” – domyślny - „Date” – data - „DateDay” – dzień - „DateDayOfWeek” – dzień w tygodniu - „DateDayOfYear” – dzień w roku - „DateWeekOfMonth” – tydzień w miesiącu - „DateWeekOfYear” – tydzień w roku - „DateMonth” – miesiąc - „DateQuarter” – kwartał - „DateYear” – rok - „YearAge” – rok w danym wieku - „MonthAge” – miesiąc w danym wieku - „WeekAge” – tydzień w danym wieku - „DayAge” – dzień w danym wieku - „Alphabetical” – alfabetycznie - „Numeric” – numeryczne - „Hour” – godzina Format pola: - „None” – brak formatowania - „Numeric” – numeryczne - „DateTime” – data-czas Szerokość pola 13 Height Name UnboundExpression FormatString Int32 String String String SortByField String Wysokość pola Unikalna nazwa dla pola Wyrażenie dla pola kalkulowanego Maska dla pola (np. „n2” – oznacza liczbę z dwoma miejscami po przecinku) Sortuje dane na podstawie innego pola. W ten atrybut należy wpisać nazwę innego pola (atrybut „Name”) Typ podsumowania Typ wyświetlania się podsumowania Typ pola kalkulowanego SymmaryType String SummaryDisplayType String UnboundType String UiObject :: UiControl – kontrolka, która służy do wyboru obiektu biznesowego. Dziedziczy po „UiControl”. Tę kontrolkę można umieścić wyłącznie w oknie. W atrybut „Context” kontrolki należy wpisać nazwę właściwości z obiektu biznesowego a w atrybut „Binding” nazwę właściwości kontekstu będącą opisem dla kontrolki. Atrybuty „UiObject”: Nazwa Typ VisibleColumns String Filter String Style Enum AddButton Boolean DelButton Boolean DetailsButton Boolean 14 Opis Oddzielone średnikiem nazwy właściwości z obiektu kontekstowego wchodzące w skład kolumn w oknie wyboru obiektu. Tylko wymienione kolumny zostaną wyświetlone. Jeśli atrybut jest pusty, zostaną wyświetlone wszystkie kolumny zadeklarowane w widoku listy obiektu Filtr ograniczający ilość obiektów ładowanych do okna wyboru (opis poniżej) Styl kontrolki: - „ButtonEdit” – wybór obiektu następuje w oknie - „LookupEdit” – obiekt wybierany jest z listy rozwijanej Włącza lub wyłącza możliwość dodawania nowego obiektu z poziomu kontrolki Włącza lub wyłącza możliwość odpięcia obiektu od kontrolki Włącza lub wyłącza możliwość IsReadonly IsEditableWhenNew Boolean Boolean podglądu obiektu w nowym oknie Tylko do odczytu Wartość obiektu można edytować tylko w przypadku gdy obiekt nadrzędny jest tworzony Filter – Atrybut ten ogranicza ilość danych, które mogą zostać wybrane z listy. Filtr jest częścią zapytania SQL występującą po klauzuli „WHERE”. Zapisywany jest jako wyrażenie warunkowe zawierające nazwy właściwości obiektu biznesowego będące reprezentacjami kolumn w tabeli bazy danych. Ważne jest aby każdy warunek był umieszczony pomiędzy nawiasami (np. Filter=„((Kolumna1=1) AND (Kolumna2=’jakiś tekst’))”). Przykład użycia kontrolki: UiReference :: UiControl – Referencja do obiektu nie powiązanego z obiektem bazowym (np. przypisanie dostawcy do towary, itd.). . Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. W atrybut „Context” podaje się nazwę cechy referencyjnej a w atrybut „Binding” nazwę właściwości opisującej obiekt zwrócony przez cechę. Atrybuty: Nazwa IsReadonly DelButton Typ Boolean Boolean Opis Tylko do odczytu Włącza lub wyłącza możliwość odpięcia cechy referencyjnej od kontrolki Przykład użycia: UiTextBox :: UiControl – Pole tekstowe. . Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Kontrolkę powiązuje się z właściwością za pomocą atrybutu „Binding”. Atrybuty kontrolki: Nazwa Typ HorizontalTextAlignment Enum 15 Opis Wyrównanie tekstu w poziomie: VerticalTextAlignment Enum IsReadOnly IsMultiline Boolean Boolean Mask IsEditableWhenNew String Boolean - „Stretch” – domyślny - „Center” – wyśrodkowany - „Left” – do lewej - „Right” – do prawej Wyrównanie tekstu w pionie: - „Stretch” – domyślny - „Center” – wyśrodkowany - „Top” – do góry - „Bottom” – do dołu Tylko do odczytu Włącza lub wyłącza pisanie w trybie wielolinijkowym Maska tekstu Wartość można edytować tylko w przypadku gdy obiekt nadrzędny jest tworzony Przykład użycia kontrolki: UiCheckBox :: UiControl – Kontrolka wyboru wartości logicznej. . Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Atrybuty kontrolki: Nazwa IsReadonly IsEditableWhenNew Typ Boolean Boolean Opis Tylko do odczytu Wartość można edytować tylko w przypadku gdy obiekt nadrzędny jest tworzony Atrybut „Expression” – Używany w przypadku gdy etykieta kontrolki ma przyjąć określone przez użytkownika wartości np. Expression=”UICHECKBOX(Prawda/Fałsz)” z czego pierwszym argumentem jest wartość, która ma zostać przypisana etykiecie, gdy pole jest zaznaczone a drugi argument w przeciwnym wypadku. Przykład użycia kontrolki: 16 UiComboBox :: UiControl - Lista rozwijana, generowana z typu Enum. . Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Kontrolkę powiązuje się z właściwością za pomocą atrybutu „Binding”. Atrybuty kontrolki: Nazwa Dictionary IsTextEditbale Typ String Boolean Values List Opis Nazwa słownika (opis poniżej) Włącza lub wyłącza możliwość edycji tekstu w kontrolce Lista definicji pól listy rozwijanej pozwalająca zlokalizować nazwy na inny język (opis poniżej) Dictionary – Jest nazwą słownika utworzonego w aplikacji. Na podstawie tego słownika zostanie utworzona lista z możliwością elementu. Values – Lokalizacja nazw z listy, składa się z pozycji „UiComboBoxValue” Atrybuty pozycji listy values: Nazwa Typ Opis Binding String Nazwa pozycji Text String Zlokalizowana nazwa Przykład użycia kontrolki oraz lokalizacji nazw: UiLabel :: UiControl – Etykieta. Kontrolka nie używa atrybutu „Binding”, przedstawia jedynie tekst ułatwiający kategoryzacje innych kontrolek w oknie. Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Atrybuty kontrolki: Nazwa IsBold Typ Boolean 17 Opis Włącza lub wyłącza pogrubienie tekstu w kontrolce Przykład użycia: UiAction :: UiControl – Akcja, opis kontrolki i sposób jej użycia znajduje się w dziale „Akcje”. Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. UiScheduler :: UiControl – Kalendarz. Dziedziczy po „UiControl” zyskując atrybuty obiektu dziedziczonego. Kalendarz jest kontrolką wchodzącą w skład widoku „Scheduler” oraz samodzielną kontrolką, która może być umieszczona w oknie. „UiScheduler” używa atrybutu „AppointentBinding” zamiast „Binding” jako powiązania z zestawem danych. W przypadku gdy kalendarz jest widokiem nie można ustawić powiązania, dane będą dostarczane z zestawu danych pobranego z głównego widoku. Atrybuty kalendarza: Nazwa Labels List Statuses List Scales List CustomEvents List CustomAppointmenActions List ResourceFilters List ResourceBinding DefaultObjectBinding String String DisibleDefaultAction Boolean AllowAppointmentFilter Boolean Typ 18 Opis Lista definicji kolorów etykiet dla pozycji (opis poniżej) Lista definicji statusów dla pozycji (opis poniżej) Lista definicji skal dla widoku osi czasu (opis poniżej) Lista definicji akcji dla kalendarza (opis poniżej) Lista definicji akcji dla pozycji kalendarza (opis poniżej) Lista definicji filtrów zasobów (opis poniżej) Powiązanie z obiektem zasobu Przeciąża domyślną akcję edycji umożliwiając otwarcie innego obiektu niż reprezentuje pozycja kalendarza. Powiązanie musi być nazwą właściwości pozycji będącą obiektem Wyłącza domyślną akcję tworzenia nowej pozycji Włącza lub wyłącza możliwość AllowResourceFilter Boolean VisibleResources Int32 NewAppointmentLabel String AppointmentBinding String AllowFilterAdding Boolean filtrowania pozycji Włącza lub wyłącza możliwość filtrowania zasobów Determinuje ilość wyświetlanych zasobów na ekranie Etykieta menu odpowiedzialna za tworzenie nowej pozycji kalendarza Powiązanie z zestawem danych dostarczającym pozycje. Nie używa się w przypadku gdy kontrolka jest elementem widoku „Scheduler” Włącza lub wyłącza możliwość dodawania filtrów bazodanowych Włącza lub wyłącza możliwość ręcznej edycji etykiety pozycji Wyłącza możliwość ręcznego usuwania pozycji Typ widoku: - „DayView” – dzień - „MonthView” – miesiąc - „TimelineView” – oś czasu - „WeekView” – tydzień - „WorkWeekView” – tydzień roboczy Powiązania właściwości pozycji (opis poniżej) Powiązania właściwości zasobu (opis poniżej) AllowEditAppointmentSubject Boolean DisibleAppointnemtDeleting Boolean ViewType Enum AppointmentMapping Enum ResourceMapping Enum Labels - Lista definicji kolorów etykiet dla pozycji. Atrybuty: Nazwa Color DisplayName Typ String String Opis Kolor Nazwa Statuses - Lista definicji statusów dla pozycji. Atrybuty: 19 Nazwa Color DisplayName Typ String String Opis Kolor Nazwa Scales - Lista definicji skal dla widoku osi czasu. Atrybuty: Nazwa Type Enum IsEnabled Boolean Typ Opis Typ skali: - „Day” – dzień - „FixedInterval” – definiowalny - „Hour” – godzina - „Month” – miesiąc - „Quarter” – kwatał - „Week” – tydzień - „Year” – rok Włącza lub wyłącza skalę CustomEvents - Lista definicji akcji dla kalendarza. Atrybuty: Nazwa Label ObjectTypeName String String Start String End String Resource String Place Enum Typ Opis Etykieta akcji Pełna nazwa typu obiektu biznesowego Powiązanie z właściwością obiektu biznesowego Powiązanie z właściwością obiektu biznesowego Powiązanie z właściwością obiektu biznesowego Umiejscowienie akacji. Akcja zawsze znajduje się w menu kontekstowym i dodatkowo: - „Menu” – jako pozycja menu - „Toolbar” – jako pozycja paska narzędzi Pozycje można łączyć oddzielając je spacją, w te sposób akcja może znajdować się w kliku miejscach (np. „Menu Toolbar”) CustomAppointmentActions - Lista definicji akcji dla pozycji kalendarz. 20 Atrybuty: Nazwa Method String Label UserControlAssembly String String UserControl String Typ Opis Nazwa metody, która wywoła akcja z obiektu Etykieta akcji W przypadku, gdy akcja wywoływana jest z kontrolki użytkownika w ten atrybut wpisuje się nazwę biblioteki, w której znajduje się kontrolka (bez rozszerzenia) Nazwa klasy w kontrolce użytkownika, w której znajduje się metoda ResourceFilters - Lista definicji filtrów zasobów Atrybuty: Nazwa Binding String Caption Value IsActive String String Boolean Typ Opis Powiązanie do właściwości obiektu zasobu (również cechy, w tym wypadku składnia jest następująca Binding=”Features[moja nazwa cechy].Value”) Etykieta filtru Wartość filtru Włącza lub wyłącza filtr AppointmentMapping – Powiązania właściwości pozycji kalendarza. W atrybuty wpisuje się nazwy właściwości odpowiadające konkretnemu przeznaczeniu. Atrybuty: Nazwa AllDay Start End Label String String String String Location ResourceId String String Typ 21 Opis Zdarzenie całodniowe Rozpoczęcie zdarzenia Zakończenie zdarzenia Etykieta(Kolor). Właściwość obiektu powinna być typu Int32, ponieważ labele pobierane są listy „Labels” po identyfikatorze Miejsce Identyfikator zasobu Status String Subject Type Description String String String Status. Właściwość obiektu powinna być typu Int32, ponieważ statusy pobierane są listy „Statuses” po identyfikatorze Etykieta tekstowa zdarzenia Typ wydarzenia Opis wydarzenia ResourceMapping – Powiązania właściwości zasobów kalendarza. W atrybuty wpisuje się nazwy właściwości odpowiadające konkretnemu przeznaczeniu. Nazwa Id Caption Color Image Typ String String String String Opis Identyfikator zasobu Etykieta zasobu Kolor zasobu Obrazek, która zostaje umieszczony w etykiecie zasobu 4. Akcje Akcje są to odnośniki do metod zawartych w obiektach biznesowych, kontrolkach użytkownika lub pobranych ze skryptów napisanych w języku C#. Akcja jest to kontrolka „UiAction” dziedzicząca po „UiControl”. W przypadku akcji skryptowej wymagane jest utworzenie w tym samym kontenerze kontrolki „UiScript” zawierającej skrypt akcji. Wyróżniamy trzy typy akcji: Akcje standardowe – Ten typ akcji wywołuje metody zawarte wewnątrz obiektu biznesowego lub z kontrolki użytkownika (biblioteki DLL zawierającej dodatkowe metody np. specjalne okna, których nie można wygenerować za pomocą szablonu interfejsu.) Akcje skryptowe – Akcje wywoływane ze skryptów napisanych w języku C#. Do prawidłowego działania ten typ akcji wymaga umieszczenia w tym samym kontenerze kontrolki „UiScript”, która zawiera skrypt. Akcje parametrowe – Akcja służąca do wywoływania metod, które zawierają parametry. Przeznaczona jest jedynie dla metod z obiektów biznesowych. Atrybuty akcji 22 Nazwa Place Typ Opis Umiejscowienie akcji: - „None” – brak umiejscowienia - „Button” – akcja w przycisku na oknie (tylko w przypadku gdy akcja znajduje się jako osobna kontrolka i nie jest pozycją akcji „UiDataGrid” - „Toolbar” – akcja jako pozycja w pasku narzędzi - „Menu” – jako pozycja menu „Czynności” Enum Icon Message String UiMessage UiDataGridRef String Wartości można łączyć dzięki czemu akcja może być umieszczana w kilku miejscach na raz (np. „Menu Toolbar”) Nazwa pliku ikony (bez rozszerzenia) Informacja dialogowa wyświetlana przed wywołaniem akcji np. w celu potwierdzenia (opis poniżej) Referencja do kontrolki „UiDataGrid” gdzie trzeba podać nazwę kontrolki (atrybut „Name”). Nie dotyczy akcji osadzonych jako pozycja „UiDataGrid”. Referencja do kontrolki użytkownika („UiCustomControl”, umieszona w tym samym kontenerze), gdzie trzeba podać nazwę kontrolki (atrybut „Name”). W przypadku „UiDataGrid” wykonuje akcję dla całego zestawu danych zawartych w kontrolce. Typ akcji: - „Normal„ – akcja standardowa, wywoływana z obiektu biznesowego lub kontrolki użytkownika - „Script” – akcja skryptowa, wywoływana ze skryptu napisanego w języku C# - „Parameter” – akcja parametrowa, wywołuje metody z parametrami z obiektu biznesowego Przestrzeń nazw w jakim znajduje się skrypt. Tylko dla akcji sktyptowych Referencja do kontrolki „UiScript” gdzie trzeba podać nazwę kontrolki (atrybut „Name”). Tylko dla akcji skryptowych Sposób odświeżania danych: - Rows – odświeża tylko wiersze - DataSource – odświeża całą kontrolkę UiCustomControlRef String GetAllLines Boolean ActionType Enum Namespace String ScriptName Stirng RefreshMode Enum 23 SoftRefresh Boolean Parameters List SourceType Enum Dotyczy tylko „UiDataGrid” Miękkie odświeżanie danych, tzn. że dane nie są odświeżane z bazy, odświeżane są tylko dane z obiektów. Lista parametrów. Dotyczy tylko akcji parametrowych (opis poniżej) Źródło danych dla akcji: - DataContext – obiekt nadrzędny - DataSource – dane zawarte na liście obiektów Dotyczy tylko kontrolki „UiDataGrid” umieszczonej w widoku „Form” UiScript – kontrolka dziedzicząca po „UiControl” zawierająca definicję metod wywoływanych przez akcje skryptowe. Atrybuty „UiScript” Nazwa Script Typ CDATA Opis Skrypt napisany w języku C# składający się z przestrzeni nazw, klasy oraz metod. Skrypt umieszczony jest w bloku CDATA, ponieważ niektóre znaki używane w programowaniu są zastrzeżonymi znakami tworzącymi strukturę pliku XML. (np. [!CDATA[…sktyptC#...]]) Przykład skryptu: Przykład akcji skryptowej używającej powyższy skrypt 24 Akcja jako pozycja „UiDataGrid”: Akcja jako element widoku: UiMessage – Informacja w oknie dialogowym wyświetlana przed wywołaniem akcji. Przykładowym zastosowaniem jest ostrzeżenie użytkownika przed długotrwałą operacją. Atrybuty: Nazwa Title Text Icon String String Enum Buttons Enum Typ Opis Tytuł okna informacji Treść informacji Ikona okna informacji: - „None” – Brak ikony - „Error”, „Hand”, „Stop” – Ikona błędu - „Question” – Ikona zapytania - „Exclamation” – Ikona wykrzyknika - „Warning”- Ikona ostrzeżenia - „Asterisk” – Ikona gwiazdki - „Information” – Ikona informacyjna Przyciski w oknie informacyjnym: - „Ok” – przycisk potwierdzający - „OkCancel” –przycisk potwierdzający oraz anulujący Przykład jako pozycja „UiDataGrid: Przykład jako element widoku: 25 Przykłady użycia akcji skryptowych, standardowych oraz „DoubieClickAction” w kontrolce „UiDataGrid”: Akcje parametrowe Atrybuty parametru: Nazwa Typ ControlType Enum Opis Typ kontrolki użytej w oknie akcji parametrowej, do której będą wprowadzane dane: - „TextBox” – pole tekstowe przyjmujące wartość tekstową - „Decimal” – pole tekstowe przyjmujące 26 ParameterType Context String String Binding String Text IsEnabled String Boolean wartość liczbową - „Object” – kontrolka z możliwością wyboru obiektu biznesowego o danym typie - DatePicker – wybór daty - ComboBox – Lista rozwijana tworzona z typu Enum Nazwa typu parametru metody Nazwa właściwości w obiekcie biznesowym, która będzie kontekstem dla parametru. Tylko w przypadku gdy „ControlType” jest typu „Object” Nazwa właściwości pobieranej z atrybutu „Context”. Tylko w przypadku gdy „ControlType” jest typu „Object” Etykieta parametru Włącza lub wyłącza parametr. Jeśli parametr jest wyłączony to do metody przekazana zostanie domyślna wartość dla typu. Przykład: Akcje w oknie w widoku „Form” W tym typie akcji przy tworzeniu ich w szablonie należy używać tagu „UiElement”. Należy je umieszczać jak pozostałe kontrolki w bloku „<Items>” w kontenerze. Te akcje są odseparowane od kontrolki „UiDataGrid”, więc wykonywane na obiekcie źródłowym tworzącym okno, lecz istnieje sposób aby połączyć je z „UiDataGrid” za pomocą atrybutu „UiDataGridRef”, w które należy wpisać nazwę grida (atrybut „Name”). Akcje z kontrolki użytkownika Ten typ akcji wymaga dodatkowej kontrolki umieszczonej w tym samym kontenerze w jakim znajduje się kontrolka akcji. W przypadku gdy akcja jest pozycją kontrolki 27 „UiDataGrid” to dodatkowa kontrolka czyli „UiCustomControl” zostaje umieszczona w tym samym kontenerze co grid. „UiCustomControl” – element zawierający w sobie dane na temat obiektu kontrolki użytkownika. Atrybuty „UiCustomControl”: Nazwa Typ Assembly String Control String Opis Nazwa biblioteki (bez rozszerzenia) Nazwa kontrolki dziedziczącej po interfejsie „ICustomControl” Kontrolka użytkownika nie ładuje się do pamięci wraz z aplikacją. Jest ładowana przy pierwszym wywołaniu akcji DontConnectOnStartup Boolean Przykład: 5. Filtry Filtry służą do ograniczania ilości danych, jakie są dostarczane z bazy danych. Reprezentowane są w postaci kontrolek umieszczonych w poszczególnych kontenerach widoków pomiędzy tagami „<Filters>...</Filters>” (nie dotyczy widoku „Form” i „Menu”). UiFilter – pozycja listy filtrów: Atrybuty filtra: Nazwa Binding Text Expression String String String IsEnabled Type Boolean Enum Typ Opis Powiązanie z nazwą właściwości Etykieta filtru Wyrażenie definiujące filtr (opis poniżej) Włącza lub wyłącza filtr Typ filtru: - „Database” – bazodanowy 28 EnumValues - „Script” – służący jako parametr dla skryptów Służy do lokalizacji nazw elementów (tylko w przypadku filtru jako lista rozwijana) (opis poniżej) List Expression – Wyrażenie definiujące filtr. Typy wyrażeń: - „Period” – zakres dat, zapisywane w postaci „Period(dataDd…dataDo)„ lub w postaci zdefiniowanych słów: „wczoraj”, „dzisiaj”, „jutro”, „poprzedni tydzień”, „ten tydzień”, „następny tydzień”, „poprzedni miesiąc”, „ten miesiąc”, „następny miesiąc”, „poprzedni rok”, „ten rok”, „następny rok”, „teraz”, „dzień”, „tydzień”, „miesiąc”, „kwartał”, „rok”. - „Equals” – równe, zapisywanie w postaci „Equals(‘abc’)” lub „Equals(1)” - „NotEquals” – nie równe, zapisywane w ten sam sposób jak „Equals” - „Like” – podobne do, zapisywane w postaci „Like(‘%te%’)” - „GreaterOrEqual” – większe lub równe, zapisywane w postaci „GreaterOrEqual(1)” - „LessOrEqual” – mniejsze lub równe, zapisywane w postaci „LessOrEqual(1)” - „GreaterThan” – większe, zapisywane w postaci „GreaterThan(1)” - „LessThan” – mniejsze, zapisywane w postaci „LessThan(1)” - „Between” – pomiędzy, zapisywane w postaci „Between(1,10)” - „ObjectIdEquals” – id obiektu równe, zapisywane w postaci „ObjectIdEquals(TypObiektuBiznesowego,WłaściwoścZObiektu,IsObiektu)” Przykład: EnumValues - Służy do lokalizacji nazw elementów (tylko w przypadku filtru jako lista rozwijana) Atrybuty: Nazwa Binding Text Typ Opis String String Tekst pozycji list Zlokalizowany tekst pozycji Przykład: 29 30