[方法] 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 メソッド |
既存のフォーム テンプレートに基づいて新しいフォームを作成します。 |
指定した 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 のドキュメントを参照してください。 |