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

Podobne dokumenty