soneta-form-xml.skill
This commit is contained in:
@@ -0,0 +1,734 @@
|
|||||||
|
---
|
||||||
|
name: soneta-form-xml
|
||||||
|
description: Tworzenie plików form.xml opisujących formularze, zakładki i widoki UI dla platformy enova365/Soneta Enterprise. Używaj gdy użytkownik prosi o utworzenie zakładki formularza (pageform.xml), widoku listy (viewform.xml), formularza (form.xml), lookupu (lookupform.xml), lub gdy pyta o strukturę i składnię plików form.xml dla enova365.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Soneta Form XML - Formularze UI
|
||||||
|
|
||||||
|
Skill do tworzenia plików XML definiujących interfejs użytkownika w systemie enova365/Soneta Enterprise.
|
||||||
|
|
||||||
|
## Typy plików formularzy
|
||||||
|
|
||||||
|
| Typ pliku | Wzorzec nazwy | Przeznaczenie |
|
||||||
|
|-----------|---------------|---------------|
|
||||||
|
| **pageform.xml** | `{DataType}.{PageName}.pageform.xml` | Zakładka formularza edycji obiektu |
|
||||||
|
| **viewform.xml** | `{NazwaWidoku}.viewform.xml` | Widok listy zarejestrowanej jako folder (listy główne) |
|
||||||
|
| **gridform.xml** | `{IdentyfikatorListy}.gridform.xml` | Indywidualne ustawienia listy na formularzu |
|
||||||
|
| **lookupform.xml** | `{NazwaPodpowiedzi}.lookupform.xml` | Lista wyboru (lookup) |
|
||||||
|
| **form.xml** | `{Nazwa}.form.xml` | Współdzielony fragment UI (include) |
|
||||||
|
|
||||||
|
### Format nazwy pageform.xml
|
||||||
|
|
||||||
|
Nazwa pliku składa się z 4 części rozdzielonych kropkami:
|
||||||
|
|
||||||
|
```
|
||||||
|
{DataType}.{PageName}.pageform.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
- **DataType** - typ danych, dla którego definiowana jest zakładka (np. `Towar`, `Kontrahent`, `DokumentHandlowy`)
|
||||||
|
- **PageName** - nazwa zakładki (np. `Ogolne`, `Dodatkowe`, `Adresy`)
|
||||||
|
- **pageform.xml** - stały sufiks
|
||||||
|
|
||||||
|
**Przykłady:**
|
||||||
|
- `Towar.Ogolne.pageform.xml`
|
||||||
|
- `Towar.Dodatkowe.pageform.xml`
|
||||||
|
- `Kontrahent.Adresy.pageform.xml`
|
||||||
|
- `DokumentHandlowy.Pozycje.pageform.xml`
|
||||||
|
|
||||||
|
### Format nazwy viewform.xml
|
||||||
|
|
||||||
|
Nazwa pliku składa się z 3 części rozdzielonych kropkami:
|
||||||
|
|
||||||
|
```
|
||||||
|
{NazwaWidoku}.viewform.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
**Przykłady:**
|
||||||
|
- `Towary.viewform.xml`
|
||||||
|
- `Kontrahenci.viewform.xml`
|
||||||
|
- `DokumentyHandlowe.viewform.xml`
|
||||||
|
|
||||||
|
### Format nazwy gridform.xml
|
||||||
|
|
||||||
|
Nazwa pliku składa się z 3 części rozdzielonych kropkami:
|
||||||
|
|
||||||
|
```
|
||||||
|
{IdentyfikatorListy}.gridform.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
**Przykłady:**
|
||||||
|
- `PozycjeDokumentu.gridform.xml`
|
||||||
|
- `RachunkiBankowe.gridform.xml`
|
||||||
|
|
||||||
|
### Format nazwy lookupform.xml
|
||||||
|
|
||||||
|
Nazwa pliku składa się z 3 części rozdzielonych kropkami:
|
||||||
|
|
||||||
|
```
|
||||||
|
{NazwaPodpowiedzi}.lookupform.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
**Przykłady:**
|
||||||
|
- `Towary.lookupform.xml`
|
||||||
|
- `Kontrahenci.lookupform.xml`
|
||||||
|
|
||||||
|
## Hierarchia elementów XML
|
||||||
|
|
||||||
|
Elementy XML dzielą się na trzy grupy dziedziczące po `uiElement`:
|
||||||
|
|
||||||
|
1. **Elementy proste** - Field, Label, Command, Gap, Html, GroupBy, Axis
|
||||||
|
2. **Kontenery elementów** - Group, Stack, Row, Flow, Bar, Dashboard, Include, Page (dziedziczą po `ContainerElement`)
|
||||||
|
3. **Kolekcje** - Grid, Cards, Scheduler, Chart, Diagram, Pivot (dziedziczą po `CollectionElement`)
|
||||||
|
|
||||||
|
## Struktura dokumentu
|
||||||
|
|
||||||
|
Każdy plik formularza zaczyna się od deklaracji XML i elementu głównego `DataForm`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<DataForm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd">
|
||||||
|
<!-- zawartość -->
|
||||||
|
</DataForm>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Atrybuty DataForm
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `Priority` | Kolejność zakładek (domyślnie 100, niższa = wcześniej) |
|
||||||
|
| `RightName` | Opcjonalny. Nazwa uprawnienia do zakładki (tylko gdy inna niż standardowa) |
|
||||||
|
| `Contexts` | Warunki licencyjne, np. `"Licence.HAN \| Licence.FA"` (nie bindowane) |
|
||||||
|
| `ViewType` | Typ widoku: `None`, `Dialog`, `Form`, `Folder` |
|
||||||
|
| `Mode` | Tryb: `None`, `Form`, `Folder`, `Wizard`, `Modal`, `Popup`, `Frame` |
|
||||||
|
| `DataType` | Opcjonalny. Pełne określenie typu danych (wymagany tylko gdy nazwa pliku nie określa jednoznacznie typu), np. `"Soneta.Handel.DokumentHandlowy,Soneta.Handel"` |
|
||||||
|
|
||||||
|
## Wspólne atrybuty elementów
|
||||||
|
|
||||||
|
Następujące atrybuty mogą być użyte w **dowolnym** elemencie form.xml:
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `Name` | Identyfikator elementu, który można wykorzystać w kodzie C# |
|
||||||
|
| `Class` | Klasy stylów (lista wartości oddzielonych spacją) |
|
||||||
|
| `DataContext` | Zmienia kontekst danych dla elementu i wszystkich jego elementów podrzędnych |
|
||||||
|
| `Visibility` | Warunek widoczności (bindowalne z logiką biznesową) |
|
||||||
|
| `Renderable` | Czy element ma być dostępny. Wyrażenie liczone **raz** przy logowaniu operatora - optymalne dla warunków zależnych od środowiska, licencji i innych parametrów niezmiennych w trakcie sesji |
|
||||||
|
|
||||||
|
### Atrybut CaptionHtml
|
||||||
|
|
||||||
|
Atrybut `CaptionHtml` występuje w elementach: `Label`, `Field`, `Group`, `Page`, `Command` i innych.
|
||||||
|
|
||||||
|
Może zawierać:
|
||||||
|
- Tekst etykiety (w formacie HTML)
|
||||||
|
- Wyrażenia bindowane w klamrach: `{wyrażenie}` - wartość tekstowa jest automatycznie kodowana do HTML
|
||||||
|
- Wyrażenia zwracające kod HTML: `{WłaściwośćHtml}` - nazwa musi mieć sufiks `Html`, wtedy wartość nie jest kodowana
|
||||||
|
- Podwójne klamry dla literalnych znaków: `{{` → `{`, `}}` → `}`
|
||||||
|
|
||||||
|
**Specjalne przypadki w `Field`:**
|
||||||
|
- Brak atrybutu → automatyczna etykieta wyliczana na podstawie danych
|
||||||
|
- `CaptionHtml=" "` (spacja) → pusta etykieta (miejsce na etykietę zostaje zachowane)
|
||||||
|
- `CaptionHtml=""` (pusty) → brak etykiety (pole bez miejsca na etykietę)
|
||||||
|
|
||||||
|
**Alternatywa:** Zamiast `CaptionHtml` można użyć `CaptionMarkdown` dla etykiet w formacie Markdown.
|
||||||
|
|
||||||
|
## Elementy kontenerowe
|
||||||
|
|
||||||
|
### Page - Zakładka
|
||||||
|
|
||||||
|
Główny kontener dla zawartości zakładki:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Page CaptionHtml="Ogólne" DataContext="{DataSource}">
|
||||||
|
<!-- zawartość zakładki -->
|
||||||
|
</Page>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `Name` | Opcjonalny. Unikalny identyfikator zakładki |
|
||||||
|
| `CaptionHtml` | Tytuł zakładki. Może zawierać `/` do grupowania zakładek (np. `"Dokumenty/Faktury"`) |
|
||||||
|
| `DataContext` | Źródło danych. `{DataSource}` oznacza obiekt edytowany na zakładce, ale można wskazać inne dane |
|
||||||
|
| `Visibility` | Wyrażenie warunkowe widoczności (bindowalne) |
|
||||||
|
| `Renderable` | Czy zakładka ma być dostępna. Wyrażenie liczone raz przy logowaniu - optymalne dla warunków zależnych od środowiska, licencji itp. |
|
||||||
|
| `Key` | Skrót klawiaturowy wywołujący zakładkę formularza |
|
||||||
|
| `GroupIcon` | Ikona grupy zakładek |
|
||||||
|
|
||||||
|
### Zasada budowania zakładki formularza
|
||||||
|
|
||||||
|
Zakładka składa się z elementów `<Group>`. Każda grupa może zawierać:
|
||||||
|
|
||||||
|
1. **Listę pól w kolumnie** - pola ułożone pionowo jedno pod drugim
|
||||||
|
2. **Układ wielokolumnowy** - `<Row>` zawierający kilka `<Stack>` z polami
|
||||||
|
3. **Listę elementów podrzędnych** - np. Grid, ewentualnie poprzedzony polami filtrującymi
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Page CaptionHtml="Ogólne" DataContext="{DataSource}">
|
||||||
|
<!-- Grupa z polami w jednej kolumnie -->
|
||||||
|
<Group CaptionHtml="Dane podstawowe">
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa" Width="*" EditValue="{Nazwa}" />
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Grupa z układem dwukolumnowym -->
|
||||||
|
<Group CaptionHtml="Dane szczegółowe">
|
||||||
|
<Row>
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="Data" Width="15" EditValue="{Data}" />
|
||||||
|
<Field CaptionHtml="Status" Width="15" EditValue="{Status}" />
|
||||||
|
</Stack>
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="Typ" Width="15" EditValue="{Typ}" />
|
||||||
|
<Field CaptionHtml="Źródło" Width="15" EditValue="{Zrodlo}" />
|
||||||
|
</Stack>
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Grupa z listą -->
|
||||||
|
<Group CaptionHtml="Pozycje">
|
||||||
|
<Grid Width="*" Height="*" EditValue="{Pozycje}">
|
||||||
|
<Field CaptionHtml="Nazwa" Width="*" EditValue="{Nazwa}" />
|
||||||
|
</Grid>
|
||||||
|
</Group>
|
||||||
|
</Page>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Group - Grupa pól
|
||||||
|
|
||||||
|
Wizualna ramka grupująca powiązane pola:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Group CaptionHtml="Dane podstawowe">
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa" Width="*" EditValue="{Nazwa}" />
|
||||||
|
</Group>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `CaptionHtml` | Tytuł grupy |
|
||||||
|
| `LabelWidth` | Opcjonalny. Szerokość etykiet dla wszystkich pól w kontenerze |
|
||||||
|
| `Visibility` | Warunek widoczności (bindowalne z logiką biznesową) |
|
||||||
|
| `Renderable` | Czy grupa ma być dostępna (liczone raz przy logowaniu) |
|
||||||
|
|
||||||
|
### Stack - Układ pionowy
|
||||||
|
|
||||||
|
Układa elementy jeden pod drugim:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Stack LabelWidth="15">
|
||||||
|
<Field CaptionHtml="Pole 1" EditValue="{Pole1}" />
|
||||||
|
<Field CaptionHtml="Pole 2" EditValue="{Pole2}" />
|
||||||
|
</Stack>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Row - Układ poziomy
|
||||||
|
|
||||||
|
Układa elementy obok siebie w wierszu:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Typ" Width="15" EditValue="{Typ}" />
|
||||||
|
</Row>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Pole na całą szerokość:** użyj `Width="*"`
|
||||||
|
|
||||||
|
**Pola dosunięte do prawej:** umieść `<Gap Width="*"/>` na początku:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Row>
|
||||||
|
<Gap Width="*" />
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Typ" Width="15" EditValue="{Typ}" />
|
||||||
|
</Row>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flow - Układ płynny
|
||||||
|
|
||||||
|
Elementy umieszczane są od lewej do prawej. Gdy nie mieszczą się na formularzu, przenoszone są do nowego wiersza:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Flow Align="true">
|
||||||
|
<Field CaptionHtml="Data od" Width="15" EditValue="{DataOd}" />
|
||||||
|
<Field CaptionHtml="Data do" Width="15" EditValue="{DataDo}" />
|
||||||
|
<Field CaptionHtml="Status" Width="12" EditValue="{Status}" />
|
||||||
|
</Flow>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Elementy pól i kontrolek
|
||||||
|
|
||||||
|
### Field - Pole edycyjne
|
||||||
|
|
||||||
|
Podstawowy element do wyświetlania i edycji danych. Jest generowany **dynamicznie** - w zależności od typu właściwości wyświetla odpowiednią kontrolkę (int → pole numeryczne, bool → checkbox, double → pole z kalkulatorem, typ Sonety → lookup z listą wyboru).
|
||||||
|
|
||||||
|
Minimalny `<Field>` powinien zawierać:
|
||||||
|
- `EditValue` - **wymagany**, binding do właściwości
|
||||||
|
- `CaptionHtml` - etykieta pola
|
||||||
|
- `Width` - szerokość pola
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field CaptionHtml="Nazwa pola" Width="20" EditValue="{Właściwość}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `EditValue` | **Wymagany**. Binding do właściwości: `{Właściwość}` lub `{new Extender.Właściwość}` |
|
||||||
|
| `CaptionHtml` | Etykieta pola (patrz sekcja "Atrybut CaptionHtml") |
|
||||||
|
| `Width` | Szerokość pola w znakach lub px (`*` = wypełnij) |
|
||||||
|
| `OuterWidth` | Całkowita szerokość z etykietą (do wyrównywania w pionie) |
|
||||||
|
| `LabelWidth` | Szerokość etykiety |
|
||||||
|
| `Height` | Wysokość w wierszach lub px (dla pól wieloliniowych) |
|
||||||
|
| `IsReadOnly` | Warunek tylko do odczytu (bindowalne z logiką biznesową). Logika biznesowa ma wyższy priorytet |
|
||||||
|
| `Visibility` | Warunek widoczności (bindowalne z logiką biznesową): `true`/`false`/`Visible`/`Hidden`/`Collapsed` |
|
||||||
|
| `Renderable` | Czy pole ma być dostępne (liczone raz przy logowaniu) |
|
||||||
|
| `Format` | Formatowanie wartości w standardzie .NET `string.Format`. Pole `{0}` to wartość edytowana |
|
||||||
|
| `Footer` | Agregacja w stopce **tylko na listach**: `Sum`, `Count`, `Average`, `Min`, `Max` |
|
||||||
|
| `CheckedValue` | Wartość dla **RadioButton** |
|
||||||
|
| `Class` | Klasy stylów (patrz sekcja Class) |
|
||||||
|
| `DataContext` | Zmienia kontekst danych dla tego pola i elementów podrzędnych |
|
||||||
|
|
||||||
|
#### RadioButton
|
||||||
|
|
||||||
|
Aby utworzyć RadioButton, dodaj parametr `CheckedValue`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field Width="20" CaptionHtml="Towar" EditValue="{Typ}" CheckedValue="Towar" />
|
||||||
|
<Field Width="20" CaptionHtml="Usługa" EditValue="{Typ}" CheckedValue="Usługa" />
|
||||||
|
<Field Width="20" CaptionHtml="Receptura" EditValue="{Typ}" CheckedValue="Receptura" />
|
||||||
|
```
|
||||||
|
|
||||||
|
Pola z tym samym `EditValue` i różnymi `CheckedValue` tworzą grupę RadioButton.
|
||||||
|
|
||||||
|
### Label - Etykieta
|
||||||
|
|
||||||
|
Tekst bez możliwości edycji:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Label CaptionHtml="Tekst informacyjny" Width="30" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gap - Odstęp
|
||||||
|
|
||||||
|
Wypełniacz przestrzeni. Użyteczny do dosunięcia elementów do prawej strony (gdy `<Gap Width="*" />` jest na początku wiersza).
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Row>
|
||||||
|
<Gap Width="*" />
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
</Row>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Uwaga:** `<Gap Width="*" />` jako ostatni element w wierszu nie jest potrzebny - nic nie zmienia.
|
||||||
|
|
||||||
|
### Command - Przycisk/Polecenie
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Command CaptionHtml="Zapisz"
|
||||||
|
MethodName="Zapisz"
|
||||||
|
DataContext="{new MojExtender}"
|
||||||
|
Visibility="{IsVisibleButton}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `MethodName` | Nazwa metody do wywołania (szukana w klasie z kontekstu formularza) |
|
||||||
|
| `MoreMethodName` | Dodatkowa metoda (dla przycisków dzielonych - wersja przeglądowa) |
|
||||||
|
| `Key` | Skrót klawiszowy |
|
||||||
|
| `CommandStyle` | Styl: `Default`, `Important`, `Red`, `Green`, `Blue` |
|
||||||
|
| `Icon` | Nazwa ikony (nie działa w enova365 desktop) |
|
||||||
|
| `Class` | Klasy stylów |
|
||||||
|
| `DataContext` | Zmienia kontekst danych (np. `{new MojExtender}` - patrz sekcja Bindowanie danych) |
|
||||||
|
| `Renderable` | Czy przycisk ma być dostępny (liczone raz przy logowaniu) |
|
||||||
|
|
||||||
|
### Include - Dołączenie fragmentu
|
||||||
|
|
||||||
|
Wstawia zawartość innego pliku form.xml lub dynamicznie generowany element UI:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Statyczne dołączenie pliku -->
|
||||||
|
<Include Source="Adres.form.xml" />
|
||||||
|
|
||||||
|
<!-- Z kontekstem danych -->
|
||||||
|
<Include Source="Adres.form.xml" DataContext="{AdresKorespondencyjny}" />
|
||||||
|
|
||||||
|
<!-- Dynamiczny element z kodu C# -->
|
||||||
|
<Include Source="{DynamicznyFormularz}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `Source` | Nazwa pliku form.xml **lub** wyrażenie bindujące zwracające element DOM (`UIElement`) z kodu. Wyrażenie bindujące jest wywoływane po każdej zmianie danych, co pozwala budować dynamiczne formularze |
|
||||||
|
| `DataContext` | Opcjonalny. Kontekst danych dla dołączanego fragmentu |
|
||||||
|
| `Path` | Opcjonalny. Określa element pliku form.xml, który zostanie wstawiony (gdy Source jest nazwą pliku) |
|
||||||
|
| `Suffix` | Opcjonalny. Napis dodawany do każdej nazwy (`Name`) elementów dołączonych przez Include |
|
||||||
|
|
||||||
|
## Kolekcje i listy
|
||||||
|
|
||||||
|
### Grid / List - Tabela danych
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Grid Width="*" Height="*"
|
||||||
|
EditValue="{Pozycje}"
|
||||||
|
SelectedValue="{WybranePozycje}"
|
||||||
|
FocusedValue="{AktualnaPozycja}"
|
||||||
|
IsToolbarVisible="true"
|
||||||
|
EditInPlace="true"
|
||||||
|
NewInPlace="true"
|
||||||
|
OrderBy="Data desc"
|
||||||
|
SumType="All"
|
||||||
|
OpenMethodName="OtworzFormularz"
|
||||||
|
IsSmartOpen="true">
|
||||||
|
<Field CaptionHtml="Kod" Width="15" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa" Width="30" EditValue="{Nazwa}" />
|
||||||
|
<Field CaptionHtml="Ilość" Width="10" EditValue="{Ilość}" Footer="Sum" />
|
||||||
|
<GroupBy EditValue="{Kategoria}" IsDescending="false" />
|
||||||
|
</Grid>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis | Default |
|
||||||
|
|---------|------|---------|
|
||||||
|
| `EditValue` | Źródło danych kolekcji | - |
|
||||||
|
| `SelectedValue` | Binding do zaznaczonych wierszy - typ `DataType[]` (tablica) | - |
|
||||||
|
| `FocusedValue` | Binding do podświetlonego wiersza - typ `DataType` (obiekt) | - |
|
||||||
|
| `IsToolbarVisible` | Pokazuj pasek narzędzi | `false` |
|
||||||
|
| `IsFilterRowVisible` | Pokazuj wiersz filtrujący | `false` |
|
||||||
|
| `IsHeaderVisible` | Widoczność nagłówków z tytułami kolumn | `true` |
|
||||||
|
| `EditInPlace` | Edycja bezpośrednio w komórkach | `false` |
|
||||||
|
| `NewInPlace` | Dodawanie przez kliknięcie pustego wiersza | `false` |
|
||||||
|
| `AlwaysAddNewRow` | Nowy wiersz od razu dodawany (Esc nie usuwa) | `false` |
|
||||||
|
| `PreventNewRowOnFocus` | Zapobiegaj nowemu wierszowi przy fokusie | `false` |
|
||||||
|
| `KeepsSequence` | Czy po edycji in-place zachować kolejność wierszy (`true`) czy ponownie sortować (`false`) | `false` |
|
||||||
|
| `OpenMethodName` | Metoda wywoływana po Enter/double-click (domyślnie otwarcie formularza) | - |
|
||||||
|
| `IsSmartOpen` | Kolumna ze strzałką do otwarcia formularza | - |
|
||||||
|
| `NewButton` | Stan przycisku Nowy: `Auto`, `None`, `Visible` | auto |
|
||||||
|
| `EditButton` | Stan przycisku Otwórz | auto |
|
||||||
|
| `UpdateButton` | Stan przycisku Aktualizuj | auto |
|
||||||
|
| `RemoveButton` | Stan przycisku Usuń | auto |
|
||||||
|
| `SearchButton` | Stan przycisku Szukaj | auto |
|
||||||
|
| `MoreButton` | Przycisk więcej: `None`, `Visible`, `Actions` | auto |
|
||||||
|
| `OrderBy` | Domyślne sortowanie (np. `"Kolumna desc"`) | - |
|
||||||
|
| `Filter` | Filtr danych | - |
|
||||||
|
| `ResourceName` | Nazwa pliku grid.xml z indywidualnymi ustawieniami | - |
|
||||||
|
| `SumType` | Typ sum: `None`, `Selected`, `All`, `Groups`, `GroupsNewLine` | `None` |
|
||||||
|
| `ActionsMode` | Czy workery przypięte do listy mają być w menu Czynności formularza: `FormAndControl`, `Control`, `Form` | - |
|
||||||
|
|
||||||
|
#### Atrybuty dla drzewa (Tree)
|
||||||
|
|
||||||
|
| Atrybut | Opis | Default |
|
||||||
|
|---------|------|---------|
|
||||||
|
| `TreeNodesValue` | Binding do węzłów | - |
|
||||||
|
| `TreeHasNodesValue` | Binding sprawdzający czy ma węzły | - |
|
||||||
|
| `TreeParentValue` | Binding do rodzica | - |
|
||||||
|
| `TreeExpandingLevel` | Poziom rozwinięcia: `Collapsed`, `ExpandRoot`, `ExpandRootFix`, `ExpandAll` | `Collapsed` |
|
||||||
|
|
||||||
|
### GroupBy - Grupowanie w Grid
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Grid EditValue="{Pozycje}">
|
||||||
|
<GroupBy EditValue="{Kategoria}" />
|
||||||
|
<Field CaptionHtml="Nazwa" EditValue="{Nazwa}" />
|
||||||
|
</Grid>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Elementy specjalne
|
||||||
|
|
||||||
|
### Chart - Wykres
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Chart EditValue="{DaneWykresu}"
|
||||||
|
Type="Bar"
|
||||||
|
ChartColor="Blue"
|
||||||
|
IsLegendVisible="true">
|
||||||
|
<Field CaptionHtml="Miesiąc" EditValue="{Miesiac}" />
|
||||||
|
<Field CaptionHtml="Wartość" EditValue="{Wartosc}" />
|
||||||
|
<Axis Direction="X" EditValue="{Miesiac}" />
|
||||||
|
<Axis Direction="Y" EditValue="{Wartosc}" />
|
||||||
|
</Chart>
|
||||||
|
```
|
||||||
|
|
||||||
|
Typy wykresów: `Line`, `Bar`, `Pie`, `Donut`, `Spider`, `Polar`, `Area`, `Pyramid`, `Funnel`, `Bubble`, `Scatter`
|
||||||
|
|
||||||
|
### Scheduler - Kalendarz
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Scheduler EditValue="{Zdarzenia}"
|
||||||
|
View="Weekly"
|
||||||
|
SelectedInterval="{WybranyOkres}">
|
||||||
|
<Field CaptionHtml="Tytuł" EditValue="{Tytul}" />
|
||||||
|
<Field CaptionHtml="Początek" EditValue="{DataOd}" />
|
||||||
|
<Field CaptionHtml="Koniec" EditValue="{DataDo}" />
|
||||||
|
</Scheduler>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gantt / GanttDiagram - Harmonogram
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Gantt EditValue="{Zadania}" ViewType="WeekDay">
|
||||||
|
<Field CaptionHtml="Zadanie" EditValue="{Nazwa}" />
|
||||||
|
<Field CaptionHtml="Początek" EditValue="{Start}" />
|
||||||
|
<Field CaptionHtml="Koniec" EditValue="{Finish}" />
|
||||||
|
</Gantt>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Html / Markdown - Treść formatowana
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Html EditValue="{TrescHtml}" Width="*" Height="200" />
|
||||||
|
<Markdown EditValue="{TrescMarkdown}" Width="*" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Indicator - Wskaźnik
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Indicator CaptionHtml="Sprzedaż"
|
||||||
|
EditValue="{WartoscSprzedazy}"
|
||||||
|
UnitSymbol="PLN" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dashboard - Panel kafelkowy
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Dashboard>
|
||||||
|
<Group Class="DashboardItem" CaptionHtml="Sprzedaż">
|
||||||
|
<Indicator EditValue="{Sprzedaz}" />
|
||||||
|
</Group>
|
||||||
|
</Dashboard>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Bindowanie danych
|
||||||
|
|
||||||
|
Każdy element form.xml znajduje się w odpowiednim kontekście powiązanego obiektu C#. Powiązany typ danych zależy od typu danych dla którego zdefiniowany jest pageform.xml.
|
||||||
|
|
||||||
|
### Powiązanie typu z formularzem
|
||||||
|
|
||||||
|
Powiązanie z typem w elemencie root odbywa się przez:
|
||||||
|
|
||||||
|
1. **Przez nazwę pliku pageform.xml** - pierwszy człon nazwy pliku (DataType) określa typ obiektu. Np. dla pliku `Towar.Ogolne.pageform.xml` kontekstem jest klasa `Towar`.
|
||||||
|
|
||||||
|
2. **Przez atrybut DataType w DataForm** - jawne określenie typu:
|
||||||
|
```xml
|
||||||
|
<DataForm DataType="Soneta.Handel.Towar,Soneta.Handel">
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Przez rejestrację FolderViewAttribute** - wiążącą folder programu z obiektem biznesowym i formularzem prezentującym ten folder.
|
||||||
|
|
||||||
|
### Zmiana kontekstu danych
|
||||||
|
|
||||||
|
- **DataContext** - zmienia kontekst **aktualnego elementu i wszystkich elementów podrzędnych**:
|
||||||
|
```xml
|
||||||
|
<Group DataContext="{Adres}">
|
||||||
|
<!-- wszystkie pola wewnątrz odwołują się do właściwości obiektu Adres -->
|
||||||
|
<Field CaptionHtml="Miasto" EditValue="{Miasto}" />
|
||||||
|
</Group>
|
||||||
|
```
|
||||||
|
|
||||||
|
- **EditValue** - zmienia kontekst **tylko elementów podrzędnych** (bez aktualnego kontenera):
|
||||||
|
```xml
|
||||||
|
<Grid EditValue="{Pozycje}">
|
||||||
|
<!-- pola wewnątrz odwołują się do właściwości elementu kolekcji Pozycje -->
|
||||||
|
<Field CaptionHtml="Nazwa" EditValue="{Nazwa}" />
|
||||||
|
</Grid>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Składnia wyrażeń w klamrach
|
||||||
|
|
||||||
|
W wyrażeniach `{...}` można odwoływać się do:
|
||||||
|
|
||||||
|
| Składnia | Opis |
|
||||||
|
|----------|------|
|
||||||
|
| `{Właściwość}` | Publiczna właściwość obiektu w kontekście |
|
||||||
|
| `{Metoda()}` | Wartość zwracana przez publiczną metodę. Parametry metody są uzupełniane automatycznie na podstawie aktualnego kontekstu UI (`Soneta.Business.Context`) |
|
||||||
|
| `{Obiekt.Właściwość}` | Właściwość zagnieżdżona |
|
||||||
|
| `{Context.TypDanych.Pole}` | Wartość z aktualnego kontekstu UI (`Soneta.Business.Context`) |
|
||||||
|
| `{Features.NazwaCechy}` | Cechy powiązane z obiektem biznesowym `Row` |
|
||||||
|
| `{Workers.NazwaWorkera.Pole}` | Właściwość workera powiązanego z obiektem (`WorkerAttribute`) |
|
||||||
|
| `{new NazwaExtender.Pole}` | Właściwość extendera (worker niepowiązany z konkretnymi danymi) |
|
||||||
|
| `{Tablica[indeks]}` | Element tablicy pod wskazanym indeksem |
|
||||||
|
| `{.}` | Aktualna wartość w kontekście elementu |
|
||||||
|
|
||||||
|
### Wyrażenia porównań
|
||||||
|
|
||||||
|
| Składnia | Opis |
|
||||||
|
|----------|------|
|
||||||
|
| `{Pole=wartość}` | Porównanie równości |
|
||||||
|
| `{Pole!=wartość}` | Porównanie nierówności |
|
||||||
|
| `{!PoleLogiczne}` | Negacja wartości logicznej |
|
||||||
|
| `{?warunek}` | Warunek oparty o klasę `RowCondition` |
|
||||||
|
|
||||||
|
### Przykłady bindingów
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Proste właściwości -->
|
||||||
|
<Field CaptionHtml="Kod" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa kontrahenta" EditValue="{Kontrahent.Nazwa}" />
|
||||||
|
|
||||||
|
<!-- Właściwości workerów -->
|
||||||
|
<Field CaptionHtml="Saldo" EditValue="{Workers.SaldoWorker.SaldoOgolem}" />
|
||||||
|
|
||||||
|
<!-- Extendery (obiekty tworzone dynamicznie) -->
|
||||||
|
<Field EditValue="{new MojExtender.Właściwość}" />
|
||||||
|
<Command MethodName="Wykonaj" DataContext="{new MojExtender}" />
|
||||||
|
|
||||||
|
<!-- Cechy -->
|
||||||
|
<Field CaptionHtml="Cecha" EditValue="{Features.MojaCecha}" />
|
||||||
|
|
||||||
|
<!-- Kontekst UI -->
|
||||||
|
<Field EditValue="{Context.Operator.Nazwa}" IsReadOnly="true" />
|
||||||
|
|
||||||
|
<!-- Aktualna wartość -->
|
||||||
|
<Field EditValue="{.}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wyrażenia warunkowe (RowCondition)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
Visibility="{?State=Added}" <!-- stan obiektu -->
|
||||||
|
Visibility="{?!State=Added}" <!-- negacja -->
|
||||||
|
Visibility="{?Typ=Towar or Typ=Usługa}" <!-- OR -->
|
||||||
|
Visibility="{?Aktywny and Widoczny}" <!-- AND -->
|
||||||
|
```
|
||||||
|
|
||||||
|
## Atrybut Class - Style i zachowania
|
||||||
|
|
||||||
|
Atrybut `Class` może zawierać wiele wartości oddzielonych spacją:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field Class="BoldLabel LeftAlign ImageEdit" ... />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Style etykiet
|
||||||
|
- `BoldLabel` - pogrubiona etykieta
|
||||||
|
- `CenterLabel` - wycentrowana
|
||||||
|
- `RightLabel` - wyrównana do prawej
|
||||||
|
- `MultilineLabel` - wieloliniowa
|
||||||
|
- `NoColonLabel` - bez dwukropka
|
||||||
|
- `WarningLabel` - ostrzeżenie
|
||||||
|
- `InfoLabel` - informacja
|
||||||
|
- `TipLabel` - podpowiedź
|
||||||
|
|
||||||
|
### Style czcionek
|
||||||
|
- `LargeFont` - duża czcionka
|
||||||
|
- `BoldFont` - pogrubiona
|
||||||
|
- `GreenFont` - zielona
|
||||||
|
- `RedFont` - czerwona
|
||||||
|
- `WarningFont` - ostrzegawcza
|
||||||
|
- `FixedWidthFont` - stała szerokość
|
||||||
|
|
||||||
|
### Wyrównanie
|
||||||
|
- `LeftAlign`, `RightAlign`, `TextRight`
|
||||||
|
|
||||||
|
### Typy edytorów
|
||||||
|
- `PasswordEdit` - hasło
|
||||||
|
- `ColorEdit` - wybór koloru
|
||||||
|
- `RichEdit` - edytor HTML
|
||||||
|
- `ImageEdit` - obraz
|
||||||
|
- `FileEdit` - wybór pliku
|
||||||
|
- `FolderEdit` - wybór folderu
|
||||||
|
- `PathPropertyEdit` - ścieżka
|
||||||
|
- `HyperlinkEdit` - hiperłącze
|
||||||
|
- `EmailEdit` - email
|
||||||
|
- `PhoneEdit` - telefon
|
||||||
|
- `RatingEdit` - ocena gwiazdkowa
|
||||||
|
- `ProgressEdit` - pasek postępu
|
||||||
|
- `IconEdit` - ikona
|
||||||
|
- `CheckButtonEdit` - checkbox jako przycisk
|
||||||
|
- `XmlEdit` - edytor XML
|
||||||
|
- `DataTextEdit` - tekst danych
|
||||||
|
|
||||||
|
### Zachowania
|
||||||
|
- `Collapsable` - zwijalna grupa
|
||||||
|
- `Expandable` - rozwijalna
|
||||||
|
- `Expanded` - domyślnie rozwinięta
|
||||||
|
- `Hidden` - ukryty
|
||||||
|
- `FirstResponder` - pole z fokusem zaraz po otwarciu formularza
|
||||||
|
- `Scrollable` - przewijalna
|
||||||
|
- `ImageCircle` - okrągły obraz
|
||||||
|
- `Tree` - drzewo
|
||||||
|
|
||||||
|
### Układy i pozycjonowanie
|
||||||
|
- `GroupItem` - element umieszczony na wysokości nagłówka `<Group>` (zwykle po prawej stronie), służy do sterowania zawartością pozostałych elementów grupy
|
||||||
|
- `Reverse` - układa elementy w odwrotnej kolejności (od prawej do lewej lub od dołu do góry)
|
||||||
|
- `SmartOpen` - kolumna w `Grid` wyróżniona do szybkiego otwierania formularza (ze strzałką)
|
||||||
|
|
||||||
|
### Przyciski
|
||||||
|
- `MainCommand` - główny przycisk
|
||||||
|
- `SplitCommand` - przycisk z menu
|
||||||
|
- `CommandNoText` - tylko ikona
|
||||||
|
- `CommandIcoText` - ikona i tekst
|
||||||
|
- `WorkerCommand` - przycisk workera
|
||||||
|
- `WizardCommand` - przycisk kreatora
|
||||||
|
- `PrintButton` - przycisk drukowania
|
||||||
|
|
||||||
|
## Appearance - Warunkowe formatowanie
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field CaptionHtml="Saldo" EditValue="{Saldo}">
|
||||||
|
<Appearance Condition="{?Saldo<0}" ForeColor="Red" FontBold="true" />
|
||||||
|
<Appearance Condition="{?Saldo>1000}" BackColor="LightGreen" />
|
||||||
|
</Field>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Przykłady
|
||||||
|
|
||||||
|
### Prosta zakładka (pageform.xml)
|
||||||
|
|
||||||
|
Plik: `MojObiekt.Ogolne.pageform.xml`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<DataForm xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd"
|
||||||
|
Priority="10">
|
||||||
|
<Page CaptionHtml="Ogólne" DataContext="{DataSource}">
|
||||||
|
<Group CaptionHtml="Dane podstawowe">
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa" Width="*" EditValue="{Nazwa}" />
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Data" Width="15" EditValue="{Data}" />
|
||||||
|
<Field CaptionHtml="Status" Width="15" EditValue="{Status}" />
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
<Group CaptionHtml="Pozycje">
|
||||||
|
<Grid Width="*" Height="*" EditValue="{Pozycje}" IsToolbarVisible="true">
|
||||||
|
<Field CaptionHtml="Lp" Width="5" EditValue="{Lp}" />
|
||||||
|
<Field CaptionHtml="Opis" Width="*" EditValue="{Opis}" />
|
||||||
|
<Field CaptionHtml="Wartość" Width="15" EditValue="{Wartosc}" Footer="Sum" />
|
||||||
|
</Grid>
|
||||||
|
</Group>
|
||||||
|
</Page>
|
||||||
|
</DataForm>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Współdzielony fragment (form.xml)
|
||||||
|
|
||||||
|
Plik: `Adres.form.xml`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<DataForm xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd">
|
||||||
|
<Stack>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Ulica" Width="40" EditValue="{Ulica}" />
|
||||||
|
<Field CaptionHtml="Nr domu" Width="10" EditValue="{NrDomu}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Kod pocztowy" Width="12" EditValue="{KodPocztowy}" />
|
||||||
|
<Field CaptionHtml="Miasto" Width="*" EditValue="{Miasto}" />
|
||||||
|
</Row>
|
||||||
|
</Stack>
|
||||||
|
</DataForm>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Referencje
|
||||||
|
|
||||||
|
- Pełna specyfikacja elementów: [references/ELEMENTS.md](references/ELEMENTS.md)
|
||||||
|
- Schemat XSD: [references/Form.xsd](references/Form.xsd)
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Szablon: Współdzielony fragment formularza (form.xml)
|
||||||
|
|
||||||
|
Format nazwy pliku: {Nazwa}.form.xml
|
||||||
|
Przykłady:
|
||||||
|
- Adres.form.xml
|
||||||
|
- AdresH.form.xml
|
||||||
|
- KontaktDane.form.xml
|
||||||
|
|
||||||
|
Dołączanie w innym pliku:
|
||||||
|
<Include DataContext="{Adres}" Source="Adres.form.xml" />
|
||||||
|
-->
|
||||||
|
<DataForm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd">
|
||||||
|
|
||||||
|
<!-- Stack jako główny kontener - układ pionowy -->
|
||||||
|
<Stack>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Ulica" Width="40" EditValue="{Ulica}" />
|
||||||
|
<Field CaptionHtml="Nr domu" Width="10" EditValue="{NrDomu}" />
|
||||||
|
<Field CaptionHtml="Nr lokalu" Width="10" EditValue="{NrLokalu}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Kod pocztowy" Width="12" EditValue="{KodPocztowy}" Class="LeftAlign" />
|
||||||
|
<Field CaptionHtml="Miejscowość" Width="*" EditValue="{Miejscowosc}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Poczta" Width="30" EditValue="{Poczta}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Województwo" Width="25" EditValue="{Wojewodztwo}" />
|
||||||
|
<Field CaptionHtml="Kraj" Width="6" EditValue="{KodKraju}" />
|
||||||
|
<Field CaptionHtml="" Width="20" EditValue="{Kraj}" />
|
||||||
|
</Row>
|
||||||
|
</Stack>
|
||||||
|
|
||||||
|
</DataForm>
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Szablon: Zakładka z warunkami handlowymi
|
||||||
|
|
||||||
|
Plik: Kontrahent.WarunkiHandlowe.pageform.xml
|
||||||
|
|
||||||
|
Zawiera przykłady: Row, Gap, Command, Grid z rachunkami bankowymi
|
||||||
|
-->
|
||||||
|
<DataForm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd"
|
||||||
|
Priority="20">
|
||||||
|
|
||||||
|
<Page CaptionHtml="Warunki handlowe" DataContext="{DataSource}">
|
||||||
|
|
||||||
|
<!-- Warunki płatności -->
|
||||||
|
<Group CaptionHtml="Warunki płatności">
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Sposób płatności" Width="20" EditValue="{SposobZaplaty}" />
|
||||||
|
<Field CaptionHtml="Termin (dni)" Width="10" EditValue="{Termin}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Waluta" Width="10" EditValue="{Waluta}" />
|
||||||
|
<Field CaptionHtml="Domyślny płatnik" Width="*" EditValue="{Platnik}" />
|
||||||
|
<!-- Przyciski akcji -->
|
||||||
|
<Command CaptionHtml="Dodaj" Width="8" MethodName="Dodaj"
|
||||||
|
DataContext="{new PlatnikExtender}" Visibility="{IsVisibleDodaj}" />
|
||||||
|
<Command CaptionHtml="Usuń" Width="8" MethodName="Usun"
|
||||||
|
DataContext="{new PlatnikExtender}" Visibility="{IsVisibleUsun}" />
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Limity kredytowe -->
|
||||||
|
<Group CaptionHtml="Limity">
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Blokada sprzedaży" Width="8" Class="LeftAlign" EditValue="{BlokadaSprzedazy}" />
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Limit kredytu" Width="18" EditValue="{TypLimitu}" />
|
||||||
|
<Field CaptionHtml="" Width="15" EditValue="{LimitKredytu}" />
|
||||||
|
<Field CaptionHtml="Dostępny" Width="15" EditValue="{LimitDostepny}"
|
||||||
|
Visibility="{new LimitExtender.IsVisible()}" />
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Rachunki bankowe - tabela -->
|
||||||
|
<Group CaptionHtml="Rachunki bankowe">
|
||||||
|
<Grid Width="*" Height="*"
|
||||||
|
EditValue="{Rachunki}"
|
||||||
|
IsToolbarVisible="true"
|
||||||
|
NewInPlace="true"
|
||||||
|
EditInPlace="true">
|
||||||
|
<Field CaptionHtml="Bank" Width="25" EditValue="{Rachunek.Bank}" />
|
||||||
|
<Field CaptionHtml="Numer rachunku" Width="35" EditValue="{Rachunek.Numer}" />
|
||||||
|
<Field CaptionHtml="Domyślny" Width="8" EditValue="{Domyslne}" />
|
||||||
|
<Field CaptionHtml="Status" Width="15" EditValue="{Status}" />
|
||||||
|
</Grid>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</Page>
|
||||||
|
</DataForm>
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Szablon: Zakładka formularza (pageform.xml)
|
||||||
|
|
||||||
|
Format nazwy pliku: {DataType}.{PageName}.pageform.xml
|
||||||
|
Przykłady:
|
||||||
|
- Towar.Ogolne.pageform.xml
|
||||||
|
- Kontrahent.Adresy.pageform.xml
|
||||||
|
- Zamowienie.Pozycje.pageform.xml
|
||||||
|
-->
|
||||||
|
<DataForm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns="http://www.enova.pl/schema/form.xsd"
|
||||||
|
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd"
|
||||||
|
Priority="10">
|
||||||
|
|
||||||
|
<Page CaptionHtml="Ogólne" DataContext="{DataSource}">
|
||||||
|
|
||||||
|
<!-- Grupa z polami w jednej kolumnie -->
|
||||||
|
<Group CaptionHtml="Dane podstawowe">
|
||||||
|
<Field CaptionHtml="Kod" Width="20" EditValue="{Kod}" />
|
||||||
|
<Field CaptionHtml="Nazwa" Width="*" EditValue="{Nazwa}" />
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="Data utworzenia" Width="15" EditValue="{DataUtworzenia}" />
|
||||||
|
<Field CaptionHtml="Status" Width="15" EditValue="{Status}" />
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Grupa z układem dwukolumnowym -->
|
||||||
|
<Group CaptionHtml="Dane szczegółowe">
|
||||||
|
<Row>
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="Typ" Width="15" EditValue="{Typ}" />
|
||||||
|
<Field CaptionHtml="Kategoria" Width="20" EditValue="{Kategoria}" />
|
||||||
|
</Stack>
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="Źródło" Width="15" EditValue="{Zrodlo}" />
|
||||||
|
<Field CaptionHtml="Priorytet" Width="10" EditValue="{Priorytet}" />
|
||||||
|
</Stack>
|
||||||
|
</Row>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<!-- Grupa z listą pozycji -->
|
||||||
|
<Group CaptionHtml="Pozycje">
|
||||||
|
<Grid Width="*" Height="*"
|
||||||
|
EditValue="{Pozycje}"
|
||||||
|
IsToolbarVisible="true"
|
||||||
|
EditInPlace="true"
|
||||||
|
NewInPlace="true">
|
||||||
|
<Field CaptionHtml="Lp" Width="5" EditValue="{Lp}" />
|
||||||
|
<Field CaptionHtml="Opis" Width="*" EditValue="{Opis}" />
|
||||||
|
<Field CaptionHtml="Ilość" Width="10" EditValue="{Ilosc}" Footer="Sum" />
|
||||||
|
<Field CaptionHtml="Wartość" Width="15" EditValue="{Wartosc}" Footer="Sum" />
|
||||||
|
</Grid>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</Page>
|
||||||
|
</DataForm>
|
||||||
@@ -0,0 +1,864 @@
|
|||||||
|
# Pełna specyfikacja elementów Form XML
|
||||||
|
|
||||||
|
Kompletna lista elementów XML dostępnych w plikach form.xml platformy enova365.
|
||||||
|
|
||||||
|
## Spis treści
|
||||||
|
|
||||||
|
1. [Elementy kontenerowe](#elementy-kontenerowe)
|
||||||
|
2. [Elementy pól](#elementy-pól)
|
||||||
|
3. [Elementy kolekcji](#elementy-kolekcji)
|
||||||
|
4. [Elementy wykresów i wizualizacji](#elementy-wykresów-i-wizualizacji)
|
||||||
|
5. [Elementy specjalne](#elementy-specjalne)
|
||||||
|
6. [Typy wyliczeniowe (Enum)](#typy-wyliczeniowe)
|
||||||
|
7. [Wspólne atrybuty (uiElement)](#wspólne-atrybuty)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy kontenerowe
|
||||||
|
|
||||||
|
### Stack
|
||||||
|
Układ pionowy - elementy jeden pod drugim.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Stack LabelWidth="15" Visibility="{Warunek}">
|
||||||
|
<!-- elementy potomne -->
|
||||||
|
</Stack>
|
||||||
|
```
|
||||||
|
|
||||||
|
Dziedziczy atrybuty z `containerElement`.
|
||||||
|
|
||||||
|
### Row
|
||||||
|
Układ poziomy - elementy obok siebie.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Row OuterWidth="80" Visibility="{Warunek}">
|
||||||
|
<!-- elementy potomne -->
|
||||||
|
</Row>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flow
|
||||||
|
Układ płynny z automatycznym zawijaniem.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Flow Align="true" Arrange="Horizontally">
|
||||||
|
<!-- elementy potomne -->
|
||||||
|
</Flow>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Align` | boolean | Wyrównanie elementów |
|
||||||
|
| `Arrange` | enum | `Horizontally` lub `Vertically` |
|
||||||
|
|
||||||
|
### Group
|
||||||
|
Wizualna ramka grupująca elementy.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Group CaptionHtml="Nazwa grupy" LabelWidth="20" DescriptionHtml="{Opis}">
|
||||||
|
<!-- elementy potomne -->
|
||||||
|
</Group>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Page
|
||||||
|
Zakładka formularza.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Page Name="NazwaPage"
|
||||||
|
CaptionHtml="Tytuł zakładki"
|
||||||
|
DataContext="{DataSource}"
|
||||||
|
Key="klucz"
|
||||||
|
MultiDataSource="źródło"
|
||||||
|
GroupIcon="ikona"
|
||||||
|
DefaultVisible="true"
|
||||||
|
FirstAction="akcja">
|
||||||
|
<!-- zawartość zakładki -->
|
||||||
|
</Page>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Name` | string | Unikalny identyfikator |
|
||||||
|
| `CaptionHtml` | string | Tytuł zakładki |
|
||||||
|
| `Key` | string | Klucz zakładki |
|
||||||
|
| `MultiDataSource` | string | Wielokrotne źródło danych |
|
||||||
|
| `GroupIcon` | string | Ikona grupy |
|
||||||
|
| `DefaultVisible` | boolean | Domyślna widoczność |
|
||||||
|
| `FirstAction` | string | Pierwsza akcja |
|
||||||
|
|
||||||
|
### Bar
|
||||||
|
Pasek narzędzi.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Bar>
|
||||||
|
<Command CaptionHtml="Akcja" MethodName="Wykonaj" />
|
||||||
|
</Bar>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dashboard
|
||||||
|
Panel kafelkowy/kokpit.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Dashboard TileChangedMethodName="OnTileChanged"
|
||||||
|
FocusedValue="{FocusedTile}"
|
||||||
|
ArrangeMode="Default">
|
||||||
|
<Group Class="DashboardItem">
|
||||||
|
<!-- zawartość kafelka -->
|
||||||
|
</Group>
|
||||||
|
</Dashboard>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Wartości |
|
||||||
|
|---------|-----|----------|
|
||||||
|
| `ArrangeMode` | enum | `Default`, `Canvas`, `Size`, `Visibility` |
|
||||||
|
|
||||||
|
### Include
|
||||||
|
Dołączenie zewnętrznego fragmentu lub dynamicznie generowanego elementu UI.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Statyczne dołączenie pliku -->
|
||||||
|
<Include Source="Adres.form.xml" />
|
||||||
|
|
||||||
|
<!-- Z kontekstem danych -->
|
||||||
|
<Include Source="Adres.form.xml" DataContext="{Adres}" Suffix="Koresp" />
|
||||||
|
|
||||||
|
<!-- Dynamiczny element z kodu C# -->
|
||||||
|
<Include Source="{DynamicznyFormularz}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Wymagany | Opis |
|
||||||
|
|---------|----------|------|
|
||||||
|
| `Source` | **Tak** | Nazwa pliku form.xml **lub** wyrażenie bindujące zwracające element DOM (`UIElement`). Wyrażenie jest wywoływane po każdej zmianie danych - umożliwia dynamiczne formularze |
|
||||||
|
| `DataContext` | Nie | Kontekst danych dla dołączanego fragmentu |
|
||||||
|
| `Path` | Nie | Określa element pliku form.xml do wstawienia (gdy Source jest nazwą pliku) |
|
||||||
|
| `Suffix` | Nie | Napis dodawany do każdej nazwy (`Name`) elementów dołączonych przez Include |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy pól
|
||||||
|
|
||||||
|
### Field
|
||||||
|
Podstawowe pole edycyjne.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field CaptionHtml="Etykieta"
|
||||||
|
CaptionMarkdown="Etykieta _z formatowaniem_"
|
||||||
|
EditValue="{Właściwość}"
|
||||||
|
Width="20"
|
||||||
|
OuterWidth="50"
|
||||||
|
LabelWidth="15"
|
||||||
|
Height="3"
|
||||||
|
LabelHeight="2"
|
||||||
|
Format="N2"
|
||||||
|
IsReadOnly="{Warunek}"
|
||||||
|
Visibility="{Warunek}"
|
||||||
|
CheckedValue="Wartość"
|
||||||
|
Footer="Sum"
|
||||||
|
Aggregate="Average"
|
||||||
|
Important="true"
|
||||||
|
Class="BoldLabel LeftAlign" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Format` | string | Format wyświetlania (np. `N2`, `d`, `C`) |
|
||||||
|
| `CheckedValue` | string | Wartość dla RadioButton |
|
||||||
|
| `Footer` | enum | Agregacja w stopce |
|
||||||
|
| `Aggregate` | enum | Typ agregacji |
|
||||||
|
| `Important` | boolean | Oznaczenie jako ważne |
|
||||||
|
|
||||||
|
### Label
|
||||||
|
Etykieta tekstowa (tylko do odczytu).
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Label CaptionHtml="Tekst etykiety"
|
||||||
|
Width="30"
|
||||||
|
Class="BoldLabel CenterLabel" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gap
|
||||||
|
Odstęp/wypełniacz.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Gap Width="*" Height="10" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Splitter
|
||||||
|
Rozdzielacz paneli.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Splitter Class="HorizontalSplitter" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Data
|
||||||
|
Element danych (niewidoczny).
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Data Name="nazwaParametru" Value="wartość" EditValue="{Binding}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy poleceń
|
||||||
|
|
||||||
|
### Command
|
||||||
|
Przycisk/polecenie.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Command CaptionHtml="Tekst przycisku"
|
||||||
|
MethodName="NazwaMetody"
|
||||||
|
MoreMethodName="MetodaDodatkowa"
|
||||||
|
Key="F5"
|
||||||
|
CommandStyle="Important"
|
||||||
|
DataContext="{new MojExtender}"
|
||||||
|
Visibility="{IsVisible}"
|
||||||
|
Icon="ikona">
|
||||||
|
<!-- zagnieżdżone polecenia (submenu) -->
|
||||||
|
<Command CaptionHtml="Podmenu" MethodName="Akcja" />
|
||||||
|
<Group CaptionHtml="Grupa poleceń">
|
||||||
|
<Command ... />
|
||||||
|
</Group>
|
||||||
|
</Command>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Wartości/Opis |
|
||||||
|
|---------|-----|---------------|
|
||||||
|
| `CommandStyle` | enum | `Default`, `Important`, `Red`, `Green`, `Blue` |
|
||||||
|
| `Key` | string | Skrót klawiszowy |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy kolekcji
|
||||||
|
|
||||||
|
### Grid / List
|
||||||
|
Tabela danych.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Grid Width="*" Height="*"
|
||||||
|
EditValue="{Kolekcja}"
|
||||||
|
SelectedValue="{Zaznaczony}"
|
||||||
|
FocusedValue="{Aktywny}"
|
||||||
|
OrderBy="Kolumna desc"
|
||||||
|
Filter="Warunek"
|
||||||
|
IsToolbarVisible="true"
|
||||||
|
IsDateNavigatorVisible="false"
|
||||||
|
IsSmartFilterVisible="true"
|
||||||
|
IsFilterRowVisible="false"
|
||||||
|
FilterPanelWidth="200"
|
||||||
|
VisibleFeatures="search,filter"
|
||||||
|
LocatorFields="Kod,Nazwa"
|
||||||
|
EditInPlace="true"
|
||||||
|
ForceEditInPlace="false"
|
||||||
|
NewInPlace="true"
|
||||||
|
AlwaysAddNewRow="false"
|
||||||
|
PreventNewRowOnFocus="false"
|
||||||
|
OpenMethodName="Otwórz"
|
||||||
|
SequenceMethodName="Sekwencja"
|
||||||
|
IsSmartOpen="true"
|
||||||
|
IsNonOptimalWarning="false"
|
||||||
|
NewButton="Visible"
|
||||||
|
EditButton="Auto"
|
||||||
|
UpdateButton="None"
|
||||||
|
RemoveButton="Visible"
|
||||||
|
SearchButton="Auto"
|
||||||
|
MoreButton="Actions"
|
||||||
|
SumType="All"
|
||||||
|
ActionsMode="FormAndControl"
|
||||||
|
ResourceName="NazwaZasobu"
|
||||||
|
TreeNodesValue="{Węzły}"
|
||||||
|
TreeHasNodesValue="{MaWęzły}"
|
||||||
|
TreeParentValue="{Rodzic}"
|
||||||
|
TreeExpandingLevel="ExpandRoot"
|
||||||
|
FocusedColumnValue="{AktywnaKolumna}"
|
||||||
|
IsHeaderVisible="true"
|
||||||
|
KeepsSequence="false"
|
||||||
|
IgnoreChangingInSort="Kolumna"
|
||||||
|
SortAfterEditInPlace="true"
|
||||||
|
DragAndDrop="true"
|
||||||
|
AllowCellSelection="false"
|
||||||
|
SelectedCellsValue="{ZaznaczoneKomórki}"
|
||||||
|
Name="nazwaGrida">
|
||||||
|
|
||||||
|
<Field CaptionHtml="Kolumna" Width="20" EditValue="{Pole}" Footer="Sum" />
|
||||||
|
<GroupBy EditValue="{Grupowanie}" IsDescending="false" PreventSorting="false" />
|
||||||
|
<Data Name="param" Value="wartość" />
|
||||||
|
<UserFilter Value="filtr" />
|
||||||
|
</Grid>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Atrybuty przyciski (enumCollectionButtonState)
|
||||||
|
- `Auto` - automatycznie
|
||||||
|
- `None` - ukryty
|
||||||
|
- `Visible` - widoczny
|
||||||
|
|
||||||
|
#### TreeExpandingLevel
|
||||||
|
- `Collapsed` - zwinięte
|
||||||
|
- `ExpandRoot` - rozwiń korzeń
|
||||||
|
- `ExpandRootFix` - rozwiń korzeń (stałe)
|
||||||
|
- `ExpandAll` - rozwiń wszystko
|
||||||
|
|
||||||
|
#### SumType (enumCollectionSumType)
|
||||||
|
- `None` - brak
|
||||||
|
- `Selected` - zaznaczone
|
||||||
|
- `All` - wszystkie
|
||||||
|
- `Groups` - grupy
|
||||||
|
- `GroupsNewLine` - grupy w nowej linii
|
||||||
|
|
||||||
|
#### ActionsMode
|
||||||
|
- `FormAndControl` - formularz i kontrolka
|
||||||
|
- `Control` - tylko kontrolka
|
||||||
|
- `Form` - tylko formularz
|
||||||
|
|
||||||
|
### Cards
|
||||||
|
Widok kart (kafelków). Dziedziczy z Grid, ale **nie obsługuje**: układu kolumnowego, nagłówka, sortowania przez kliknięcie, edit-in-place, struktury drzewiastej.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Cards Name="List" IsSmartOpen="true" MoreButton="Visible" Class="DisableSelection">
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="" Height="7" Width="22" EditValue="{DefaultImage}" Class="ImageEdit" />
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="" Width="50" Height="2" EditValue="{Nazwa}" Class="LargeFont BoldFont" />
|
||||||
|
<Row>
|
||||||
|
<Field CaptionHtml="" Width="20" EditValue="{Kod}" />
|
||||||
|
<Stack>
|
||||||
|
<Field CaptionHtml="" Width="27" EditValue="{Cena}" />
|
||||||
|
<Field CaptionHtml="" Width="27" EditValue="{Masa}" />
|
||||||
|
</Stack>
|
||||||
|
</Row>
|
||||||
|
</Stack>
|
||||||
|
</Row>
|
||||||
|
</Cards>
|
||||||
|
```
|
||||||
|
|
||||||
|
Elementy `Field` domyślnie układają się jeden pod drugim. Można grupować je za pomocą `Row` i `Stack`.
|
||||||
|
|
||||||
|
**Układ szeroki:** Dodanie `Width="*"` do najbardziej zewnętrznego kontenera rozciąga element na całą szerokość (elementy listy jeden pod drugim).
|
||||||
|
|
||||||
|
#### Pasek narzędziowy Cards
|
||||||
|
- Umiejscowiony powyżej listy z prawej strony
|
||||||
|
- Posiada tylko przyciski Dodaj i Usuń (brak Otwórz)
|
||||||
|
- Ikony zaznaczania, otwierania i menu widoczne po najechaniu myszą na kafelek
|
||||||
|
|
||||||
|
#### Atrybuty kontrolujące ikony:
|
||||||
|
- `Class="DisableSelection"` - wyłącza ikonę zaznaczania
|
||||||
|
- `IsSmartOpen="true"` - włącza przycisk otwierania formularza
|
||||||
|
- `MoreButton="Visible"` - włącza przycisk "więcej" z dodatkowymi akcjami
|
||||||
|
|
||||||
|
### CardTemplate
|
||||||
|
Szablon karty (dziedziczy z Stack).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy wykresów i wizualizacji
|
||||||
|
|
||||||
|
### Chart
|
||||||
|
Wykres. Element służący do prezentacji danych w postaci wykresów.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Chart EditValue="{Dane}"
|
||||||
|
Type="Bar"
|
||||||
|
ChartColor="Blue"
|
||||||
|
IsLegendVisible="true"
|
||||||
|
LabelFormat="{value} ({percent})"
|
||||||
|
XAxisTitle="Oś X"
|
||||||
|
YAxisTitle="Oś Y"
|
||||||
|
XAxisLabelFormat="{value} EUR"
|
||||||
|
YAxisLabelFormat="{value:N0}"
|
||||||
|
OpenMethodName="GetSerieInfo"
|
||||||
|
FocusedValue="{FocusedValue}"
|
||||||
|
FocusedColumnValue="{FocusedColumn}">
|
||||||
|
|
||||||
|
<Axis CaptionHtml="Kategoria" EditValue="{Kategoria}" Dimension="Enum" />
|
||||||
|
<Field CaptionHtml="Wartość" EditValue="{Wartosc}" Aggregate="Sum" />
|
||||||
|
</Chart>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Type` | enum | Typ wykresu (patrz poniżej) |
|
||||||
|
| `ChartColor` | enum | Kolor wykresu: `None` (wielokolorowy), `Green`, `Blue`, `Grey`, `Red`, `Orange`, `Yellow` |
|
||||||
|
| `IsLegendVisible` | boolean | Widoczność legendy |
|
||||||
|
| `LabelFormat` | string | Format etykiety. Zmienne: `{value}`, `{percent}`, `{label}` |
|
||||||
|
| `XAxisTitle` | string | Podpis osi X |
|
||||||
|
| `YAxisTitle` | string | Podpis osi Y |
|
||||||
|
| `XAxisLabelFormat` | string | Format wartości na osi X (zmienne: `{value}`, `{label}`) |
|
||||||
|
| `YAxisLabelFormat` | string | Format wartości na osi Y |
|
||||||
|
| `IsDateNavigatorVisible` | boolean | Nawigator daty dla WeekByDays/MonthByDays |
|
||||||
|
| `OpenMethodName` | string | Metoda wywoływana po kliknięciu na wykres |
|
||||||
|
| `FocusedValue` | string | Property do którego zostanie podstawiony wiersz po kliknięciu |
|
||||||
|
| `FocusedColumnValue` | string | Property z nazwą kolumny po kliknięciu (dla wielu Field) |
|
||||||
|
|
||||||
|
#### Typy wykresów (enumChartType)
|
||||||
|
- `Line` - liniowy (zmiany wartości między kategoriami)
|
||||||
|
- `Bar` - słupkowy/kolumnowy (porównanie kategorii)
|
||||||
|
- `Area` - warstwowy (suma serii i udział każdej)
|
||||||
|
- `Pie` - kołowy (proporcje części całości)
|
||||||
|
- `Donut` - pierścieniowy (jak kołowy, ale z dziurą)
|
||||||
|
- `Spider` - radarowy (porównanie wielu zmiennych)
|
||||||
|
- `Polar` - radarowy z wypełnieniem
|
||||||
|
- `Pyramid` - piramida (kategorie od największej do najmniejszej)
|
||||||
|
- `Funnel` - lejek (malejące proporcje)
|
||||||
|
- `Bubble` - bąbelkowy (3 wymiary: X, Y, rozmiar)
|
||||||
|
- `Scatter` - punktowy (zbiór punktów X/Y)
|
||||||
|
|
||||||
|
#### Axis - Oś wykresu
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Axis CaptionHtml="Etykieta"
|
||||||
|
EditValue="{Pole}"
|
||||||
|
Dimension="ByMonths"
|
||||||
|
Grouping="true"
|
||||||
|
FirstDayOfWeek="Monday" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Opis |
|
||||||
|
|---------|------|
|
||||||
|
| `Direction` | Kierunek dla Pivot: `X` (kolumny), `Y` (wiersze) |
|
||||||
|
| `Dimension` | Sposób grupowania miar |
|
||||||
|
| `Grouping` | Czy grupować dane (tworzy tabelę przestawną) |
|
||||||
|
| `FirstDayOfWeek` | Pierwszy dzień tygodnia |
|
||||||
|
|
||||||
|
#### Dimension (PivotDimension)
|
||||||
|
- `Enum` - wartości dyskretne, tekstowe (Bar, Pie, Donut)
|
||||||
|
- `AZ` - grupowanie po pierwszej literze
|
||||||
|
- `WeekByDays` - zawężenie do tygodnia + przyciski Następny/Poprzedni
|
||||||
|
- `MonthByDays` - zawężenie do miesiąca + przyciski Następny/Poprzedni
|
||||||
|
- `ByNumbers` - miara liczbowa, proporcjonalne rozmieszczenie
|
||||||
|
- `ByDays` - daty bez grupowania, wszystkie dni z zakresu
|
||||||
|
- `ByWeeks` - grupowanie wg tygodni
|
||||||
|
- `ByMonths` - grupowanie wg miesięcy
|
||||||
|
- `ByYears` - grupowanie wg lat
|
||||||
|
|
||||||
|
#### Field w Chart - seria danych
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field CaptionHtml="Nazwa serii" EditValue="{Wartosc}" Aggregate="Sum" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Wartości |
|
||||||
|
|---------|----------|
|
||||||
|
| `Aggregate` | `None`, `Sum`, `Count`, `Average`, `Min`, `Max` |
|
||||||
|
|
||||||
|
#### Zasady tworzenia różnych typów wykresów
|
||||||
|
|
||||||
|
**Line/Area (liniowy/warstwowy):**
|
||||||
|
- 1 Axis + wiele Field → wiele serii danych
|
||||||
|
- 2 Axis (jeden z `Grouping="true"`) + 1 Field → serie wg grupowania
|
||||||
|
|
||||||
|
**Bar (słupkowy):**
|
||||||
|
- 1 Axis + 1 Field → wykres zwykły
|
||||||
|
- 1 Axis + wiele Field → wykres skumulowany (stacked)
|
||||||
|
- 2 Axis + 1 Field → wykres grupowany (slide)
|
||||||
|
- 2 Axis + wiele Field → stacked-slide
|
||||||
|
|
||||||
|
**Pie/Donut (kołowy/pierścieniowy):**
|
||||||
|
- Zawsze 1 Axis + 1 Field
|
||||||
|
|
||||||
|
**Scatter (punktowy):**
|
||||||
|
- 1 Axis + 2 Field (pierwszy Field = X, drugi Field = Y)
|
||||||
|
|
||||||
|
**Bubble (bąbelkowy):**
|
||||||
|
- 1 Axis + 3 Field (X, Y, rozmiar bąbelka)
|
||||||
|
|
||||||
|
### Scheduler
|
||||||
|
Kalendarz/harmonogram.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Scheduler EditValue="{Zdarzenia}"
|
||||||
|
View="Weekly"
|
||||||
|
AllowViewChanging="true"
|
||||||
|
SelectedInterval="{WybranyOkres}"
|
||||||
|
VisibleInterval="{WidocznyOkres}"
|
||||||
|
WorkInterval="{OkresPracy}"
|
||||||
|
Resources="{Zasoby}"
|
||||||
|
SelectedResource="{WybranyZasób}"
|
||||||
|
HideDateField="false">
|
||||||
|
<Field CaptionHtml="Tytuł" EditValue="{Tytul}" />
|
||||||
|
</Scheduler>
|
||||||
|
```
|
||||||
|
|
||||||
|
**UWAGA:** Niepoprawne wiązanie danych skutkuje błędem krytycznym (brak wyświetlenia pageform'a lub brak możliwości logowania).
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `View` | enum | Domyślny widok kalendarza |
|
||||||
|
| `AllowViewChanging` | boolean | Czy operator może zmieniać widok (domyślnie tak) |
|
||||||
|
| `SelectedInterval` | string | Okres zaznaczony przez użytkownika |
|
||||||
|
| `VisibleInterval` | string | Okres widoczny |
|
||||||
|
| `WorkInterval` | string | Roboczy czas dnia (domyślnie `"9:00..18:00"`). Można podać bezpośrednio lub bindować do `Soneta.Types.Interval` |
|
||||||
|
| `Resources` | string | Zasoby |
|
||||||
|
| `SelectedResource` | string | Wybrany zasób |
|
||||||
|
| `HideDateField` | boolean | Ukryj pole daty |
|
||||||
|
|
||||||
|
#### Widoki Scheduler (enumSchedulerViews)
|
||||||
|
- `Daily` - widok jednego dnia
|
||||||
|
- `WorkWeek` - widok tygodnia roboczego
|
||||||
|
- `Weekly` - widok tygodniowy
|
||||||
|
- `Monthly` - widok miesięczny
|
||||||
|
- `HoursTimeLine` - widok godzinowy na osi poziomej
|
||||||
|
- `DaysTimeLine` - widok dzienny na osi poziomej
|
||||||
|
- `SimpleMonthly` - uproszczony widok miesięczny
|
||||||
|
|
||||||
|
### Gantt
|
||||||
|
Wykres Gantta.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Gantt EditValue="{Zadania}"
|
||||||
|
ViewType="WeekDay"
|
||||||
|
ViewMode="Standard"
|
||||||
|
AllowViewChanging="true"
|
||||||
|
Resources="{Zasoby}"
|
||||||
|
MethodsHandler="Handler">
|
||||||
|
<Field EditValue="{Nazwa}" />
|
||||||
|
<Field EditValue="{Start}" />
|
||||||
|
<Field EditValue="{Finish}" />
|
||||||
|
</Gantt>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### GanttViews
|
||||||
|
- `HourMinute`, `DayHour`, `WeekDay`, `MonthDay`
|
||||||
|
|
||||||
|
#### GanttViewMode
|
||||||
|
- `Standard`, `ResourceView`
|
||||||
|
|
||||||
|
### GanttDiagram
|
||||||
|
Diagram Gantta z dodatkowymi opcjami.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<GanttDiagram EditValue="{Zadania}"
|
||||||
|
WorkTimeStart="08:00"
|
||||||
|
WorkTimeFinish="17:00"
|
||||||
|
WorkOnSaturday="false"
|
||||||
|
WorkOnSunday="false"
|
||||||
|
MarkHolidays="true" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Diagram
|
||||||
|
Diagram ogólny.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Diagram EditValue="{Elementy}" MethodsHandler="DiagramHandler" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### CustomDiagram
|
||||||
|
Diagram niestandardowy.
|
||||||
|
|
||||||
|
### TreeDiagram
|
||||||
|
Diagram drzewa.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<TreeDiagram EditValue="{Węzły}"
|
||||||
|
LayoutType="OrganizationalChart"
|
||||||
|
MethodsHandler="TreeHandler" />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### TreeDiagramLayoutType
|
||||||
|
- `OrganizationalChart` - schemat organizacyjny
|
||||||
|
- `ComplexHierarchicalTree` - złożone drzewo hierarchiczne
|
||||||
|
|
||||||
|
### KanbanDiagram
|
||||||
|
Tablica Kanban.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<KanbanDiagram EditValue="{Zadania}" MethodsHandler="KanbanHandler" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pivot
|
||||||
|
Tabela przestawna.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Pivot EditValue="{Dane}">
|
||||||
|
<Axis Direction="X" EditValue="{Kategoria}" />
|
||||||
|
<Axis Direction="Y" EditValue="{Wartość}" />
|
||||||
|
</Pivot>
|
||||||
|
```
|
||||||
|
|
||||||
|
### PivotGrid
|
||||||
|
Siatka przestawna.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Elementy specjalne
|
||||||
|
|
||||||
|
### Indicator
|
||||||
|
Wskaźnik liczbowy.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Indicator CaptionHtml="Sprzedaż"
|
||||||
|
EditValue="{Wartość}"
|
||||||
|
UnitSymbol="PLN"
|
||||||
|
TimeSpanSymbol="miesiąc"
|
||||||
|
MethodName="Szczegóły" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### PercentIndicator
|
||||||
|
Wskaźnik procentowy.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<PercentIndicator EditValue="{Procent}"
|
||||||
|
StrokeWidth="10"
|
||||||
|
StrokeColor="Green" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### CircularIndicator
|
||||||
|
Wskaźnik kołowy.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<CircularIndicator EditValue="{Dane}"
|
||||||
|
Title="Tytuł"
|
||||||
|
LegendPosition="Right" />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### UIAlignment
|
||||||
|
- `None`, `Left`, `Right`, `Bottom`
|
||||||
|
|
||||||
|
### RangeSlider
|
||||||
|
Suwak zakresu.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<RangeSlider EditValue="{Zakres}"
|
||||||
|
Min="0"
|
||||||
|
Max="100"
|
||||||
|
Step="5" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### TimelineClock
|
||||||
|
Oś czasu z zegarem.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<TimelineClock EditValue="{Zdarzenia}" LegendPosition="Bottom" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### DateNavigator
|
||||||
|
Navigator dat.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<DateNavigator EditValue="{WybranaData}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chips
|
||||||
|
Etykiety/tagi.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Chips EditValue="{Tagi}" BgColor="GreenPastel" />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ChipsColorPalette
|
||||||
|
- `None`, `Black`, `White`
|
||||||
|
- `GrayPastel`, `GreenPastel`, `OrangePastel`, `RedPastel`
|
||||||
|
|
||||||
|
### Html
|
||||||
|
Treść HTML.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Html EditValue="{TrescHtml}"
|
||||||
|
Width="*"
|
||||||
|
Height="200"
|
||||||
|
ScrollBarsEnabled="true" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### Markdown
|
||||||
|
Treść Markdown.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Markdown EditValue="{TrescMd}" ScrollBarsEnabled="true" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### ThreadComments
|
||||||
|
Komentarze wątkowe.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<ThreadComments EditValue="{Komentarze}" MethodsHandler="CommentsHandler" />
|
||||||
|
```
|
||||||
|
|
||||||
|
### UserControl
|
||||||
|
Kontrolka użytkownika.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<UserControl TypeName="MojaKontrolka">
|
||||||
|
<Data Name="Param1" Value="Wartość" />
|
||||||
|
</UserControl>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Template
|
||||||
|
Szablon warunkowy.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Template Visibility="{Warunek}" AllowUpdating="true">
|
||||||
|
<!-- zawartość wyświetlana gdy warunek spełniony -->
|
||||||
|
</Template>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typy wyliczeniowe
|
||||||
|
|
||||||
|
### enumAggregationType (Footer/Aggregate)
|
||||||
|
- `Auto` - automatycznie
|
||||||
|
- `None` - brak
|
||||||
|
- `Sum` - suma
|
||||||
|
- `Count` - liczba
|
||||||
|
- `Average` - średnia
|
||||||
|
- `Min` - minimum
|
||||||
|
- `Max` - maksimum
|
||||||
|
- `Concat` - konkatenacja
|
||||||
|
- `UniqueConcat` - unikalna konkatenacja
|
||||||
|
- `Same` - ta sama wartość
|
||||||
|
|
||||||
|
### enumDataFormView (ViewType)
|
||||||
|
- `None`, `Dialog`, `Form`, `Folder`
|
||||||
|
|
||||||
|
### enumDataFormMode (Mode)
|
||||||
|
- `None`, `Form`, `Folder`, `Wizard`, `Modal`, `Popup`, `Frame`
|
||||||
|
|
||||||
|
### enumLayoutMode
|
||||||
|
- `Default`, `Canvas`, `Size`, `Visibility`
|
||||||
|
|
||||||
|
### enumMoreButtonState
|
||||||
|
- `None`, `Visible`, `Actions`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wspólne atrybuty (uiElement)
|
||||||
|
|
||||||
|
Wszystkie elementy UI dziedziczą następujące atrybuty z `uiElement`:
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Name` | string | Identyfikator elementu (musi być unikalny na poziomie strony). Automatycznie generowany jeśli nie podano. |
|
||||||
|
| `DataContext` | string (bindowalne) | Kontekst danych. `{DataSource}` = otwarty obiekt. Można wskazać podrzędną właściwość. |
|
||||||
|
| `EditValue` | string (bindowalne) | Binding do wartości |
|
||||||
|
| `CaptionHtml` | string (bindowalne) | Etykieta kontrolki (tekst lub `{Właściwość}`) |
|
||||||
|
| `CaptionMarkdown` | string | Etykieta Markdown |
|
||||||
|
| `DescriptionHtml` | string | Dodatkowy opis |
|
||||||
|
| `LangContext` | string | Kontekst językowy |
|
||||||
|
| `Icon` | string | Ikona |
|
||||||
|
| `Class` | string | Klasy stylów (lista wartości oddzielonych spacją) |
|
||||||
|
| `Width` | string | Szerokość w znakach lub px (np. `"50px"`). `"*"` = dopasuj do dostępnej przestrzeni |
|
||||||
|
| `Height` | string | Wysokość w wierszach lub px. `"*"` = dopasuj automatycznie |
|
||||||
|
| `OuterWidth` | string | Całkowita szerokość z etykietą (do wyrównywania kontrolek) |
|
||||||
|
| `OuterHeight` | string | Całkowita wysokość (może dodawać puste miejsce pod kontrolką) |
|
||||||
|
| `LabelWidth` | string | Szerokość etykiety |
|
||||||
|
| `LabelHeight` | string | Wysokość etykiety |
|
||||||
|
| `Column` | integer | Kolumna (w siatce) |
|
||||||
|
| `Row` | integer | Wiersz (w siatce) |
|
||||||
|
| `Visibility` | string (bindowalne) | Widoczność: `Visible`, `Hidden`, `Collapsed`, `true`, `false` |
|
||||||
|
| `LayoutMode` | enum | Tryb układu: `Default`, `Canvas`, `Size`, `Visibility` |
|
||||||
|
| `IsReadOnly` | string (bindowalne) | Tylko do odczytu (`true`/`false`). **Uwaga:** tryb z logiki biznesowej ma wyższy priorytet |
|
||||||
|
| `Tag` | string | Dodatkowa wartość do wykorzystania w skryptach |
|
||||||
|
| `TagInfo` | string | Informacja tagu |
|
||||||
|
| `Priority` | integer | Priorytet |
|
||||||
|
| `RenderMethodName` | string | Metoda renderowania |
|
||||||
|
| `Renderable` | string | Czy renderowalne |
|
||||||
|
| `RenderKey` | string | Klucz renderowania |
|
||||||
|
|
||||||
|
### Appearance (formatowanie warunkowe)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Field EditValue="{Wartość}">
|
||||||
|
<Appearance Condition="{?Wartość<0}"
|
||||||
|
BackColor="LightPink"
|
||||||
|
ForeColor="Red"
|
||||||
|
FontBold="true"
|
||||||
|
FontItalic="false" />
|
||||||
|
</Field>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Atrybut | Typ | Opis |
|
||||||
|
|---------|-----|------|
|
||||||
|
| `Condition` | string | Warunek (wyrażenie) |
|
||||||
|
| `BackColor` | string | Kolor tła |
|
||||||
|
| `ForeColor` | string | Kolor tekstu |
|
||||||
|
| `FontBold` | boolean | Pogrubienie |
|
||||||
|
| `FontItalic` | boolean | Kursywa |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wartości Class (enumSingleClass)
|
||||||
|
|
||||||
|
### Zachowania kontenerów
|
||||||
|
- `Collapsable` - zwijalna
|
||||||
|
- `Expandable` - rozwijalna
|
||||||
|
- `Expanded` - rozwinięta
|
||||||
|
- `Dialog` - okno dialogowe
|
||||||
|
- `NoSave` - bez zapisu
|
||||||
|
- `MainPage` - strona główna
|
||||||
|
- `Menu` - menu
|
||||||
|
- `Panel`, `PanelItem`, `PanelWinItem`
|
||||||
|
- `NoLayout` - bez układu
|
||||||
|
- `RemoveEmpty` - usuń puste
|
||||||
|
- `GroupItem` - element grupy
|
||||||
|
- `Reverse` - odwrócony
|
||||||
|
- `MainGroup`, `MenuGroup`
|
||||||
|
- `NoClose` - bez zamykania
|
||||||
|
- `CascadeMenu`, `CascadeMenuGroup`, `CascadeSubmenuGroup`
|
||||||
|
- `FilterGroup` - grupa filtrów
|
||||||
|
- `Scrollable` - przewijalna
|
||||||
|
|
||||||
|
### Style przycisków
|
||||||
|
- `PrintButton` - drukowanie
|
||||||
|
- `MainCommand` - główne polecenie
|
||||||
|
- `SplitCommand` - polecenie dzielone
|
||||||
|
- `CommandNoText` - bez tekstu
|
||||||
|
- `CommandIcoText` - ikona i tekst
|
||||||
|
- `WorkerCommand` - polecenie workera
|
||||||
|
- `WizardCommand` - polecenie kreatora
|
||||||
|
- `SchedulerCommand` - polecenie harmonogramu
|
||||||
|
- `FormNavigationCommand` - nawigacja formularza
|
||||||
|
|
||||||
|
### Style pól
|
||||||
|
- `PasswordEdit`, `PathPropertyEdit`, `PropertyGridEdit`
|
||||||
|
- `CheckButtonEdit`, `ColorEdit`, `HistoryEdit`
|
||||||
|
- `RichEdit`, `AspxEdit`, `FolderEdit`, `FileEdit`
|
||||||
|
- `SaveFileEdit`, `ImageEdit`, `XmlEdit`
|
||||||
|
- `AlgorithmEdit`, `DataTextEdit`, `ConditionEdit`
|
||||||
|
- `RatingEdit`, `SignatureEdit`, `OneTimePasswordEdit`
|
||||||
|
- `HyperlinkEdit`, `EmailEdit`, `PhoneEdit`
|
||||||
|
- `SkypeEdit`, `GpsEdit`, `IconEdit`
|
||||||
|
- `ProgressEdit`, `TrafficLightEdit`
|
||||||
|
|
||||||
|
### Style etykiet
|
||||||
|
- `NoColonLabel` - bez dwukropka
|
||||||
|
- `BoldLabel` - pogrubiona
|
||||||
|
- `CenterLabel` - wyśrodkowana
|
||||||
|
- `RightLabel` - wyrównana w prawo
|
||||||
|
- `WarningLabel` - ostrzeżenie
|
||||||
|
- `MultilineLabel` - wieloliniowa
|
||||||
|
- `InfoLabel` - informacja
|
||||||
|
- `TipLabel` - podpowiedź
|
||||||
|
- `SchedulerLabel` - etykieta harmonogramu
|
||||||
|
|
||||||
|
### Style czcionek
|
||||||
|
- `LargeFont` - duża
|
||||||
|
- `GreenFont` - zielona
|
||||||
|
- `RedFont` - czerwona
|
||||||
|
- `FixedWidthFont` - stała szerokość
|
||||||
|
- `BoldFont` - pogrubiona
|
||||||
|
- `WarningFont` - ostrzegawcza
|
||||||
|
|
||||||
|
### Wyrównanie
|
||||||
|
- `RightAlign` - do prawej
|
||||||
|
- `LeftAlign` - do lewej
|
||||||
|
- `TextRight` - tekst do prawej
|
||||||
|
|
||||||
|
### Inne
|
||||||
|
- `Information`, `Question` - typy komunikatów
|
||||||
|
- `DataBar`, `PreviewLine`, `Header`
|
||||||
|
- `FirstResponder` - pierwszy fokus
|
||||||
|
- `SmartOpen` - inteligentne otwieranie
|
||||||
|
- `Tight`, `Special`, `Important`
|
||||||
|
- `LateCalculate` - późne obliczanie
|
||||||
|
- `AllowDragging`, `AllowEditing`
|
||||||
|
- `DisableSelection` - wyłącz zaznaczanie
|
||||||
|
- `HorizontalSplitter` - poziomy rozdzielacz
|
||||||
|
- `Info`, `Tree`
|
||||||
|
- `ImageCircle` - okrągły obraz
|
||||||
|
- `DashboardItem`, `LocatorItem`
|
||||||
|
- `SmallSize`, `NormalSize`, `LargeSize`
|
||||||
|
- `AutoUpdate` - automatyczna aktualizacja
|
||||||
|
- `ArrowsSelectNext` - strzałki wybierają następny
|
||||||
|
- `Hidden` - ukryty
|
||||||
|
- `NonClickable` - nieklikowalny
|
||||||
|
- `LabelTop`, `LebelLeft` - pozycja etykiety
|
||||||
|
- `FilesDropTarget` - cel upuszczania plików
|
||||||
|
- `Rss` - kanał RSS
|
||||||
|
- `PreventOrderBy` - zapobiegaj sortowaniu
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user