- 次のエージェントは現在のデータベースの [By Category] ビュー内の [Leather] で始まる最初のカテゴリにある最初の文書を取得し、価格を表示します。
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
key = "Leather"
Set db = session.CurrentDatabase
Set view = db.GetView ("By Category" )
Set doc = view.GetDocumentByKey (key )
If Not (doc Is Nothing) Then
Messagebox "$" & doc.GetItemValue ("Price")(0),, _
"Price"
Else
Messagebox "By Category " + key,, "Not found"
End If
End Sub
- 次のスクリプトは、現在のデータベースの [By Category] ビュー内の「Spanish leather」カテゴリにある最初の文書を取得します。カテゴリの名前は、正確に「Spanish leather」でなければなりません。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "By Category" )
Set doc = view.GetDocumentByKey( "Spanish leather", True )
- 次のスクリプトは現在のデータベースの [By Category and Author] ビューを調べます。このビューは文書をカテゴリで分類した後で、各カテゴリごとに作成者で分類します。スクリプトは「Expense Report」カテゴリで作成者が「Robson Da Silva」である最初の文書を取得します。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim keys( 1 To 2 ) As String
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "By Category and Author" )
keys( 1 ) = "Expense Report"
keys( 2 ) = "Robson Da Silva"
Set doc = view.GetDocumentByKey( keys )
- このフィールドスクリプトは現在の文書の [Name] フィールドからユーザーのフルネームを取得し、分析してそこから姓の部分を抽出します。そして、GetDocumentByKey を使用して、現在のコンピュータにあるアドレス帳の [ユーザー] ビューで、そのユーザーの勤務先電話番号を検索します。さらに、その電話番号を現在の文書の [Phone] フィールドに入力します。
Sub Exiting(Source As Field)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim fullName As String
Dim lastName As String
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
' first parse the full name to find the last name
Set uidoc = workspace.CurrentDocument
fullName = uidoc.FieldGetText( "Name" )
lastName = Mid$( fullName, (Instr( fullName, " ") + 1 ))
' now use the last name as the key
Set db = New NotesDatabase( "", "names.nsf" )
Set view = db.GetView( "People" )
Set doc = view.GetDocumentByKey( lastName )
Call uidoc.FieldSetText _
( "Phone", doc.OfficePhoneNumber( 0 ) )
End Sub
- 次のスクリプトは現在のデータベースの [By Category] ビュー内の [Spanish leather] カテゴリのすべての文書を取得し、[Boots] フォルダに入れます。スクリプトは GetDocumentByKey を使用してカテゴリの最初の文書を見つけ、GetNextDocument を使用して 2 番目以降の文書を検索します。スクリプトは NotesDocument の ColumnValues プロパティを使用して各文書の列の値を調べます。ビューのソートされた最初の列の文書の値が「Spanish leather」であれば、スクリプトは文書を [Boots] フォルダに入れます。ソート済みの列の最初の値が「Spanish leather」以外であるか、ビューに未処理の文書がなくなると、スクリプトは終了します。次の方法より簡単な方法については、GetAllDocumentsByKey を参照してください。次のテクニックの唯一の利点は、取得した文書に ColumnValues プロパティを正確に設定することです。これは GetAllDocumentsByKey ではできません。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim column As NotesViewColumn
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "By Category" )
' get the first sorted and categorized column in the view
Forall c In view.Columns
If ( c.IsSorted And c.IsCategory ) Then
Set column = c
Exit Forall
End If
End Forall
' get the first document that matches the key
Set doc = view.GetDocumentByKey( "Spanish leather" )
' get the remaining documents that match the key
' since ColumnValues array starts at 0 for position 1,
' subtract 1 from the column position
Do While Not ( doc Is Nothing )
If ( doc.ColumnValues( column.Position - 1 ) = _
"Spanish leather" ) Then
Call doc.PutInFolder( "Boots" )
Else
Exit Do
End If
Set doc = view.GetNextDocument( doc )
Loop