Viz: Objekt
PmaDataTable
Nad hodnotami objektu
PmaDataTable lze provádět různé operace. Například:
- Nabízení hodnot (pro čtení i zápis) do
Webu pomocí formátu
XML. Z hlediska licence je klient požadující data z této Web komponenty typu
PmDataClient.
- Třídění řádků metodou
Sort.
- atd.
Objekt PmaDataTable lze použít různými způsoby:
Lze například definovat sloupce ve vývojovém prostředí (viz karta "
Sloupce"), definovat kolik má mít tabulka řádků (viz karta "
DataTable") a pak ve spuštěné aplikaci jen číst a zapisovat hodnoty (viz metody
GetCellValue a
SetCellValue) z této tabulky.
Lze také nedefinovat ani sloupce ani řádky a ve spuštěné aplikaci je dynamicky vytvářet a mazat (viz metody
InsertRow,
RemoveRow,
InsertCol,
RemoveCol). Přidávání a mazání sloupců je však omezeno tím, že se přitom smažou i všechny řádky tabulky.
Lze i ve vývojovém prostředí definovat sloupce i řádky a pak je dynamicky měnit.
Maximální počet řádků závisí na
Runtime licence PROMOTIC a je:
PmRtProf: 65535,
PmRtFree: 30 a
PmRtXX: XX (například
PmRt100: 100).
Maximální počet sloupců závisí na
Runtime licence PROMOTIC a je:
PmRtProf: 65535,
PmRtFree: 30 a
PmRtXX: XX (například
PmRt100: 100).
Sloupce "Jen pro čtení" (ReadOnly):
Každá buňka tabulky se standardně přidává do výpočtu velikosti aplikace z důvodu licencování. Pokud se však v objektu
PmaDataTable označí sloupec jako
"Jen pro čtení", pak buňky v tomto sloupci se nebudou započítavat do výsledné velikosti aplikace. To umožňuje i v aplikacích s menším počtem bodů tento objekt používat k uchovávaní konfiguračních hodnot, které se po celou dobu běhu aplikace nemění. Je to zajištěno tak, že do sloupců "Jen pro čtení" lze zapsat hodnotu jen jednou. Omezení u jednotlivých metod objektu
PmaDataTable z důvodu sloupců "Jen pro čtení" jsou uvedena v poznámce této metody.
Každá buňka je na začátku prázdná. Za prázdnou se považuje i buňka obsahující číselnou hodnotu
0 nebo prázdný řetězec
"". Do takové buňky lze zapsat novou hodnotu. Po zápisu neprázdné nenulové hodnoty ve sloupci "Jen pro čtení" dochází k "zamčení buňky". "Zamčená buňka" se stane konstantou, nelze už do ní psát. Do ostatních "nezamčených" buněk však lze dále psát. U metod, které zapisují do více buněk, se zapíše pouze do "nezamčených buněk", obsah "zamčených buněk" zůstane beze změny.
Pokud je v kterémkoliv sloupci "Jen pro čtení" zamčena alespoň jedna buňka zapisem neprázdné hodnoty, pak dochází k "zamčení struktury" celé tabulky. Nelze dále přidávat a rušit sloupce nebo řádky, měnit strukturu tabulky. Strukturu, rozměry tabulky je proto nutno měnit před zápisem první neprázdné hodnoty do sloupce "Jen pro čtení".
Zobrazování dat v obrazu:
Na hodnoty tabulky se lze napojit přímo v
Pmg objektech datovou vazbou "
PP - Datová vazba na vlastnost Pma objektu". V zadavateli
vlastnost objektu v této vazbě se musí ručně zadat:
Item(row,col), kde
row a
col jsou indexy požadovaného řádku a sloupce.
Objekt
PmgWTable se může napojit na hodnoty objektu
PmaDataTable pomocí informačního objektu, který lze získat metodou
GetInfo. To znamená, že z objektu
PmaDataTable lze metodou
GetInfo získat objekt, který se pak vloží do
PmgWTable metodou
PmgWTable.FillFromInfo, například takto:
Zde se předpokládá, že ve stromu
Pma objektů je objekt
PmaPanel na cestě
"/Wnd/MyPanel" a objekt
PmaDataTable "/Data/Params". Pokud je obraz
"MyPanel" otevřen a obsahuje
Pmg objekt s názvem "
MyTab", pak můžeme zavolat tento skript. Ten (viz poslední řádek) naplní objekt
PmgWTable daty z objektu
PmaDataTable a spojí je (parametr
bind) tak, že při každém zavolání metody
PmgWTable.Draw se obnoví obsah objektu
PmgWTable.