Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Otwarcie przeglądarki obiektu

Niektóre PROMOTIC obiekty posiadają przeglądarki swych zawartości. Rozdział ten opisuje w jaki sposób można w uruchomionej aplikacji (w trybie runtime) te przeglądarki otworzyć.

Na wstępie należy powiedzieć, iż nie każdy taki obiekt posiada na przykład metodę do wyświetlenia swej zawartości (wydaje się to oczywiste, lecz okazało się, że to rozwiązanie nie jest praktyczne), natomiast w innych przypadkach określając "należy otworzyć przeglądarkę obiektu", wtedy należy w parametrze sObjectPath określić ścieżkę do danego obiektu.

 
Obiekty zawierające przeglądarkę swej zawartości:
- PmPanel: wyświetlenie panela graficznego
- PmReport: wyświetlenie dynamicznie wytwarzanego raportu HTML
- PmWorkspace: umożliwia podstawowe rozdzielenie okna na mniejsze części
- PmAlarmEvent: wyświetlenie bieżącego stanu i historii alarm/event grupy
- PmWeb: wyświetlenie stron webowych aplikacji PROMOTIC
- PmWebDir: wyświetlenie stron HTML oferowanych danym obiektem
- PmWebFolder: wyświetlenie stron HTML oferowanych danym obiektem
- PmWebLang: wyświetlenie stron HTML oferowanych danym obiektem
 
Oprócz wyżej wymienionych przeglądarek obiektów można również otworzyć przeglądarki globalnych komponent:
- Przeglądarka obiektu PmForm (ścieżka: "/#glob/form")
- Przeglądarka stron WWW (ścieżka: "/#glob/webbrowser")
- Przeglądarka dla INFO system (ścieżka: "/#glob/infosystem")
 
Sposoby otwarcia przeglądarki obiektu:
 
1) Statycznie, w sposób konfiguracyjny:
a) w obiekcie PmWorkspace (patrz konfigurator "Przeglądarka komponentu" i "Wartość domyślna Params"). W ten sosób można zapewnić automatyczne początkowe otwarcie dowolnych przeglądarek przy uruchomieniu aplikacji w poszczególnych ramkach obiektu PmWorkspace.
b) w elemencie graficznym PmiWFrame (patrz konfigurator "Przeglądarka"). W ten sposób można otworzyć przeglądarkę dowolnego obiektu w elemencie graficznym PmiWFrame podczas jego otwarcia.
 
2) Dynamicznie w skrypcie przy pomocy metod OpenView:

Zestaw opisywanych metod umożliwia otwarcie dowolnego obiektu w ramce obiektu PmWorkspace, w elemencie graficznym PmiWFrame lub także jako samodzielne okno. Z powodów praktycznych metoda jest zaimplemetowana w kilku obiektach:

Metoda je asynchroniczna, tzn. metoda tylko uruchomi konstrukcję odpowiedniej przeglądarki (i ewentualnie zamknięcie poprzedniej) ale po zakończeniu metody nie musi dojść do rzeczywistego otwarcia przeglądarki.

Uwaga!Otworzyć dowolną przeglądarkę w elemencie graficznym PmiWFrame można również przy pomocy metody PmiWFrame.OpenView.

 
Wyświetlenie przeglądarki dowolnego obiektu jest wykonywane jednolitym sposobem. Ogólnie jest konieczne wprowadzenie czterech danych (parametrów):
 

sObjectPath

(String) Ścieżka (względna lub bezwzględna) do obiektu lub komponentu, którego przeglądarka ma zostać otwarta.
 
Może tu być wprowadzona ścieżka do obiektów: PmPanel, PmReport, PmAlarmEvent, PmWorkspace, PmWeb, PmWebFolder, PmWebDir, PmWebInfo, PmWebLang.
PmAlarmEvent obiekt: Obiekt ten oferuje dwie przeglądarki (stanu bieżącego i historii), dlatego jest tu możliwe dołączenie do właściwej ścieżki do obiektu tekst /#state dla przeglądarki stanu bieżącego lub tekst /#history dla przeglądarki historii. Jeżeli przeglądarka nie jest jawnie określona, wtedy dla alarmów zostanie wyświetlona przeglądarka stanu bieżąceho, natomiast dla zdarzeń zostanie wyświetlona przeglądarka historii.
 
lub może tu być ścieżka do globalnych komponent:
"/#glob/form": Otwarcie formularza PmForm, przy pomocy którego można dynamicznie (tzn. przy pomocy skryptu) wytwarzać elementy, które są przeznaczone do wyświetlania i wprowadzania danych. W tym przypadku należy również ustawić wartość oExtra.ViewObject na wytworzony obiekt PmForm. Patrz Sposób wytworzenia formularza.
"/#glob/webbrowser": Ogólna przeglądarka internetowa stron HTML (w internecie lub na dysku).

W aplikacji lokalnej zostanie otwarta przeglądarka internetowa, bazująca na InternetExplorerze.

Patrz Przykład otwarcia przeglądarki internetowej.

"/#glob/infosystem": Przeglądarka dla INFO system. Patrz Przykład i patrz W jaki sposób otworzyć INFO system.

sOptions

(String) Dane przekazywane własnej przeglądarce. Określają gdzie i w jaki sposób przeglądarka ma zostać wyświetlona.

Dane są tutaj w formacie KeyVal, na przykład "target:_blank;modal:1;".

 
Dla przeglądarek obiektów PmPanel i PmReport: Statyczne wyjściowe wartości sOptions można ustawić w konfiguratorze PmPanel > Panel > Wartość domyślna sOptions lub w konfiguratorze PmReport > Raport > Wartość domyślna sOptions. W tym przypadku dochodzi do skombinowania wpisów z wyjściowego statycznego ustawienia obiektu z wpisami przekazanymi dynamicznie. Jeżeli ten sam wpis występuje w obu miejscach, wtedy pierwszeństwo otrzyma wpis przekazany dynamicznie, wprowadzony przy otwarciu przeglądarki.
 
target:xx; - Określa, gdzie przeglądarka zostanie otwarta.
Jeżeli nie jest ustawione, wtedy zostanie ustawione w następujący sposób:
- jeżeli okno otwiera się jako modalne (jest ustawione "modal:1;"), wtedy zostanie ustawione na "target:_blank;".
- jeżeli jest otwierane przy pomocy metody PmPanel.OpenView, wtedy zostanie ustawione na "target:_self;".
- jeżeli jest otwierane przy pomocy metody PmWorkspace.OpenView, wtedy zostanie ustawione na identyfikator głównej ramki danego obszaru roboczego (określony w konfiguratorze Ramka domyślna (default frame)).
- jeżeli jest otwierane przy pomocy metody PmiWFrame.OpenView, wtedy ta informacja nie jest brana pod uwagę (przeglądarka zawsze zostanie wyświetlona w elemencie PmiWFrame).
target:frameid; - Nowa przeglądarka zostanie otwarta w obiekcie PmWorkspace we framudze o identyfikatorze frameid.
target:_blank; - Nowa przeglądarka zostanie otwarta w nowym oknie.
target:_self; - Nowa przeglądarka zostanie otwarta w bieżącym oknie (framudze) i przeglądarka, nad którą została metoda wywołana, zostanie zamknięta.
scrollbar:nn; - Określa, czy okno będzie wyświetlone z scrollbarami i umożliwi w ten sposób przesuwanie zawartości, jeżeli wielkość panelu jest większe niż wielkość okna, w którym panel jest wyświetlany.
scrollbar:0; - Scrollbary nie zostaną nigdy wyświetlone a okno nie umożliwi przesuwanie panelu. Takie ustawienie jest dogodne na przykład dla okna rodzaju "paska narzędziowego", kiedy okno powinno być wąskie a scrollbary byłyby zbędne.
scrollbar:1; (domyślnie) - Okno wyświetli scrollbary i umożliwi przesunięcie panelu, jeżeli wielkość panelu będzie większe niż wielkość okna, w którym panel jest wyświetlony.
refresh:xx; - Tylko dla otwarcia przeglądarki obiektu PmPanel. Określa, czy panel będzie odświeżany automatycznie według globalnie ustawionego periodu systemowego lub czy będzie mieć własne odświeżanie. Na razie nie działa przy otwarciu w Web panelu.
refresh:0; - Panel będzie posiadać własne odświeżanie, tzn. będzie wywoływana metoda PmPanel.Refresh.
refresh:system; (domyślnie) - Panel będzie automatycznie odświeżany według globalnie ustawionego periodu systemowego (Patrz PmRoot > Aplikacja > Częstotliwość odświeżania ekranów).
viewtype:xx; - Tylko dla otwarcia przeglądarki obiektu PmAlarmEvent. Określa, czy przeglądarka historii/stanu zostanie otwarta cała (wraz z wszystkimi elementami sterowania), lub tylko jej część tabelkowa (danych) (bez elementów sterowania).
viewtype:full; (domyślnie) - Zostanie otwarta pełna alarm/event przeglądarka historii/stanu wraz z wszystkimi elementami sterowania.
viewtype:data; - Zostanie otwarta tylko część tabelkowa (dane) alarm/event przeglądarki historii/stanu bez elementów sterowania.
 
Następujące wpisy są istotne tylko podczas otwierania w nowym oknie (tzn. z ustawieniem "target:_blank;"):
 
modal:nn; - Określa, czy okno będzie modalne.
modal:0; (domyślnie) - Okno nie będzie modalne.
modal:1; - Okno będzie modalne.
dependent:nn; - Określa, czy okno będzie zależne od głównego okna aplikacji.
dependent:0; - Okno będzie niezależne od głównego okna aplikacji. Na razie nie działa przy otwarciu w Web panelu.
dependent:1; (domyślnie) - Okno będzie zależnym od głównego okna aplikacji i będzie zawsze ponad aplikacją.
caption:nn; - Określa, czy okno będzie posiadać nagłówek (tzn. niebieski pasek u góry).
caption:0; - Okno będzie bez nagłówka. Na razie nie działa przy otwarciu w Web panelu.
caption:1; (domyślnie) - Okno będzie posiadać nagłówek.
ontop:nn; - Określa, czy okno będzie "Zawsze na wierzchu".
ontop:0; (domyślnie) - Okno nie będzie "Zawsze na wierzchu".
ontop:1; - Okno będzie "Zawsze na wierzchu". Na razie nie działa przy otwarciu w Web panelu.
state:xx; - Określa stan początkowy okna.
state:normal; (domyślnie) - Okno zostanie wyświetlone normalnie (nie będzie ani zminimalizowane ani zmaksymalizowane).
state:max; - Okno zostanie wyświetlone w zmaksymalizowanej postaci. Na razie nie działa przy otwarciu w Web panelu.
pos:xx; - Określa początkową pozycję okna w stanie normalnym.

Pozycja ta jest tylko sugerowana. Jeżeli okno swym rozmiarem nie zmieści się w ekranie, wtedy pozycja ta zostanie przesunięta tak, by była widoczna jak największa część tego okna.

pos:top,center; (domyślnie) - Okno zostanie wyświetlone w środku aktywnego okna aplikacji (obszaru roboczego).
pos:top,x,y; - Okno będzie mieć lewy górny róg na współrzędnych x i y (w pikselach) względem do aktywnego okna aplikacji (obszaru roboczego).
pos:frame,center; - Okno zostanie wyświetlone na środku okna, z którego jest otwierane.
pos:view,x,y; - Okno będzie mieć lewy górny róg na współrzędnych x i y (w pikselach) względem do zawartościokna, z którego jest nowe okno otwierane.

Pozycja jest określana względem zawartości okna (view) a nie względem samego okna (frame ). W takim przypadku na przykład nowe okno można zamieścić obok elementu graficznego, z którego okno zostało otwarte. Patrz Przykład otwarcia okna z jego położeniem względem elementu graficznego.

size:xx; - Określa początkową wielkość okna w stanie normalnym.
size:panel; (domyślnie) - Rozmiar okna zostanie dopasowany do pełnej wielkości otwieranego panela (tzn. by nie pojawiły się scrollbary). Szerokość i wysokość panela można określić w edytorze paneli w obiekcie PmiRoot w zakładce Panel.
size:dx,dy; - Okno będzie mieć wielkość według wprowadzonych współrzędnych dx i dy (w pikselach). Wartości te określają zewnętrzny rozmiar okna (tzn. włącznie ramki oraz nagłówka).
fixed:xx,yy,..; - Umożliwia zakazanie zmiany stanu, pozycji lub wielkości panelu. Ma wygląd listy poszczególnych zakazów oddzielonych "przecinek" (,). Na razie nie działa przy otwarciu w Web panelu. Wstępnie ustawioną wartością jest: wszystko jest zezwolone.
state - Zabrania zmianę stanu okna (normalne / maksymalizowane / minimalizowane).
pos - Zabrania zmianę pozycji okna w stanie normalnym.
size - Zabrania zmianę wielkości okna w stanie normalnym.
size2 - Ogranicza zmianę wielkości okna w stanie normalnym - okno nie może być większe niż własna wielkość panelu graficznego.

sParams

(String) Dane przekazywane obiektowi, który zostanie wyświetlony przez przeglądarkę.

Dane są tutaj w formacie KeyVal, na przykład "nazwa1:wartość1;nazwa2:wartość2;".

Dane te zazwyczaj określają lub filtrują właściwą zawartość wyświetlanego obiektu i są zależne od typu otwieranego obiektu.

 
PmPanel: Umożliwia ustawienie wartości parametrów elementu graficznego PmiRoot. Parametr taki jest potem dostępny w konfiguratorach panelu przy pomocy Makro wyrażenie $.par oraz ze skryptu przy pomocy metody GetPar. Każdy poszczególny parametr jest tworzony identyfikatorem (nazwa) i wartością. Składnia: "par:name1=value1;par:name2=value2; ...". Patrz również: Parametry elementu graficznego.

Statyczne wyjściowe wartości parametrów sParams można ustawić w konfiguratorze PmPanel > Panel > Wartość domyślna sParams. W tym przypadku dochodzi do skombinowania wpisów z wyjściowego statycznego ustawienia obiektu z wpisami przekazanymi dynamicznie. Jeżeli ten sam wpis występuje w obu miejscach, wtedy pierwszeństwo otrzyma wpis przekazany dynamicznie, wprowadzony przy otwarciu przeglądarki.

 
PmReport: Umożliwia ustawić wartość parametrów raportu. Parametry te są wtedy dostępne w parametrze pEvent.Pars zdarzenia onReportRequest. Każdy poszczególny parametr jest worzony identyfikatorem i wartością.

Składnia: "par:name1=value1;par:name2=value2; ...".

Statyczne wyjściowe wartości parametrów sParams można ustawić w konfiguratorze PmReport > Raport > Wartość domyślna sParams. W tym przypadku dochodzi do skombinowania wpisów z wyjściowego statycznego ustawienia obiektu z wpisami przekazanymi dynamicznie. Jeżeli ten sam wpis występuje w obu miejscach, wtedy pierwszeństwo otrzyma wpis przekazany dynamicznie, wprowadzony przy otwarciu przeglądarki.

 
PmWorkspace: Nie jest stosowany.
 
PmWebDir: "file:xx;" = Plik z rozszerzeniem (np. file:MyPage.htm), który ma zostać wyświetlony. Plik ten musi się znajdować w katalogu, który jest oferowany do środowiska Web przez obiekt PmWebDir (patrz konfigurator "Folder z plikami"). Jeżeli pliok znajduje się w podkatalogu, wtedy parametr file musi zostać wprowadzony w formie "podkatalog/plik". Jeżeli parametr file nie jest przedstawiony, wtedy zostanie otwarty plik "default.htm" i jeżeli taki plik w tym miejscu nie istnieje, wtedy zostanie otwarta dynamicznie wytworzona strona HTML z listą plików.
 
"/#glob/webbrowser": Umożliwia ustawienie adresu strony HTML, która ma zostać wyświetlona. Składnia: "url:https://www.promotic.eu;".

Adres trzeba wprowadzać w pełnej formie łącznie z określeniem protokołu: (http://, https:// lub file://).

 
"/#glob/form": Nie jest stosowany.
"/#glob/infosystem": Nie jest stosowany.
 
PmAlarmEvent: Tekst filtra określający, które alarmy/eventy mają być zawarte w określonym wyniku.

Różne pola filtra mogą być użyte także równocześnie, w takim przypadku alarm/event musi odpowiadać wszystkim (np. "desc:FIQ100;priority.ge:5;").

Tekst filtra xx nie może być pusty (np. nie można wpisać "desc:;").

Dane są tutaj w formacie KeyVal, na przykład "desc:Test2;records:50;".

 

Istnieją następujące rodzajy tekstów filtrowania ("field" przedstawia niektórą kolumnę alarmów):

"field:xx;" oznacza, że odpowiednie pole alarmu musi być równe wartości xx.
"field:#eq:xx;" oznacza, że odpowiednie pole alarmu musi być równe wartości xx. Jeżeli odpowiednie pole alarmu ma być równe jednemu z kilku tekstów, wtedy można wprowadzić kilka tekstów oddzielonych #or:.
"field:#begin:xx;" oznacza, że odpowiednie pole alarmu musi rozpoczynać się na tekst xx. Jeżeli odpowiednie pole alarmu ma rozpoczynać się na niektóry z kilku tekstów, wtedy można wprowadzać kilka tekstów oddzielonych #or:.
"field:#in:xx;" oznacza, że odpowiednie pole alarmu musi wewnątrz zawierać tekst xx. Jeżeli odpowiednie pole alarmu ma zawierać niektóry z kilku tekstów, wtedy można wprowadzać kilka tekstów oddzielonych #or:.
"field:#le:xx;" oznacza, że odpowiednie pole alarmu musi być mniejsze lub równe liczbie xx.
"field:#ge:xx;" oznacza, że odpowiednie pole alarmu musi być większe lub równe liczbie xx.
 

Notatka! Jeżeli pole rozpoczyna się tekstem s., wtedy chodzi o wybór ukryty końcowemu użytkownikowi w alarm/event przeglądarce oraz służy do ustawienia stałego filtra skryptem bez względu na ustawienia części filtra użytkownika. Dla jednej kolumny mogą zostać wykorzystane oba typy pól filtra jednocześnie. żeby alarm/event był odpowiedni, musi odpowiadać obu polom filtra. To można wykorzystać do ustawienia stałego filtra skryptem (bez możliwości ingerencji końcowym użytkownikiem) a równocześnie ustawić również stan początkowy filtra użytkownika (z możliwością ingerencji końcowym użytkownikiem). Na przykład s.source:#begin:Kociol;source:Kociol1;.

 
"state:xx;" (opcjonalne) - Wyświetlać alarmy, których stan (state) jest zgodny ze stanem xx. Można uruchomić nawet kilka stanów oddzielonych przecinkiem. Na przykład "state:3,2,1;".
"hoot:xx;" (opcjonalne) - Wyświetlać alarmy, na podstawie dźwięku, gdzie xx:
0 = alarmy bezdźwięczne
1 = alarmy dźwięczne
"area:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których obszar (area) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm/event przeglądarce. Na przykład "area:Kotlownia1;" lub "area:#eq:Kotlownia1;" lub "area:#eq:Kotlownia1#or:Kotlownia2;" lub "area:#begin:Kotlownia;".
"s.area:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których obszar (area) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm/event przeglądarce. Na przykład "s.area:Kotlownia1;" lub "s.area:#eq:Kotlownia1;" lub "s.area:#eq:Kotlownia1#or:Kotlownia2;" lub "s.area:#begin:Kotlownia;".
"source:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których źródło (source) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm/event przeglądarce. Na przykład "source:Kociol;" lub "source:#eq:Kociol;" lub "source:#eq:Kociol1#or:Kociol2;" lub "source:#begin:Kociol;".
"s.source:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których źródło (source) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm/event przeglądarce. Na przykład "s.source:Kociol;" lub "s.source:#eq:Kociol;" lub "s.source:#eq:Kociol1#or:Kociol2;" lub "s.source:#begin:Kociol;".
"desc:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których opis (desc) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm/event przeglądarce. Na przykład "desc:FIQ101;" lub "desc:#eq:FIQ101;" lub "desc:#eq:FIQ101#or:FIQ102;" lub "desc:#begin:FIQ;".
"s.desc:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których opis (desc) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm/event przeglądarce. Na przykład "s.desc:FIQ101;" lub "s.desc:#eq:FIQ101;" lub "s.desc:#eq:FIQ101#or:FIQ102;" lub "s.desc:#begin:FIQ;".
"comment:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których komentarz (comment) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm/event przeglądarce. Na przykład "comment:korekta;" lub "comment:#eq:korekta;" lub "comment:#eq:korekta#or:próba;" lub "comment:#begin:korekta;".
"s.comment:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których komentarz (comment) spełnia daną operację #oper:xx. Część filtra ukryta użytkownikowi końcowemu w alarm/event przeglądarce. Na przykład "s.comment:korekta;" lub "s.comment:#eq:korekta;" lub "s.comment:#eq:korekta#or:próba;" lub "s.comment:#begin:korekta;".
"priority:#oper:xx;" (opcjonalne) - Wyświetlać alarmy, których priorytet (priority) spełnia daną operację #oper:xx. Część filtra bez możliwości ingerencji użytkownika końcowego w alarm/event przeglądarce. Na przykład "priority:5;" lub "priority:#eq:5;" lub "priority:#le:5;" lub "priority:#ge:5;".
"from:xx;" (opcjonalne) - Wyświetlać alarmy, których czas powstania (timeon) jest większe lub równe czasu "xx". Czas wprowadza się w formacie time(YYYY.MM.DD-hh:mm:ss.mmm), np. "from:time(2017.07.28-14:30:00.000);". Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza przedziałem czasu nie są testowane).
"to:xx;" (opcjonalne) - Wyświetlać alarmy, których czas powstania (timeon) jest mniejsze lub równe czasu "xx". Czas wprowadza się w formie time(YYYY.MM.DD-hh:mm:ss.mmm), np. "to:time(2017.07.28-15:00:00.000);". Czas to można również wprowadzić przy pomocy słowa kluczowego now, które zaznacza do aktualnego czasu (w momencie wołania), np. to:now. Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza przedziałem czasu nie są testowane).
"timerange:xx;" (opcjonalne) - Wyświetlać alarmy, których czas powstania (timeon) znajduje się w przedziale czasu. Dla określenia przedziału czasu przy pomocy timerange, musi być określone from lub to, gdzie timerange umożliwia wyliczenie drugiej brakującej granicy przedziału czasu. Przedział czasu można więc wprowadzić przy pomocy nastąpującego: from - to, from - timerange lub to - timerange. Na przykład to:now;timerange:30m;. Zakres czasu umożliwia ograniczyć przeszukiwaną część alarmów (alarmy poza przedziałem czasu nie są testowane).

Zakres czasu wprowadza się w formie liczby całkowitej następowanej znakiem jednostki czasu (bez spacji). Jednostkami czasu są: w = tydzień, d = dzień, h = godzina, m = minuta, s = sekunda. Na przykład timerange:12h; lub timerange:90m;.

"viewsort:columnid.dir;" (opcjonalne) - Określa, wg której kolumny będzie początkowe sortowanie. Przedstawia się w następującej formie: identyfikator kolumny, separator kropka (.), znacznik kierunku wzrastająco (a) / malejąco (d). Przeglądarka stanu może wykorzystać sortowanie wg dowolnej kolumny wzrastająco/malejąco. Przeglądarka historii sortuje zawsze wg czasu powstania (timeon) wzrastająco/malejąco. Wstępnie ustawione jest sortowanie wg czasu powstania wzrastająco.Na przykład"viewsort:timeon.a;".

oExtra

(Object) Dodatkowe zachowania wyświetlonej przeglądarki. Dane są tutaj określane wytwarzaniem właściwości w obiekcie typu PmMap (w odróżnieniu od poprzednich parametrów sOptions i sParams gdzie dane należy określić tekstowo) - w taki sposób można przekazywać ogólniejsze wartości aniżeli tylko tekstowe.

Obiekt jest wytwarzany metodą Pm.CreatePmMap.

 
Przykład wytworzenia, załadowania oraz korzystania z obiektu oExtra:
JavaScriptWybierz oraz skopiuj do schowka

var oExtra = Pm.CreatePmMap();
oExtra.Arguments = 3.14;
oExtra.onClose = Pm.CreatePmAction(1, pMe, "ClosePanel");
pMe.PmPanel.OpenView("/Kociol/Panel", "target:_blank;", "", oExtra);
 
Lista właściwości, które można w obiekcie wytworzyć:
oExtra.Arguments (opcjonalne) - (Variant) Wartość przekazywana otwieranej przeglądarce. Wartość ta jest następnie dostępna:
- w zdarzeniu oExtra.onOpen (patrz dalej).
- w panelu PmPanel oraz później przy pomocy właściwości PmiRoot.Arguments.

Wartość ta może być prosta (Integer, String, ..), tablicą lub obiektem typu PmArray lub PmMap (przekazywanie iinych typów obiektów nie jest zalecane).

Określenie tej wartości jest często ważnym na przykład podczas otwierania okna modalnego, które jest przeznaczone do edycji danych. Wtedy właściwość Arguments jest początkową wartością inicjalizacji (właściwość ReturnValue jako wyjściowa opracowana wartość) - patrz W jaki sposób pracować z oknami modalnymi.

oExtra.ViewObject (opcjonalne) - (Variant) Przeglądany obiekt PmForm.

Podczas przeglądania obiektu PmForm (tzn. jeżeli określono sObjectPath="/#glob/form") dana wartość zostanie ustawiona na dynamicznie wytworzony oraz zkonfigurowany obiekt PmForm. Patrz Sposób wytworzenia formularza.

Dla innych przeglądarek wartość ta nie ma zastosowania.

oExtra.onClose (opcjonalne) - (Obiekt typu PmAction) Tu jest określana metoda projektanta, która zostanie wywołana po zamknięciu panela.

Obiekt dla tej właściwości wytwarzany jest przy pomocy metody Pm.CreatePmAction.

Ta metoda projektanta musi posiadać dwa parametry:

- oSystem: Obiekt typu PmMap. Właściwości tego obiektu ustawia system wg tego skąd dana akcja jest wołana. W tym przypadku system ustawia właściwości:
- oSystem.CloseReason: (String) Identyfikator typu zamknięcia okna.
- Podczas przeglądania obiektu PmPanel określany jest podczas zamykania panela metodą PmiRoot.Close(sReason).
- Podczas przeglądania obiektu PmForm wartość identyfikatora jest zależna od tego, jakim przyciskiem przeglądarka została zakończona. Patrz PmForm.SysButtons i PmForm.Close.
- Podczas przeglądania innych obiektów właściwość ta nie jest ustawiana.
- oSystem.ReturnValue: (Variant) Wartość wyjściowa przeglądarki.
- Podczas przeglądania obiektu PmPanel można daną wartość ustawić przy pomocy właściwości PmiRoot.ReturnValue.
- Podczas przeglądania innych obiektów właściwość ta nie jest ustawiana.
- oSystem.ViewObject: (Object) Przeglądany obiekt PmForm.
- Podczas przeglądania innych obiektów właściwość ta nie jest ustawiana.
- oPrivate: Obiekt typu PmMap. Właściwości tego obiektu ustawia projektant w obiekcie PmAction.PrivateData. Projektant w tym obiekcie niemusi ustawiać żadnych właściwości. Ustawieniem dowolnej właściwości można osiągnąć na przykład to, iż jedna metoda projektanta może zostać wykorzystana do wielu celów i tylko na podstawie wartości właściwości w PrivateData można w tej metodzie stwierdzić, z którego miejsca została wywołana.
oExtra.onOpen (opcjonalne) - (Obiekt typu PmAction) Tu jest określana metoda projektanta, która zostanie wywołana po otwarciu panela. (tzn. jeżeli panel został rzeczywiście wyświetlony i zostały w nim wytworzone wszystkie obiekty graficzne).

Obiekt dla tej właściwości wytwarzany jest przy pomocy metody Pm.CreatePmAction.

Ta metoda projektanta musi posiadać dwa parametry:

- oSystem: Obiekt typu PmMap. Właściwości tego obiektu ustawia system wg tego skąd dana akcja jest wołana. W tym przypadku system ustawia właściwości:
- oSystem.Arguments: (Variant) Wartość początkowa przeglądarki, którą podczas otwierania metodą OpenView można określić w pozycji oExtra.Arguments.
- oSystem.ViewObject: (Object) Przeglądany obiekt PmForm. Podczas przeglądania innych obiektów właściwość ta nie jest ustawiana..
- oPrivate: Obiekt typu PmMap. Właściwości tego obiektu ustawia projektant w obiekcie PmAction.PrivateData. Projektant w tym obiekcie niemusi ustawiać żadnych właściwości. Ustawieniem dowolnej właściwości można osiągnąć na przykład to, iż jedna metoda projektanta może zostać wykorzystana do wielu celów i tylko na podstawie wartości właściwości w PrivateData można w tej metodzie stwierdzić, z którego miejsca została wywołana.
oExtra.onChange (opcjonalne) - (Obiekt typu PmAction) Tu jest określana metoda projektanta, która zostanie wywołana, jeżeli w wyświetlonym obiekcie zostanie zmieniona dowolna pozycja.

Obiekt dla tej właściwości wytwarzany jest przy pomocy metody Pm.CreatePmAction.

To działa tylko jeżeli wyświetlany obiekt to PmForm

Ta metoda projektanta musi posiadać dwa parametry:

- oSystem: Obiekt typu PmMap. Właściwości tego obiektu ustawia system wg tego skąd dana akcja jest wołana. W tym przypadku system ustawia właściwości:
- oSystem.ViewObject: (Object) Przeglądany obiekt PmForm.
- oSystem.ItemId: (String) Typ elementu (określa się podczas wytwarzania elementu metodą PmForm.CreateItem).
- oSystem.ChangeType: (String) Identyfikator typu zmiany:
- "value": Została zmieniona wartość dowolnego elementu.
- "push": Niektóra pozycja została naciśnięta. Działa tylko dla pozycji typu PmfButton.
- oSystem.NewValue: (Variant) Wartość elmentu po zmianie. Właściwość ta jest ustawiona tylko jeżeli ChangeType="value".
- oSystem.OldValue: (Variant) Wartość elemntu przed zmianą. Właściwość ta jest ustawiona tylko jeżeli ChangeType="value".
- oPrivate: Obiekt typu PmMap. Właściwości tego obiektu ustawia projektant w obiekcie PmAction.PrivateData. Projektant w tym obiekcie niemusi ustawiać żadnych właściwości. Ustawieniem dowolnej właściwości można osiągnąć na przykład to, iż jedna metoda projektanta może zostać wykorzystana do wielu celów i tylko na podstawie wartości właściwości w PrivateData można w tej metodzie stwierdzić, z którego miejsca została wywołana.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice