Pracownia specjalistyczna |
Podstawy pisania prostych aplikacji III |
Kategoryzacja umożliwia posortowanie i pogrupowanie dokumentów
Widok z kategoryzacją wg osoby do której przydzielony jest sprzęt
Jak to zrobić pokazuje rysunek poniżej
Ustawić właściwości pierwszej kolumny
Zadanie: Utworzyć widoki „wg osób” i widok „wg pokojów”
Zmodyfikować widok „wg osoby” tak aby zsumować wartości kosztów
W ćwiczeniu pokazane jest jak pobrać wartości z innego dokumentu w tym przypadku w dokumencie „Sprzęt komputerowy” pobieramy imię /gdy mamy nazwisko/ z dokumentu „Osoba”
Użyto obliczalnego pola : sOsobaImię
I formuły:
@If( sOsoba != "";
@DbLookup (""; ""; "Osoby"; sOsoba; 2);
""
)
która:
- jeśli pole sOsoba nie jest puste
- znajduje w widoku „Osoby” dokument, którego wartość pierwszej kolumny jest równa polu sOsoba
- pobiera 2 kolumnę
Powinniśmy uzyskać: po wybraniu nazwiska osoby imię powinno zostać obliczone (pobrane z dokumentu osoby)
Dodać pole pobierające Telefon osoby
Formuła:
@If( sOsoba != "";
@DbLookup (""; ""; "Osoby"; sOsoba; "Telefon");
""
)
@DbLookup (Notes/Domino databases)
Given a key value, looks in the specified view (or folder) and finds all documents containing the key value in the first sorted column within the view. For each selected document, @DbLookup returns either the contents of a specified column in the view, or the contents of a specified field.
Syntax
@DbLookup( class : "NoCache" ; server : database ; view ; key ; fieldName ) or
@DbLookup( class : "NoCache" ; server : database ; view ; key ; columnNumber )
view
Text. The name of the view or folder in which to search. The view name must exactly match the view's full name as specified in the view InfoBox (you can omit any synonyms). If the view cascades from another name on the menu, include that name too. See "Specifying the view name," below.
key
Text. Determines which document is actually read in order to retrieve a value. A document's key is the value displayed in the first sorted column within the view. See "Specifying a key."
fieldName
Text. The name of the field from which the data will be retrieved, once the correct document(s) has been identified. See "Specifying a field name" below.
columnNumber
Number. When you use a column number, Notes/Domino finds all documents in the view that match the specified key, and returns whatever value is displayed in the indicated column for each of those documents, regardless of the formula used to display the data. See "Specifying the column number."
Return value
valuesFound
Text, numbers, date-time, or text-list. The values found in the fieldName or column you indicated. See "Accessing the values found," later in this chapter.
Dodanie pół i ustawienie ich właściwości
Utworzyl
Edytowal
DataUtworzenia
DataModyfikacji
W ten sposób uzyskamy metryczką dokumentu informującą kiedy i przez kogo dokument był ostatnio modyfikowany modyfikujących dokument
Dodać pole historia dokumentu
W zdarzeniu dotyczącym formularza Querysave dodać formułę:
FIELD Historia := Historia;
@SetField("Historia"; @Text(@Now) + " --> " + @Name ([CN];@UserName) + " edytował" + @NewLine + Historia )
Napisz kod, który będzie zapisywał w polu Historia zmiany zawartości dwóch wybranych pól formularza
np. Data: Pole Subject zostało zmienione z zawartości :... na zawartość … przez użytkownika ….
Logowanie do Historii zmian w innych polach
PROBLEM
Gdy dokument jest na serwerze może być edytowany przez różne osoby. Może się zdarzyć sytuacja gdy ktoś zmieni zawartość jakiegoś ważnego pola na nową wartość. My chcemy żeby wszelkie zmiany pola "rodzaj" były logowane w polu historia".
w Querysave:
FIELD
historia := historia;
@SetField("historia";
@Text(@Now)+ " -> "+@Name([CN];@UserName) + "
edytowal " +@NewLine +historia);
@If(rodzaj_temp
!= rodzaj;
@SetField("historia"; @Text(@Now)+ "
-> "+@Name([CN];@UserName) + " ZMIANA POLA RODZAJ z
wartości: " + rodzaj_temp + "na wartość: " + rodzaj
+@NewLine + historia);
"");
FIELD
rodzaj_temp := rodzaj;
Pozdrawiam,
Jacek Grekow