LoadingEventArgs.InputParameters プロパティ
/InputParameters コマンド ライン オプション、URL のクエリ パラメーター、または NewFromFormTemplateWithInputParameters メソッドの 1 つを使用して指定された入力パラメーターを含む IDictionary を取得します。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)
構文
'宣言
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)
Get
'使用
Dim instance As LoadingEventArgs
Dim value As IDictionary(Of String, String)
value = instance.InputParameters
public abstract IDictionary<string, string> InputParameters { get; }
プロパティ値
型: System.Collections.Generic.IDictionary<String, String>
入力パラメーターを含む IDictionary。
例外
例外 | 条件 |
---|---|
InvalidOperationException | 呼び出されたメソッドが、入力パラメーターを含む IDictionary への書き込みを試みました。 |
解説
入力パラメーターは、アンパサンド (&) 文字で区切られた 1 つ以上の名前/値ペアで構成され、/InputParameters コマンドライン オプションを使用してコマンド ラインまたはバッチ ファイルからフォーム テンプレートが開かれるときに指定されます。入力パラメーターは、フォーム テンプレートが URL から開かれるときにクエリ パラメーターを使用して指定される場合もあります。
注意
IDictionary は、通常、読み取り/書き込みを許可しますが、InfoPath は、IDictionary に書き込むメソッド (Add メソッドや Clear メソッドなど) の呼び出しを許可しません。InputParameters プロパティによって返される IDictionary への書き込みを行う呼び出しを実行しようとすると、InvalidOperationException がスローされます。
このメンバーには、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームのみがアクセスできます。
この型またはメンバーには、Microsoft InfoPath Filler または Web ブラウザーで開かれたフォームを実行中のコードからアクセスできます。
例
次のコードの例では、次の構文を使用して、コマンド ラインまたは URL から、Loading イベント ハンドラー コードを含む InfoPath フォーム テンプレートを開いています。
コマンド ラインの場合:
infopath.exe "C:\User Forms\DeptReport.xsn" /InputParameters "Dept=Accounting&Acct=Contoso"
URL の場合:
https://server/sites/team/forms/DeptReport.xsn?Dept=Accounting&Acct=Contoso
XmlFormCollection クラスの NewFromFormTemplateWithInputParameters(String, String) メソッド、ExternalApplication インターフェイスの NewFromSolutionWithInputParameters(String, String) メソッド、または XDocumentsCollection の NewFromSolutionWithInputParameters(Object, Object) メソッドを使用して、コードから新しいフォームを開いて入力パラメーターで渡すこともできます。
注意
最後とその前のメソッドは、外部自動化コードから使用するためのもので、フォーム コードからの呼び出しはできません。
Loading イベント ハンドラーは、InputParameters プロパティを使用して、フォームが開かれたときに、Department フィールドの値に "Accounting" を設定し、Account フィールドの値に "Contoso" を設定します。値を指定する名前/値ペアは、/InputParameters コマンドライン オプション、URL 入力パラメーター、または NewFromFormTemplateWithInputParameters(String, String) メソッドを使用して、入力パラメーターとして渡すことができます。
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
// Be sure that the InputParameter dictionary contains
// values before proceeding.
if (e.InputParameters.Count != 0)
{
string vDept = e.InputParameters["Dept"];
string vAcct = e.InputParameters["Acct"];
XPathNavigator myNav = CreateNavigator();
myNav.SelectSingleNode("/my:myFields/my:Department",
NamespaceManager).SetValue(vDept);
myNav.SelectSingleNode("/my:myFields/my:Account",
NamespaceManager).SetValue(vAcct);
}
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
ByVal e As LoadingEventArgs)
' Be sure that the InputParameter dictionary contains
' values before proceeding.
If e.InputParameters.Count <> 0 Then
Dim vDept As String = e.InputParameters("Dept")
Dim vAcct As String = e.InputParameters("Acct")
Dim myNav As XPathNavigator = CreateNavigator()
myNav.SelectSingleNode("/my:myFields/my:Department", _
NamespaceManager).SetValue(vDept)
myNav.SelectSingleNode("/my:myFields/my:Account", _
NamespaceManager).SetValue(vAcct)
End If
End Sub