LotusScript® のクラスで現在の文書にアクセスする

現在開いているバックエンドの文書にアクセスするには、NotesUIWorkspaceNotesUIDocument の各クラスを使用します。NotesUIView クラスを使用すると、Documents プロパティで、ビューのバックエンド文書にアクセスできます。

NotesUIDocument は、ユーザーが画面上で見る内容に関係する「フロントエンド」オブジェクトです。NotesUIDocument.Document プロパティは、対応する「バックエンド」の NotesDocument オブジェクトを返します。このオブジェクトは、文書の保存時にディスク上に格納される内容を示します。この NotesDocument オブジェクト (NotesUIDocument との関係を持つ特殊な NotesDocument) 内のフィールドに変更を加えると、変更内容が画面上に直ちに反映されます。この NotesDocument は、編集中の文書に対して機能するボタンやアクションを作成する際に非常に便利です。これを使用する際には、以下のことを検討してください。

NotesUIDocument から取得した文書上で NotesDocument.Save を呼び出さないでください。 UI はこの文書が保存されていることを認識しません。ユーザーがこの文書をさらにフロントエンドで (例えば、メニューから [ファイル] > [保存] を使用して) 保存すると、IBM Notes はこれを保存の競合として検出します。

バックエンドで保存を実行する必要がある場合は、ユーザーが保存の競合を発生させるのを防ぐため、NotesUIDocument を直ちに閉じることをお勧めします。文書が編集モードになっている場合は、SaveOptions フィールドを "0" に設定すると、ユーザーに保存を求めるプロンプトを出さずに文書を閉じることができます。

NotesUIDocument が認識するのは、フィールド内のテキストについてのみです。フィールドが数値型または日時型の場合、NotesUIDocument.FieldGetText メソッドは画面上に表示可能な文字を返します。ただし、GetItemValue などを使用して NotesDocument から値を求めると、フィールドに当該型の有効な値が含まれていれば、数値または日時値が得られます。

NotesDocument を使用すると、区切り文字で区切られた文字列ではなく配列としてフィールド値を取得できるため、特に複数値フィールドに便利です。これを使用すると、フォームの設計が変更され、以前とは異なる区切り文字が使用されていても壊れないコードを作成できます。

キーワードフィールドに同義語の値 ("Yes | 1"、"No | 0") が入る場合、NotesUIDocument はユーザー表示値 ("Yes" または "No") を処理しますが、NotesDocument は格納された値 ("1" または "0") しか認識しません。これを使用すると、格納された値をバックエンドで操作するコードを作成でき、そのコードは、格納された値に対応するユーザー表示値が変更された場合や、多言語アプリケーションなどでユーザー文字列に複数のバージョンがある場合でも壊れないため便利です。

リッチテキストフィールドは特殊で難しいフィールドです。画面上の内容を反映して NotesRichTextItem の内容を最新の状態にするには、NotesUIDocument.Refresh(True) を呼び出す必要があります。 NotesRichTextItem のメソッドを使用してリッチテキストに変更を加えた場合、その変更内容を画面上に表示させるには、文書を閉じて再び開く必要があります。

NotesRichTextItem を使用してリッチテキストを変更すると、変更内容は画面上に表示されませんが、ユーザーが UI を通して文書を保存する際に変更内容が保存されます。これが機能するのは、ユーザーが同じリッチテキストフィールドに対して手動で変更を加えていない場合です。このような手動変更は、バックエンドでの変更よりも優先されます。したがって、この手法は、ユーザーが編集できない「計算結果」リッチテキストフィールドで使用する場合や、更新されたリッチテキストを表示するために直ちに文書を閉じて再び開くことが実用的な場合に特に便利です。

リッチテキストを再表示する必要がある場合や、通常はオープン時にのみ表示されるその他の情報を編集モード中に更新する必要がある場合は、文書を保存せずに閉じて再び開くことで実行できます。「文書を保存せずに閉じて再び開く」を参照してください。

NotesUIDocument クラスには、次のプロパティがあります。

プロパティ

データ型

説明

AutoReload

Boolean 型

(読み書き可能) 変更があったときに自動的に現在の文書を再ロードする場合は True。

CurrentField

String

(読み込み専用) 文書が編集モードの場合、現在のフィールドの名前。

DialogBoxCanceled

Boolean 型

(読み込み専用) ユーザーがダイアログをキャンセルしたかどうかを示します。

Document

NotesDocument

(読み込み専用) この文書ウィンドウに関連付けられた NotesDocument オブジェクトへの参照です。これによりバックエンドのプロパティとメソッドにアクセスできます。NotesDocument オブジェクトを使用してアイテムを変更、保存した場合、そのアイテムはリッチテキストアイテム以外であれば、ワークスペース内で自動的に更新されます。

EditMode

Boolean 型

(読み書き可能) 編集モードの場合は True。

FieldHelp

Boolean 型

(読み書き可能) フィールドヘルプを表示する場合は True。

HorzScrollBar

Boolean 型

(読み書き可能) 水平スクロールバーが表示される場合は True。

HiddenChars

Boolean 型

(読み書き可能) 非表示文字を表示する場合は True。

InPreviewPane

Boolean 型

(読み込み専用) 文書がプリビューペインからアクセス中の場合は True。

IsNewDoc

Boolean 型

(読み込み専用) 文書がまだ保存されていない場合は True。

PreviewParentDoc

Boolean 型

(読み書き可能) ペインに親文書を表示する場合は True。

PreviewDocLink

Boolean 型

(読み書き可能) ペインに文書リンクを表示する場合は True。

Ruler

Boolean 型

(読み書き可能) ルーラーを表示する場合は True。

WindowTitle

String

(読み込み専用) ウィンドウタイトルの名前。

NotesUIDocument クラスには次のメソッドがあります。

メソッド

説明

Categorize

現在の文書をカテゴリ別に分類します。

Clear

選択された文字列を消去します。

Close

現在の文書を閉じます。

CollapseAllSections

文書の全セクションを省略します。

Copy

選択された文字列をクリップボードへコピーします。

CreateObject

リッチテキストアイテムにオブジェクトを作成します。

Cut

選択された文字列を切り取り、クリップボードに置きます。

DeleteDocument

現在の文書に削除マークを付けてから文書を閉じます。一度このメソッドを呼び出すと NotesUIDocument オブジェクトは使用できなくなります。

DeselectAll

現在のフィールドの全内容の選択を解除します。

ExpandAllSections

文書の全セクションを展開します。

FieldAppendText

指定された文字列を、指定されたフィールドまたは現在のフィールドに添付します。

FieldClear

指定されたフィールドまたは現在のフィールドの内容を消去します。

FieldContains

指定されたフィールドまたは現在のフィールドに、指定された (大文字小文字を区別する) 文字列が含まれる場合、True を返します。

FieldGetText

指定されたフィールドまたは現在のフィールドの文字列を取得します。

FieldSetText

指定されたフィールドまたは現在のフィールドに、指定された文字列を設定します。

FindFreeTimeDialog

[空き時間の検索] ボックスを表示します。

FindFreeTimeDialogEx

会議用に空いている時間を検索できるように [空き時間の検索] ボックスを表示します。

FindString

指定されたフィールドで文字列を検索します。

Forward

新規メール文書を作成し、受信者の入力を求めます。

GetObject

指定されたオブジェクトを取得します。

GetSchedulerObject

埋め込みスケジューラを取得します。

GetSelectedText

UI 文書で選択された文字列を取得します。

GotoTop

最初のフィールドに移動するか、文書の先頭までスクロールします。

GotoBottom

最後のフィールドに移動するか、文書の最後までスクロールします。

GotoField

文書内の指定された名前のフィールドにカーソルを置きます。

GotoNextField

次のフィールドに移動するか、スクロールして表示します。

GotoPrevField

前のフィールドに移動するか、スクロールして表示します。

GotoTop

文書の最初の編集可能フィールドか最初のボタンにカーソルを置きます。

Import

ファイルを文書に呼び出します。

InsertText

指定された文字列を現在のカーソル位置に挿入します。

NavBarSetText

URL ナビゲーションバーのテキストを設定します。

NavBarSpinnerStart

URL ナビゲーションバーのスピナーを開始します。

NavBarSpinnerStop

URL ナビゲーションバーのスピナーを停止します。

Paste

クリップボードにある文字列を現在のカーソル位置に貼り付けます。

Print

現在の文書を印刷します。

Refresh

文書を更新します。

RefreshHideFormulas

現在の文書の非表示切り替え式を再計算します。この操作の負荷は大きくなります。

Reload

保存された文書に加えられた変更内容で現在の文書を更新します。

Save

現在の文書を保存します。

SaveNewVersion

現在の文書を名前を付けて保存します。

SelectAll

現在のフィールドのすべての内容を選択します。

Send

現在の文書をメール送信して閉じます。

SpellCheck

文書中のスペルをチェックします。

NotesUIView クラスには、次のプロパティがあります。

プロパティ

データ型

説明

CalendarDateTime

DATE 形式の Variant 型

(読み込み専用) カレンダービューの現在の地域の日時。

CaretCategory

Variant 型

(読み込み専用) 現在の文書に対する、ビューの現在のカテゴリを返します。

Documents

NotesDocumentCollection

(読み込み専用) 現在の NotesUIView イベントが動作中の全文書。

View

NotesView

(読み込み専用) 現在開いているビューに対応するバックエンドビュー。

NotesUIView クラスには、次のメソッドがあります。

メソッド

説明

Print

@Command([FilePrint]) を実行します。現在開いているか選択されている文書、または現在のビューを印刷します。

SelectDocument

指定された文書をビューで選択します。

NotesUIView のイベント一覧については「プログラミングの概要」の章で「イベントの説明」を参照してください。