8.2 KiB
8.2 KiB
Table Reference - Kompletna dokumentacja
Spis treści
Atrybuty table
| Atrybut | Wymagany | Typ | Opis |
|---|---|---|---|
name |
✓ | string | Nazwa klasy C# (PascalCase, l.poj.) |
tablename |
✓ | string | Nazwa tabeli w bazie (PascalCase, l.mn.) |
guided |
string | Root = główna tabela (dokument, kartoteka) |
|
config |
boolean | true = tabela konfiguracyjna (wdrożeniowa) |
|
caption |
string | Etykieta pojedynczego rekordu | |
tablecaption |
string | Etykieta listy rekordów | |
namespace |
string | Nadpisuje namespace z modułu | |
name8 |
string | Skrócona nazwa (max 8 znaków, legacy) | |
cached |
boolean | true = cache'owanie w pamięci |
|
timestamp |
boolean | true = automatyczne pole timestamp |
|
optimisticlocking |
boolean | true = optymistyczne blokowanie |
|
lock |
string | Tryb blokowania | |
warnings |
string | Off = wyłącza ostrzeżenia |
Rodzaje tabel
guided="Root" - Główne tabele programu:
- Dokumenty, kartoteki (towar, pracownik, kontrahent)
- Dostępne z menu głównego
guided="Exported" - Tabele eksportowalne:
- Jak Root, ale z możliwością eksportu do systemów zewnętrznych
- Najważniejsze tabele transakcyjne (DokumentHandlowy, Platnosc)
- Używaj dla dokumentów wymagających integracji
Bez guided - Tabele szczegółów:
- Pozycje dokumentu, kody towaru, adresy
- Muszą mieć dokładnie jedną relację
relguided="inner"
config="true" - Tabele konfiguracyjne:
- Dane wdrożeniowe: definicje, słowniki, ustawienia
- Konfiguracja algorytmów, formularzy, wydruków
Bez config - Tabele operacyjne:
- Dane zbierane podczas pracy: dokumenty, transakcje
Przykład table z wszystkimi atrybutami
<table name="Towar"
tablename="Towary"
name8="Towar"
guided="Root"
config="false"
caption="Towar"
tablecaption="Towary"
cached="false"
timestamp="false"
optimisticlocking="true">
<!-- zawartość -->
</table>
Atrybuty col
Podstawowe
| Atrybut | Wymagany | Typ | Opis |
|---|---|---|---|
name |
✓ | string | Nazwa właściwości C# |
type |
✓ | string | Typ danych (patrz typy) |
length |
dla string | uint/max | Długość tekstu lub "max" dla nieograniczonej |
required |
RequiredType | true/false/noverified |
|
readonly |
ReadonlyType | true/false/set |
|
caption |
string | Etykieta pola w UI | |
description |
string | Jedno/dwuzdaniowy opis pola (tooltip) | |
category |
string | Kategoria w edytorze właściwości |
Ograniczenia typów
textibinary- nie mogą być kluczami (keyprimary,keyunique)string length="max"- tekst bez ograniczenia, wczytywany z rekordemtext- wczytywany na żądanie (osobne zapytanie SQL)
Modyfikatory
| Atrybut | Typ | Opis |
|---|---|---|
modifier |
string | Modyfikator C#: public virtual, protected, internal |
important |
boolean | true = pole wyświetlane na liście |
selector |
boolean | true = pole selektor typu |
batchfield |
boolean | false = pomijane przy batch operations |
fulltext |
boolean | true = indeksowanie pełnotekstowe |
specialaccess |
boolean | true = specjalne uprawnienia |
Relacje
| Atrybut | Typ | Opis |
|---|---|---|
children |
string | Nazwa kolekcji dzieci w obiekcie nadrzędnym |
relname |
string | Opis relacji |
relguided |
string | inner = nawigacja wewnętrzna |
relright |
boolean | true = prawa do relacji |
reldefault |
boolean | true = domyślna relacja |
delete |
string | Akcja przy usuwaniu: cascade, setnull |
setonlynull |
boolean | true = można ustawić tylko raz |
Indeksy (inline w col)
| Atrybut | Typ | Opis |
|---|---|---|
keyprimary |
boolean | true = część klucza głównego |
keyunique |
boolean | true = wartość unikalna |
keyclass |
string | Klasa indeksu: History, Lp |
keyclasscol |
string | Kolumna dla keyclass |
Lokalizacja
| Atrybut | Typ | Opis |
|---|---|---|
localization |
LocalizationType | none/dictionary/db |
name12 |
string | Skrócona nazwa kolumny (max 12 zn.) |
cstype |
string | Nadpisanie typu C# |
RequiredType - wartości
true- pole wymagane, walidowanefalse- pole opcjonalnenoverified- pole wymagane, ale bez walidacji
ReadonlyType - wartości
true- tylko do odczytufalse- edytowalneset- można ustawić tylko przy tworzeniu
Element key
Definiuje indeks na tabeli.
<key name="WgKodu" keyunique="true" keyprimary="true">
<keycol name="Kod"/>
</key>
<key name="WgKontrahentaIDaty" keyunique="false">
<keycol name="Kontrahent"/>
<keycol name="Data"/>
</key>
Atrybuty key
| Atrybut | Typ | Opis |
|---|---|---|
name |
string | Nazwa indeksu (konwencja: Wg + kolumny) |
keyunique |
boolean | true = indeks unikalny |
keyprimary |
boolean | true = klucz główny |
keyclass |
string | Klasa indeksu |
keyclasscol |
string | Kolumna dla klasy |
lock |
string | Tryb blokowania: ExclusiveGet |
Element keycol
<keycol name="NazwaKolumny"/>
Element keyinclude
Dodatkowe kolumny w indeksie (INCLUDE w SQL):
<key name="WgKodu">
<keycol name="Kod"/>
<keyinclude name="Nazwa"/>
</key>
Element verifier
Walidator pola wywoływany przy zapisie.
<col name="Nazwa" type="string" length="100">
<verifier name="Towar.NazwaVerifier"/>
<verifier name="Towar.NazwaUniqueVerifier" onadded="true"/>
</col>
Atrybuty verifier
| Atrybut | Wymagany | Typ | Opis |
|---|---|---|---|
name |
✓ | string | Pełna nazwa klasy weryfikatora |
onadded |
boolean | true = tylko przy dodawaniu |
Element attribute
Atrybut C# dodawany do właściwości.
<col name="KodPocztowy" type="int">
<attribute>MaskEdit("00-000", SaveLiteral=false)</attribute>
<attribute>Browsable(false)</attribute>
<attribute>Dictionary("Miejscowość")</attribute>
<attribute>Obsolete("Użyj pola X")</attribute>
<attribute>Context</attribute>
<attribute>Context(Required=false)</attribute>
</col>
Popularne atrybuty
| Atrybut | Opis |
|---|---|
Browsable(false) |
Ukrywa pole w UI |
Context |
Pole kontekstowe |
Context(Required=false) |
Opcjonalny kontekst |
Dictionary("nazwa") |
Słownik podpowiedzi |
MaskEdit("maska") |
Maska wprowadzania |
Obsolete("msg") |
Oznacza jako przestarzałe |
NumeratorItem |
Element numeratora |
Przykład kompletnej tabeli
<table name="Faktura" tablename="Faktury" guided="Root"
caption="Faktura" tablecaption="Faktury">
<interface>IRightsSource</interface>
<interface>IDefinicjaDokumentuOA</interface>
<key name="WgNumeru" keyunique="true" keyprimary="true">
<keycol name="Numer"/>
</key>
<key name="WgKontrahenta">
<keycol name="Kontrahent"/>
<keycol name="Data"/>
</key>
<col name="Numer" type="string" length="30" required="true"
category="Ogólne" important="true"
description="Numer dokumentu"/>
<col name="Data" type="date" required="true"
category="Ogólne"
description="Data wystawienia">
<verifier name="Faktura.DataVerifier"/>
</col>
<col name="Kontrahent" type="Kontrahent" required="true"
category="Ogólne"
relname="Kontrahent faktury"
children="Faktury">
<attribute>Context</attribute>
</col>
<col name="Status" type="StatusFaktury"
category="Ogólne" selector="true"
description="Status dokumentu"/>
<col name="WartoscNetto" type="currency" readonly="true"
category="Wartości" caption="Wartość netto"/>
<col name="WartoscBrutto" type="currency" readonly="true"
category="Wartości" caption="Wartość brutto"/>
<col name="Uwagi" type="text" category="Dodatkowe"/>
</table>