Promotic

OpenViewModal - metoda obiektu PmaPanel

Opis:
Metoda otworzy przeglądarkę innego obiektu w oknie modalnym.
Niniejsza metoda jest przestarzała (lecz funkcjonalna), nie działa w nowoczesnych przeglądarkach internetowych oraz dogodniejszym jest zastosowanie metody Pm.CreateView. Patrz Jak pracować z oknami modalnymi.
Składnia:
Variant OpenViewModal(String sObjectPath, [String sOptions], [String sParams], [Variant vArguments])
Parametry:
sObjectPath(String) Ścieżka (względna lub bezwzględna) do obiektu lub komponentu, którego przeglądarka ma zostać otwarta.
Szczegółowy opis patrz sObjectPath.
sOptions[opcjonalne] (String) Parametry 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;".
Szczegółowy opis patrz sOptions.
sParams[opcjonalne] (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;".
Szczegółowy opis patrz sParams.
vArguments[opcjonalne] (Variant) Wartość, która jest automatycznie przeniesiona do właściwości Arguments.
Wartość tej właściwości jest zazwyczaj odczytywana w zdarzeniu onPanelStartEnd i służy do przekazania danych wejściowych do otwieranego okna bezpośrednio w skrypcie.
Wartość zwrotna:
Po naciśnięciu przycisku OK zostanie zwrócona wartość ustawiona w tym oknie (patrz notatka poniżej).
Jeżeli w oknie modalnym naciśnięto na przycisk "Cofnij" (lub klawisz Esc), wtedy metoda zwraca: null dla JavaScript lub Empty dla VBScript (można sprawdzić przy pomocy metody Pm.IsValid).
Notatka:
Metoda jest synchroniczna, to znaczy, że skrypt jest kontynuowany przez wykonani następującego polecenia dopiero po zakończeniu okna modalnego. Do otwarcia przeglądarki musi być w otwieranym obiekcie spełnione uprawnienie. Na przykład dla obiektu PmaPanel: uprawnienie PanelOpen lub WebRead, itd.

Wejściowe oraz wyjściowe wartości dla modalnego PmaPanel:
Dla modalnego otwarcia przeglądarki obiektu PmaPanel są ważne dwie właściwości:
- PmgRoot.Arguments: Wartość wejściowa podczas otwarcia okna modalnego. Wartość ta jest zkopiowana z parametru vArguments tej metody.
- PmgRoot.ReturnValue: Wartość wyjściowa podczas zamykania okna modalnego przy pomocy przycisku "OK". Czyli wartość, która znajduje się w tej właściwości, zostanie zwrócona jako wartość zwrotna (wyjściowa) tej metody.

Koncepcja ta umożliwia wytworzyć okno (formularz), gdzie zawartość panela nie jest bezpośrednio połączona (powiązaniami, skryptami) z aplikacją, ale cały stan początkowy okna jest przekazany przy pomocy wstępnego parametru a cały stan po edycji zawartości jest przekazany poprzez wartość zwrotną.
Do przekazania kilku wartości poprzez jeden parametr można zastosować funkcję VBScript.Array.

Metoda ta działa także w Web panelach.
Patrz również:
- PmgRoot.Arguments (właściwość)
- PmgRoot.ReturnValue (właściwość)
Przykład:
Otworzy panel w nowym oknie modalnym z wprowadzaniem wartości parametru panela nmb oraz również pole 2 wartości w parametrze vArguments. Następuje sprawdzenie, czy okno modalne podczas zakończenia (np. przy pomocy przycisku "OK") przekazało wartość zwrotną (przy pomocy właściwości PmgRoot.ReturnValue). Jeżeli tak, wtedy zostanie wypisana notatka tej wartości do INFO systemu. Skrypt ten może się znajdować na przykład w zdarzeniu onButtonUp obiektu PmgButton.
 
Skrypt wołający okno modalne:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var arr = Pm.Array1("text 0", 5);
var r = pMe.PmPanel.OpenViewModal("/Panel3", "", "pars:{nmb:2;}", arr);

if (Pm.IsValid(r))
{
Pm.Debug(r, 1);
}
 
Skrypt w zdarzeniu PmgRoot.onPanelStartEnd (parametry zostaną zapisane do 2 obiektów PmgString):
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var a = pMe.Arguments;
pMe.Items("/text0").Value = a.GetItem(0);
pMe.Items("/text1").Value = a.GetItem(1);
 
Skrypt w zdarzeniu PmgRoot.onPanelStopEnd (wartości 2 obiektów PmgString zostana zapisane do wartości zwrotnej):
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var r0 = pMe.Items("/text0").Value;
var r1 = pMe.Items("/text1").Value;
pMe.ReturnValue = Pm.Array1(r0, r1);

Historia:
Pm8.02.14: Metoda nie potrafiła zwracać wartość typu Date.
© MICROSYS, spol. s r.o.