OpenViewModal - metoda obiektu PmaPanel
Opis:
Metoda otworzy przeglądarkę innego obiektu w oknie modalnym.
Metoda ta 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 do obiektu, 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ść panelu nie jest bezpośrednio połączona (powiązaniami, skryptem) 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.
Przykład:
Otworzy panel w nowym oknie modalnym z wprowadzaniem wartości parametru panelu
nmb oraz również tablica 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);
}
Dim arr
arr = Pm.Array1("text 0", 5)
Dim r
r = pMe.PmPanel.OpenViewModal("/Panel3", "", "pars:{nmb:2;}", arr)
If Pm.IsValid(r) Then
Pm.Debug r, 1
End If
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var aArg = pMe.Arguments;
pMe.Items("/text0").Value = aArg.GetItem(0);
pMe.Items("/text1").Value = aArg.GetItem(1);
Dim aArg
aArg = pMe.Arguments
pMe.Items("/text0").Value = aArg(0)
pMe.Items("/text1").Value = aArg(1)
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var r0 = pMe.Items("/text0").Value;
var r1 = pMe.Items("/text1").Value;
pMe.ReturnValue = Pm.Array1(r0, r1);
Dim r0
r0 = pMe.Items("/text0").Value
Dim r1
r1 = pMe.Items("/text1").Value
pMe.ReturnValue = Pm.Array1(r0, r1)
Historia:
Pm8.02.14: Metoda nie potrafiła zwracać wartość typu
Date.