Promotic

PmaDataTable - Szczegółowy opis obiektu

Patrz: Obiekt PmaDataTable

Nad wartościami obiektu PmaDataTable można dokonywać różnych operacji. Na przykład:
- Oferowanie wartości (do odczytu i zapisu) do Webu za pomocą formatu XML. Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmDataClient.
- Zapis i ustawianie wartości przy pomocy metod: SaveToString, LoadFromString, SaveToFile, LoadFromFile, GetArray, SetArray, itd.
- Odszukanie wartości przy pomocy metody FindValue.
- Sortowanie wierszy przy pomocy metody Sort.
- itd.


Obiekt PmaDataTable można zastosować na różne sposoby:
Można na przykład zdefiniować kolumny w środowisku deweloperskim (patrz karta "Kolumny"), zdefiniować ile wierszy ma tabela posiadać (patrz karta "DataTable") i w uruchomionej aplikacji tylko odczytywać i zapisywać wartości (patrz metody GetCellValue oraz SetCellValue) z tej tabeli.
Można również nie określić ani kolumn ani wierszy i w uruchomionej aplikacji wytwarzać je dynamicznie (patrz metody InsertRow, RemoveRow, InsertCol, RemoveCol). Dodawanie i usuwanie kolumn jest jednak związane z tym, że podczas tych czynności są usuwane również wszystkie wiersze tabeli.
Można również w środowisku deweloperskim zdefiniować kolumny i wiersze i później dynamicznie je zmieniać.
Maksymalna ilość wierszy jest zależna od Runtime licencja PROMOTIC oraz wynosi: PmRtProf: 65535, PmRtFree: 30 oraz PmRtXX: XX (na przykład PmRt100: 100).
Maksymalna ilość kolumn jest zależna od Runtime licencja PROMOTIC oraz wynosi: PmRtProf: 65535, PmRtFree: 30 oraz PmRtXX: XX (na przykład PmRt100: 100).

Kolumny "Tylko do odczytu" (ReadOnly):
Z powodu licencjonowania każda komórka tabeli zwiększa wielkość aplikacji. Jeżeli w obiekcie PmaDataTable zostanie zaznaczona kolumna jako "Tylko do odczytu", wtedy komórki tej kolumny nie zwiększają wielkości aplikacji pod względem licencjonowania. To umożliwia również w aplikacjach z mniejszą ilością punktów stosować obiekt ten w celu przechowywania wartości konfiguracyjnych, które na czas działania aplikacji są stałymi. Realizacyjnie jest to zapewnione w taki sposób, że do kolumn "Tylko do odczytu" można wpisać wartości tylko raz. Ograniczenia dla pojedyńczych metod obiektu PmaDataTable z powodu kolumn "Tylko do odczytu" są opisane w notatce tej metody.
Każda komórka jest na początku pusta. Pustą komórką jest również komórka z wartością 0 lub pustym łańcuchem "". Do takiej komórki można wpisać nową wartość. Po zapisie niepustej niezerowej wartości w kolumnie "Tylko do odczytu" dojdzie do "zamknięcia komórki". "Zamknięta komórka" stanie się stałą, bez możliwości zapisu. Do pozostałych "niezamkniętych" komórek można nadal zapisywać. W przypadku metod, które umożliwiają zapis do większej ilości komórek, zostanie wykonany zapis tylko do "niezamkniętych komórek", zawartość "zamkniętych komórek" pozostanie bez zmian.
Jeżeli w dowolnej kolumnie "Tylko do odczytu" znajduje się przynajmniej jedna komórka zamknięta poprzez zapis niepustej wartości, wtedy dojdzie do "zamknięcia struktury" całej tabeli. Niemożna dodawać i usuwać kolumny lub wiersze, zmieniać strukturę tabeli. Strukturę, rozmiar tabeli, należy zmieniać przed zapisem pierwszej niepustej wartości do kolumny "Tylko do odczytu".

Wyświetlanie danych w panelu:
Do wartości tabeli można odnosić się bezpośrednio w Pmg obiektach powiązaniem danych "PP - Powiązanie danych z właściwością Pma obiektu". W konfiguratorze właściwość obiektu w tym powiązaniu musi być ręcznie określone: Item(row,col), gdzie row oraz col są indeksami wymaganego wiersza i kolumny.
Obiekt PmgWTable może być powiązany z wartościami obiektu PmaDataTable przy pomocy obiektu informacyjnego, który można uzyskać przy pomocy metody GetInfo. To znaczy, że z obiektu PmaDataTable można przy pomocy metody GetInfo uzyskać obiekt, który z kolei można włożyć do PmgWTable przy pomocy metody PmgWTable.FillFromInfo, na przykład następująco:
 
VBScriptWybierz oraz skopiuj do schowka

Dim oTable, oDataTable
Set oTable = pMe.Pm("/Wnd/MyPanel").Items("/MyTab")
Set oDataTable = pMe.Pm("/Data/Params")
oTable.FillFromInfo oDataTable.GetInfo("data"), "bind"
 
Zakłada się, że w drzewie Pma obiektów znajduje się obiekt PmaPanel na ścieżce "/Wnd/MyPanel" oraz obiekt PmaDataTable "/Data/Params". Jeżeli panel "MyPanel" jest otwarty i zawiera Pmg obiekt o nazwie "MyTab", wtedy można wywołać następujący skrypt. Napełni on (patrz ostatni wiersz) obiekt PmgWTable danymi z obiektu PmaDataTable i powiąże je (parametr bind) tak, że przy każdym wywołaniu metody PmgWTable.Draw zostanie odświeżona zawartość obiektu PmgWTable.
Patrz również:
- PmaData (obiekt)
© MICROSYS, spol. s r. o.