Promotic

PmaDataTable - Podrobný popis objektu

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.
- Uložení a nastavování hodnot pomocí metod: SaveToString, LoadFromString, SaveToFile, LoadFromFile, GetArray, SetArray, atd.
- Hledání hodnot metodou FindValue.
- 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:
 
VBScriptVyber a zkopíruj do schránky

Dim oTable, oDataTable
Set oTable = pMe.Pm("/Wnd/MyPanel").Items("/MyTab")
Set oDataTable = pMe.Pm("/Data/Params")
oTable.FillFromInfo oDataTable.GetInfo("data"), "bind"
 
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.
Viz také:
- PmaData (objekt)
© MICROSYS, spol. s r. o.