Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmDataTable - Podrobný popis objektu

Viz: Objekt PmDataTable
 
Nad hodnotami objektu PmDataTable 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".
- Ukládání a nastavování hodnot pomocí metod: SaveToString, LoadFromString, SaveToFile, LoadFromFile, GetArray, SetArray, atd.
- Hledání hodnot pomocí metody FindValue.
- Setřídění řádků pomocí metody Sort.
- atd.
 
Objekt PmDataTable lze používat různými způsoby:

Lze například definovat sloupce ve vývojovém prostředí (viz záložka Sloupce), definovat kolik má mít tabulka řádků (viz záložka DataTable) a pak ve spuštěné aplikaci jen zapisovat a číst hodnoty (Viz vlastnost: Item) 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, PmRtStandard: 50000, PmRtLite: 100, PmRtFree: 30

Maximální počet sloupců závisí na Runtime licence PROMOTIC a je: PmRtProf: 65535, PmRtStandard: 50000, PmRtLite: 100, PmRtFree: 30

 
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 PmDataTable označí sloupec jako "Jen pro čtení", potom se buňky v tomto sloupci nebudou započítavat do výsledné velikosti aplikace. To umožní 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í. Implementačně je to zajištěno tak, že do sloupců "Jen pro čtení", je možno zapsat hodnotu pouze jednou. Omezení u jednotlivých metod objektu PmDataTable z důvodu sloupců "Jen pro čtení" jsou uvedena v poznámce.

Každá buňka je na začátku prázdná. Za prázdnou se považuje i buňka s číselnou hodnotou 0, prázdným řetězcem "". 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, potom 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 obraze:

Na hodnoty tabulky se lze napojit přímo v grafických prvcích datovou vazbou PP - Vazba na vlastnost Promotic 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.

Grafický ActiveX objekt PmTable se může napojit na hodnoty objektu PmDataTable pomocí informačního objektu, který lze získat metodou GetInfo. Tzn. z objektu PmDataTable lze metodou GetInfo získat objekt, který se pak vloží do PmTable pomocí metody PmTable.FillFromInfo, například takto:

 
Dim oTable, oDataTable
Set oTable = pMe.Pm("/Wnd/MyPanel").Items("MyTab")
Set oDataTable = pMe.Pm("/Data/Params")
oTable.Acx.FillFromInfo oDataTable.GetInfo("data"), "bind"
 

Zde se předpokládá, že ve stromu aplikace je objekt PmPanel na cestě "/Wnd/MyPanel" a objekt PmDataTable "/Data/Params". Pokud je obraz "MyPanel" otevřen a obsahuje grafický prvek s názvem "MyTab", pak můžeme zavolat tento skript. Ten (viz poslední řádek) naplní objekt PmTable daty z objektu PmDataTable a spojí je (parametr "bind") tak, že při každém zavolání metody PmTable.Draw se obnoví obsah grafického prvku PmTable.

Viz také:
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice