poniedziałek, 24 września 2012

Walidacja pól po stronie serwera

na XPAGE możemy umieścić dwa rodzaje pól pokazujące błędy

1. DISPLAY ERROR - to pole "przywiązujemy" do konkretnego pola na naszym XPAGE
2. DISPLAY ERRORS - wyświetla błędy ze wszystkich pól na XPAGE

w polach które chcemy sprawdzać włączamy walidację (VALIDATION - REQUIRED FIELD) i wpisujemy komunikat jaki ma się pojawiać - VALIDATION ERROR MESSAGE

następnie na polu jednym z tych typu REQUIRED
wchodzimy w ALL PROPERTIES - DATA
ustawiamy - DISABLE CLIENT SIDE VALIDATION na TRUE

wtedy walidację mamy załatwioną "odgórnie" przez serwer - a nasz klient zobaczy dokładnie te komunikaty VALIDATION ERROR MESSAGE w miejscu bądź miejscach gdzie je umieściliśmy ...

czwartek, 6 września 2012

dwa źródła danych - kopiujemy załącznik w polu RichText

kopiujemy załącznik w polu RichText z jednego źródła danych do drugiego dokumentu w drugim zestawie danych


var jakaś zmienna:NotesDocument = źródło danych nr 1 .getDocument();
var pole:NotesRichTextItem = jakaś zmienna.getFirstItem('nazwa pola RichText z załącznikiem')
if (pole != null){docelowe źródło danych.getDocument().copyItem(pole,'nazwa pola RichText gdzie chcemy wkleić załącznik')}

czwartek, 23 sierpnia 2012

Data

pobieramy z formularza typ data

var data:NotesDateTime = nasz_dokument.getItemValueDateTimeArray('nazwa pola w którym mamy datę').elementAt(0);
return data.getDateOnly()


czyli wyświetlamy tylko datę bez godziny


piątek, 10 sierpnia 2012

pole MULTIVALUE - wartości w nowych liniach

umieszczamy na XPAGE element MultiLine Edit Box

jeśli powiążemy go z elementem DATASOURCE z formularza, który dopuszcza stosowanie MultiValue

możemy wejść w ALL PROPERTIES / BASICS / MULTIPLE SEPARATOR
i wstawić computed value na "\n"
co oznacza że każda nowa wartość będzie wyświetlana w nowej linii

wtorek, 7 sierpnia 2012

Typ pliku z komponentu FileDownload

jeśli mamy komponent FileDownload osadzony na XPAGE
możemy wyciągać dowolne informacje o pliku załączonym
na przykła jego nazwę, wielkość i typ itd

var fileDownload1:com.ibm.xsp.component.xp.XspFileDownload = getComponent("nazwa naszej kontrolki FileDownload");
x = fileDownload1.getTypeValue();
return x

piątek, 3 sierpnia 2012

ArrayAppend z poziomu XPAGEsów

w kodzie nie możemy użyć ArrayAppend w stosunku do pola MultiValue
wystarczy prosty myk
definiujemy tabelkę
potem robimy push na koniec tabeli
na koniec zapisujemy tabelkę do pola i już


var nazwa-naszej-tabelki = new Array(dokument.getItemValue("nazwa pola multivalue"));
nazwa-naszej-tabelki.push("nowa wartość dopisywana na końcu");
dokument.replaceItemValue('nazwa pola multivalue', nazwa-naszej-tabelki)

czwartek, 2 sierpnia 2012

uruchamiamy agenta ze strony XPAGE

tym razem chcemy uruchomić agenta w bazie (nie zapominamy go podpisać z odpowiednimi uprawnieniami)

wykonujemy prostą akcję

var agent=database.getAgent(nazwa naszego agenta");
agent.run(currentDocument.getNoteID());


druga linijka jest bardzo ważna - agent musi być "podpięty" do dokumentu
samo agent.run() czy RunOnServer() nie zadziała

pojawiła się niezła opcja

agent.runWithDocumentContext()

o tym w następnym wpisie jak już potestuję

aha jeszcze jedno - sam agent nie może być typu SIMPLE ACTION
a w LotusScript -- typie agenta - zaznaczałem SELECT - NONE