Konfigurowanie obliczeń w oknach
Proces konfigurowania okna dynamicznego składa się z dwóch etapów:
- Tworzenie obliczenia, które zwraca wartość funkcji okna wykonanej na atrybucie w Projektancie obiektów
- Projektowanie okna, w którym wykonywane jest obliczenie, za pomocą Menedżera okien
W dwóch poniższych procedurach zademonstrowano, w jaki sposób można ustawić pole Wpływ w oknie Incydent jako obowiązkowe, jeśli wypełnione jest pole Pilność. W przypadku innych funkcji okna można stosować podobne techniki. Więcej przykładowych obliczeń można znaleźć dalej.
Aby utworzyć obliczenie:
- Uruchom Projektanta obiektów i otwórz obiekt na potrzeby okna.
W tym przykładzie jest to Zarządzanie incydentami\Incydent. - Utwórz nowy atrybut tekstowy o właściwości Maks. długość ustawionej na wartość -1, służący do przechowywania obliczenia.
Zaleca się używanie nazw atrybutów obliczeń, które rozpoczynają się od ciągu znaków DynamicWindow, aby ułatwić ich znalezienie w projektantach.
- Ustaw właściwość Typ obliczenia nowego atrybutu na wartość Obliczenia okna.
Zostanie wyświetlone okno dialogowe Edytuj wzór. - Usuń zaznaczenie pola wyboru Automatyczne wykrywanie zależności.
Zależności zostaną ustawione ręcznie. - Utwórz obliczenie, które ustawia zmienną Value na wartość ":SetMandatory(atrybut, True)".
W tym przykładzie, aby ustawić atrybut Wpływ jako obowiązkowy, wpisz następujące obliczenie:
import System
static def GetAttributeValue(Incident):
Value = ":SetMandatory(_Impact, True);"
return Value
To obliczenie nie jest obliczeniem, którego można by użyć w rzeczywistym systemie. Co prawda ustawia atrybut Wpływ jako obowiązkowy, gdy wypełnione jest pole Pilność, ale nie zapewnia obsługi resetowania pola, gdy pole Pilność ulega później ponownej zmianie. Ten przykład został tutaj umieszczony wyłącznie w celu zaprezentowania procedur konfigurowania okien dynamicznych. Bardziej kompletne obliczenie jest opisane dalej.
Wiersze zaczynające się od ciągów znaków Value i return w powyższym przykładzie mają pojedyncze wcięcie. Kopiując stąd przykłady, należy pamiętać o zachowaniu właściwych wcięć po ich wklejeniu do edytora obliczeń.
Funkcja :SetMandatory korzysta wyłącznie z nazwy atrybutu. Nie należy dołączać nazwy obiektu (na przykład nie należy stosować nazwy Incydent._Wplyw). Należy pamiętać, że jeśli dany atrybut nie jest atrybutem systemowym, jego nazwa zaczyna się od znaku podkreślenia (na przykład _Wplyw).
Można zaktualizować wiele atrybutów docelowych, rozdzielając je średnikami. Na przykład:
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”
- Przeciągnij atrybut, który powoduje wykonanie obliczenia, z drzewa Atrybuty do okienka Zależności.
W tym przykładzie przeciągnij atrybut Pilność incydentu. Należy zauważyć, że w okienku Zależności pojawia się nazwa atrybutu z wewnętrznej bazy danych — _PilnoscIncydentu. - Kliknij przycisk OK.
Okno dialogowe Edytuj wzór zostanie zamknięte. - Kliknij przycisk .
Zmiany wprowadzone do obiektu zostaną zapisane.
Po utworzeniu obliczenia ustawiającego pole jako obowiązkowe, można skonfigurować jego użycie w oknie.
Aby skonfigurować okno:
- W Menedżerze okien otwórz wymagane okno.
W tym przykładzie jest to okno Incydent. - Dodaj do okna utworzony powyżej atrybut obliczany.
Ten atrybut musi zostać dodany do okna, ale można go ukryć, ustawiając właściwość PokażWOknie na wartość Nie. Zaleca się ustawienie właściwości PokażWOknie na wartość Tak podczas projektowania i testowania obliczenia.
- Wybierz formant, którego chcesz użyć do wyzwolenia obliczenia.
Jest to atrybut dodany do okienka Zależności w obliczeniu. W tym przykładzie jest to Pilność. - W siatce Właściwości tego formantu ustaw właściwość Obliczane przy zmianie na wartość Tak.
- Zapisz zmiany w oknie.
Gdy użytkownik wybierze Pilność w oknie Incydent, wyzwolone zostanie obliczanie, a wartość obliczonego atrybutu zostanie ustawiona na:SetMandatory(_Impact, True);. W ten sposób pole Wpływ stanie się obowiązkowe.