Promotic

onDataUpdate - událost objektu PmgWTable

Popis:
Událost je vyvolána při každém požadavku na překreslení (např. každé tažení scrollbaru a každé volání metody Draw).
Parametry:
pMe(Object) Reference na PmgWTable objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt, který popisuje informace o dané události.
pEvent.StartRow - (Long) Index prvního řádku pro překreslení
pEvent.EndRow - (Long) Index posledního řádku pro překreslení včetně
pEvent.StartEmptyRow - (Long) Index prvního řádku neobsahujícího data pro překreslení
pEvent.EndEmptyRow - (Long) Index posledního řádku neobsahujícího data pro překreslení včetně
Poznámka:
Tato událost zatím není funkční pro Web obrazy.

Umožňuje mimo jiné dynamicky načitat obsah tabulky v závislosti na pozici scrollbaru, parametry nStartRow, nEndRow říkají, které řádky se mají vykreslit, a parametry nStartEmptyRow, nEndEmptyRow říkají, kterým z těchto řádků ještě nebyla načtena data. Je tedy možné v této události buď vždy naplňovat všechny řádky (tzn. řádky mezi nStartRow a nEndRow) aktuálními daty, nebo naplnit pouze ty řádky, které ještě daty naplněny nebyly (tzn. řádky mezi nStartEmptyRow a nEndEmptyRow), viz příklady.
Příklad1:
Nechť je příklad napsán ve skriptu této události.
V parametru pMe je reference na objekt PmgWTable. Nechť v objektu PmaData je uložených 300 veličin, které se aktuálně mění, například vždy každých 20 sekund. Tabulka byla vytvořena mimo skript této události (např. takto oTable.cols=2, oTable.Rows=301, oTable.FixedCols=0, oTable.FixedRows=1). Příklad vždy vyplňuje všechny žádané řádky pro překreslení (řádky mezi nStartRow, nEndRow), tabulka zobrazuje vždy aktuální data.
Řádek oTable.SetCellText index+1, 0 má index o 1 zvýšen, protože tabulka má v našem případě jeden fixní řádek vyhrazen pro popisy sloupců.
JavaScriptVBScriptVyber a zkopíruj do schránky

var index;
var oTable = pMe;
for (index = nStartRow; index <= nEndRow; index++)
{
oTable.SetCellText(index, 0, index);
oTable.SetCellText(index, 1, Pm.Round(Pm.Random(0, 100), 1));
}
Příklad2:
Nechť je příklad napsán ve skriptu této události.
V parametru pMe je reference na objekt PmgWTable. Nechť v objektu PmaDatabase je uložených 3000 řádků, které se s časem nemění. Tabulka byla vytvořena mimo skript této události (např. takto oTable.cols=21, oTable.Rows=3001, oTable.FixedCols=0, oTable.FixedRows=1). Příklad vyplňuje pouze řádky, které ještě nebyly naplněny daty (řádky mezi nStartEmptyRow, nEndEmptyRow), tabulka zobrazuje data staticky, dočítá jen ta data, které ještě nebyla prohlížena.
Řádek oTable.SetCellText index+1, 0 má index o 1 zvýšen, protože tabulka má v našem případě jeden fixní řádek vyhrazen pro popisy sloupců.
VBScriptVyber a zkopíruj do schránky

Dim index, oTable, oDb
Set oTable = pMe
Set oDb = pMe.Pm("/Database0")

If nStartEmptyRow > -1 Then
oDb.MoveTo nStartEmptyRow
For index = nStartEmptyRow To nEndEmptyRow
If Not oDb.IsEOF() Then
oTable.SetCellText index+1, 0, index
oTable.SetCellText index+1, 1, oDb.FieldValues(0)
oTable.SetCellText index+1, 2, oDb.FieldValues(1)
' ...
oTable.SetCellText index+1, 21, oDb.FieldValues(20)
oDb.MoveNext
End If
Next
End If
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice