次の方法で共有


[方法] InfoPath 2003 オブジェクト モデルを使用してフォーム データにアクセスする方法

InfoPath フォームの機能を拡張しようと思うと、多くの場合、フォームの基になる XML ドキュメントに関する情報へのアクセス、XML ドキュメントに記述されているデータへのアクセス、XML ドキュメントに対する何らかの操作の実行などの処理をプログラムで行う必要が出てきます。InfoPath オブジェクト モデルでは、XDocument インターフェイスと XDocumentsCollection インターフェイスを関連させて使用することにより、フォームの基になる XML ドキュメントにアクセスしたり、その XML ドキュメントを操作したりすることができます。

XDocument インターフェイスには、実にさまざまなプロパティ、メソッド、およびイベントが用意されており、フォームの基になる XML ドキュメントを扱えるだけではなく、InfoPath のユーザー インターフェイスで行える多数の操作を実行することもできるため、このインターフェイスは InfoPath オブジェクト モデルの中では最も便利な型の 1 つと言えます。InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コード内にイベント ハンドラを含む thisXDocument という名前の XDocument 型の変数が、クラスの _StartUp メソッドの中で自動的に定義されます。フォームのコード内で thisXDocument 変数を使用すると、XDocument インターフェイスとそのメンバにアクセスできます。

XDocumentsCollection インターフェイスの概要

XDocumentsCollection インターフェイスには、次のメソッドおよびプロパティがあります。フォームの開発者は、これらを使用することにより、コレクションに含まれている XDocument オブジェクトを管理できます。

名前 説明

Close メソッド

指定したフォームを閉じます。

New メソッド

既存のフォームに基づいて新しいフォームを作成します。

NewFromSolution メソッド

既存のフォーム テンプレートに基づいて新しいフォームを作成します。

NewFromSolutionWithData メソッド

指定した XML データとフォーム テンプレートを使用して、新しい InfoPath フォームを作成します。

Open メソッド

指定したフォームを開きます。

Count プロパティ

コレクションに含まれている XDocument オブジェクトの数を返します。

Item プロパティ

指定した XDocument オブジェクトへの参照を返します。

XDocument インターフェイスの概要

XDocument インターフェイスには、次のメソッドとプロパティがあります。フォームの開発者は、これらを使用することにより、フォームの基になる XML ドキュメントと相互作用したり、その XML ドキュメントに対して操作を実行したりできます。

名前 説明

GetDataVariable メソッド

指定したデータ変数の文字列値を返します。

GetDOM メソッド

指定した DataObject オブジェクトに関連付けられている XML ドキュメント オブジェクト モデル (DOM) への参照を返します。

ImportFile メソッド

指定したフォームを現在開いているフォームにインポート (マージ) します。

PrintOut メソッド

フォームの現在のビューを印刷します。

Query メソッド

フォームに関連付けられているデータ アダプタからデータを取得します。

Save メソッド

現在開いているフォームを保存します。

SaveAs メソッド

現在開いているフォームを指定された名前で保存します。

SetDataVariable メソッド

指定したデータ変数の値を設定します。

Submit メソッド

デザイン モードで確立された送信操作に従ってフォームを送信します。

DataObjects プロパティ

DataObjects コレクションへの参照を返します。

DOM プロパティ

フォームのソース XML データが格納されている XML DOM への参照を返します。

Errors プロパティ

Errors コレクションへの参照を返します。

Extension プロパティ

フォーム コード ファイルに含まれているすべての関数と変数を表すオブジェクトへの参照を返します。

IsDirty プロパティ

フォーム内のデータが変更されているかどうかを示す Boolean 値を返します。

IsDOMReadOnly プロパティ

XML DOM が読み取り専用に設定されているかどうかを示す Boolean 値を返します。

IsNew プロパティ

変更された後にフォームが保存されたかどうかを示す Boolean 値を返します。

IsReadOnly プロパティ

フォームが読み取り専用モードかどうかを示す Boolean 値を返します。

IsSigned プロパティ

フォームがデジタル署名されているかどうかを示す Boolean 値を返します。

Language プロパティ

フォームに使用される言語の文字列値を指定または取得します。

QueryAdapter プロパティ

データ アダプタ オブジェクトへの参照を返します。

Solution プロパティ

Solution オブジェクトへの参照を返します。

UI プロパティ

UI オブジェクトへの参照を返します。

URI プロパティ

フォームの URI (Uniform Resource Identifier) が格納された文字列値を返します。

View プロパティ

View オブジェクトへの参照を返します。

ViewInfos プロパティ

ViewInfos コレクションへの参照を返します。

XDocuments コレクションと XDocument インターフェイスを使用する

XDocumentsCollection インターフェイスには、Application インターフェイスの XDocuments プロパティを通じてアクセスできます。InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コードの _StartUp メソッド内でインスタンス化される thisApplication 変数を使用して XDocumentsCollection インターフェイスにアクセスできます。次に示すコードは、現在のプロジェクトの XDocumentsCollection インターフェイスを参照する変数を作成します。

XDocumentsCollection xdocs;
xdocs = thisApplication.XDocuments;

// Write code here to work with the XDocumentsCollection.
Dim xdocs As XDocumentsCollection
xdocs = thisApplication.XDocuments

' Write code here to work with the XDocumentsCollection.

InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コードの StartUp メソッド内でインスタンス化される thisXDocument 変数を使用して XDocument インターフェイスにアクセスできます。次に示すコードは、thisXDocument 変数を使用して現在のプロジェクトの XDocument インターフェイスにアクセスし、現在開いているフォームの URI を通知メッセージで表示します。

thisXDocument.UI.Alert(thisXDocument.URI);
thisXDocument.UI.Alert(thisXDocument.URI)
メモメモ :

XDocument インターフェイスを使用してフォームの基になる XML ドキュメントにアクセスすると、現在開いているフォームに関連付けられている XML ドキュメントにアクセスできます。

XDocument インターフェイスのキー プロパティは DOM プロパティです。このプロパティは、フォームのソース XML データが格納された XML DOM への参照を返します。DOM プロパティを使用すると、XML DOM でサポートされている任意のプロパティとメソッドを使用できます。たとえば、次に示すコードは、XML DOM の xml プロパティを使用して、フォームの基になる XML ドキュメントのすべての内容を取得し、表示しています。

string xmldoc;
xmldoc = thisXDocument.DOM.xml;
// Display xml.
thisXDocument.UI.Alert(xmldoc);
Dim xmldoc As String
xmldoc = thisXDocument.DOM.xml
' Display xml.
thisXDocument.UI.Alert(xmldoc)
メモメモ :

XML DOM およびそれがサポートするすべてのプロパティとメソッドの詳細については、Microsoft Script Editor (MSE) のヘルプにある MSXML 5.0 SDK のドキュメントを参照してください。