プログラミングの概要とユーザーインターフェース
例:イベント
1
次の LotusScript はデータベースが開いたときに実行されます。ユーザー名の OrgUnit1 部分の値に応じて特定のビューを開きます。
Sub Postopen(Source As Notesuidatabase)
Dim session As New NotesSession
Dim userName As NotesName
Set userName = session.CreateName(session.UserName)
Select Case userName.OrgUnit1
Case "Marketing"
Call Source.OpenView("Marketing")
Case "Engineering"
Call Source.OpenView("Engineering")
Case Else
Call Source.OpenView("General")
End Select
End Sub
2 次の LotusScript は [Engineering] ビューを開く前に実行されます。ユーザー名の OrgUnit1 部分が「Engineering」でない場合、スクリプトはメッセージを表示して、ビューを開かないように [Continue] に [False] を設定します。
Sub Queryopen(Source As Notesuiview, Continue As Variant)
Dim session As New NotesSession
Dim userName As NotesName
Set userName = session.CreateName("session.UserName")
If userName.OrgUnit1 <> "Engineering" Then
Continue = False
Messagebox _
"This view is reserved for engineering",, _
"No admittance"
End If
End Sub
3 次の LotusScript は、ユーザーが文書を開いたときに実行されます。文書は自動的に編集モードになり、ルーラーが表示され、すべてのセクションが展開されます。
Sub Postopen(Source As Notesuidocument)
source.EditMode = True
source.Ruler = True
Call source.ExpandAllSections
End Sub
4 次の JavaScript のボタンスクリプトは、関連付けられたフォーム上の 1 つのフィールドの値を変更します。この例では、文書には 1 から 10 までの優先順位 (1 が最高) を割り当てることができます。文書の優先順位は、フォーム上の [Priority] フィールドに保持されます。ボタン「Increase Priority」を使えば、フィールドを直接的に編集しなくても、ユーザーは優先順位を上げることができます。ボタンがクリックされると、[Priority] フィールドの値から 1 が減り、1 つ高い優先順位が割り当てられます。1 より小さい優先順位は使えません。
//get a handle to the Priority field
var priorityField = document.forms[0].Priority;
//get its current integer value
var currentPriority = parseInt(priorityField.Value);
//increase the priority (1 is the highest, 10 is the lowest)
var newPriority = Math.max(currentPriority -1, 1);
//update the Priority field value
priorityField.value = newPriority;
5 次の LotusScript のイベントは、ユーザーが [FullName] フィールドに挿入点を移動したときに実行されます。このスクリプトは、[FirstName] フィールド、空白、[LastName] フィールドを連結して [FullName] フィールドに入力します。
Sub Entering(Source As Field)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
firstName = uidoc.FieldGetText("FirstName")
lastName = uidoc.FieldGetText("LastName")
fullName = firstName & " " & lastName
Call uidoc.FieldSetText("FullName", fullName)
End Sub
6 次の JavaScript のイベントは、フィールドからフォーカスが移動したときに実行されます。このスクリプトはフィールドの先頭と末尾の空白を切り捨て、値が有効な郵便番号かどうかテストします。無効であれば、ステータスバーにメッセージが表示され、フォーカスはフィールドに戻ります。「trim」と「isValidZipCode」はユーザー定義の関数で、onBlur ハンドラ内で有効です。
var zipCode = trim(this.value);
if(!isValidZipCode(zipCode)){
window.status = "Illegal zip code.";
this.focus();
}
7 次の LotusScript のイベントは、ユーザーが [Age] フィールドの入力を終了したときに実行されます。このスクリプトはユーザーに数値の入力を求めます。
Sub Exiting(Source As Field)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
age = uidoc.FieldGetText("Age")
If age = "" Or Not Isnumeric(age) Then
While age = ""
age = Inputbox _
("Whoa! you must enter an age")
Wend
While Not Isnumeric(age)
age = Inputbox("Age must be numeric")
Wend
Call uidoc.FieldSetText("Age", age)
End If
End Sub
8 次の LotusScript のイベントは、ユーザーがフィールドの入力を終了したときに実行されます。このスクリプトは Mary Chen にメールメッセージを送信します。
Sub Exiting(Source As Field)
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim doc As New NotesDocument(db)
doc.Form = "Form"
doc.Subject = "Sales Updated"
doc.Body = "Sales updated by " & session.UserName
Call doc.Send(True, "Mary Chen")
End Sub
関連項目
イベント
用語集
フィードバック
ヘルプ
または
プロダクトユーザビリティ
?
ヘルプの使い方
すべてのヘルプ項目
用語集