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.
- 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 równocześnie, 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:
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.