クエリ パラメーターを使用してブラウザー対応 InfoPath フォームを呼び出す
最終更新日: 2010年7月6日
適用対象: SharePoint Server 2010
InfoPath Forms Services を実行しているサーバー上の InfoPath フォームまたはブラウザーベース バージョンのフォームを呼び出すには、4 つの方法があります。これらの方法は、フォーム テンプレート ファイル (.xsn) を参照する URL、フォーム テンプレートに基づくフォーム ファイル (.xml) を参照する URL、組み込みの FormServer.aspx Web ページを参照する URL、および XmlFormView コントロールを含むカスタム ページへの参照を含む URL から構成されます。最初の 3 種類の URL では、クエリ パラメーターを使用して結果のフォームのさまざまな面を制御できます。たとえば、フォームを InfoPath Filler で開くかブラウザーでレンダリングするか、フォームをどこに保存するか、ユーザーがフォームを閉じたときにどの Web ページにリダイレクトするかなどを制御できます。
重要 |
---|
既定では、InfoPath フォームはブラウザー対応フォームが利用可能な場合であっても InfoPath Filler で開きます。InfoPath Filler がインストールされていない場合、フォームはブラウザーで開きます。フォームを開く方法を制御するには、クエリ パラメーターを使用する以外に、SharePoint フォーム ライブラリの設定を使用できます。フォームを常にブラウザーで開かせるには、フォームライブラリを開いて、[ライブラリ ツール] の下の [ライブラリ] タブをクリックして、リボンの [ライブラリの設定] をクリックします。次に、[全般設定] の下で [詳細設定] リンクをクリックします。[ブラウザーで開くドキュメント] の、[ブラウザーで開く] をクリックします。 |
InfoPath フォームを開くには、9 個の異なるパラメーターを使用できます。下の表に示すように、一部のパラメーターは他のパラメーターよりも優先され、同時に使用することはできません。以下の表に示すもの以外の名前と値のペアは入力パラメーターとして解釈され、フォームに渡されます。入力パラメーターは 1 つ以上の名前と値のペアから構成され、アンパサンド (&) 文字で区切られ、フォーム テンプレートが /InputParameters コマンドライン オプションを使用してコマンド ラインまたはバッチ ファイルから InfoPath Filler で開かれるときや、フォーム テンプレートが URL から開かれるときに指定されます。入力パラメーターを使用する方法については、LoadingEventArgs クラスの InputParameters プロパティを参照してください。
パラメーター名 |
説明 |
指定できる値 |
---|---|---|
XmlLocation |
既存のフォームを開くのに使用します。XmlLocation および XsnLocation プロパティは相互に排他的です。両方のパラメーターに値を指定すると、エラーが発生します。 |
同じサイト コレクション内のフォーム ファイル (.xml) への有効な URL。 |
XsnLocation |
フォーム テンプレートに基づく新規作成フォームを開くのに使用します。FormServer.aspx を使用して URL に XsnLocation を指定する場合、[保存] および [名前を付けて保存] ボタンを表示する必要があれば、SaveLocation も指定する必要があります。Source パラメーターも指定する必要があります。そうしなければ、ユーザーがフォームを閉じたときに、メッセージ "フォームは閉じられています" が表示されます。XmlLocation および XsnLocation プロパティは相互に排他的です。両方のパラメーターに値を指定すると、エラーが発生します。 |
同じサイト コレクションに発行されたフォーム テンプレート ファイル (.xsn) への有効な URL。 |
OpenIn |
|
|
Source |
フォームが閉じられたときにユーザーをリダイレクトする場所。同じサイト コレクション内の URL を指定する必要があります。そうしなければエラーが返されます。 |
フォームと同じサイト コレクション内の有効な URL。 |
Options |
指定できる値は DisableSave だけです。[保存] および [名前を付けて保存] ボタンを非表示にし、フォームがブラウザーでレンダリングされるときにフォームの保存を無効にします。 |
DisableSave |
SaveLocation |
ユーザーにファイル名の入力を求める [名前を付けて保存] ダイアログ ボックスが表示され、指定したフォルダーに保存されます。指定されたフォルダーが存在しない場合は、エラーが返されます。 |
サイト コレクション上の任意の有効なフォルダーの場所。 |
NoRedirect |
クライアントを検出したり、ブラウザーでレンダリングするために、FormServer.aspx にリダイレクトしません。既定値は false です。true を指定し、XmlLocation または XsnLocation を指定すると、Internet Explorer を使用するときに [ファイルのダウンロード] ダイアログ ボックスが表示されます。 |
|
DefaultItemOpen |
代わりに OpenIn パラメーターを使用して、DefaultItemOpen パラメーター値を上書きする必要があります。値 0 は、要求がドキュメント ライブラリからのものであり、InfoPath Filler が検出されなかったことを示します。値 1 は、要求が [Web ページとして表示する] が設定されているドキュメントまたはフォーム ライブラリからのものであることを示します。 |
|
注意
クエリ パラメーターおよびその関連付けられた値では大文字と小文字が区別されませんが、XmlFormView コントロールの対応するプロパティ (Options、SaveLocation プロパティなど) では大文字と小文字が区別されます。
手順
次の手順では、フォーム テンプレートの発行先のサイト コレクションが必要です。また、サイト コレクション内で新しいサイトを作成できる必要があります。
下の URL の例では以下のプレースホルダー値を使用します。これらの値は次の SharePoint および InfoPath のアイテムを表します。
ServerName: InfoPath Forms Services を実行しているサーバー。
SiteCollection: サイト コレクション内のトップレベルのサイト。
FormLibrary: ブラウザー対応のフォーム テンプレートが含まれているフォーム ライブラリまたはドキュメント ライブラリ。
Form1.xml: FormLibrary 内の template.xsn に基づくフォーム。
NewFolder: FormLibrary 内のフォルダー。
NewSite: SiteCollection 内のサイト。
次の URL で使用される ~sitecollection の値は、プレースホルダー値ではありません。InfoPath Forms Services で使用される特別なトークンで、相対リンクとサイト コレクションを対象範囲とする URL アドレスを有効化します。
XmlLocation パラメーターを含む URL を使用するには
フォーム テンプレートを作成し、新規作成フォーム ライブラリにアップロードします。
そのフォーム テンプレートに基づいてフォームを作成し、ライブラリ内に "Form1" として保存します。
次の URL を入力します。プレースホルダー値には実際の値を挿入してください。
注意
"Form1" がブラウザーでレンダリングされます。
XsnLocation、SaveLocation、および Source パラメーターを含む URL を使用する
フォーム テンプレートを作成し、新規作成フォーム ライブラリにアップロードします。
次の URL を入力します。プレースホルダー値には実際の値を挿入してください。
注意
フォーム テンプレートに基づく新規作成フォームがブラウザーでレンダリングされます。
新規作成フォームを保存します。
注意
フォームは SaveLocation パラメーターで指定されたフォーム ライブラリ内に保存されます。
フォームを閉じると、Source パラメーターで指定されたフォーム ライブラリに戻ります。この場合、SaveLocation と Source パラメーターが同じ場所をポイントしているので、フォーム ライブラリはフォームの保存場所と同じ場所です。
SaveLocation および Source パラメーターを含む URL を使用するには
フォーム テンプレートを作成し、新規作成フォーム ライブラリにアップロードします。
そのフォーム テンプレートに基づいてフォームを作成し、ライブラリ内に "Form1" として保存します。
以下の URL で NewFolder の代わりに新しいフォルダー名を使用して、フォーム ライブラリ内に新しいフォルダーを作成します。
以下の URL の NewSite の代わりに新しいサイト名を使用して、既存のトップレベル サイト コレクションの下位に新しいサイトを作成します。
次の URL を入力します。プレースホルダー値には実際の値を挿入してください。
[名前を付けて保存] ダイアログ ボックスで新しい名前を付けて、既存のフォームを保存します。フォームが新しいフォルダーに保存されます。
フォームを閉じると、新しいサイトにリダイレクトされます。
OpenIn=Browser パラメーターを含む URL を使用するには
フォーム テンプレートを作成し、新規作成フォーム ライブラリにアップロードします。
そのフォーム テンプレートに基づいてフォームを作成し、ライブラリ内に "Form1" として保存します。
次の URL を入力します。プレースホルダー値には実際の値を挿入してください。
https://ServerName/sites/SiteCollection/FormLibrary/Form1.xml?OpenIn=Browser
または
注意
Microsoft InfoPath 2010 をインストールしてある場合も、URL によってフォームがブラウザーにレンダリングされます。
NoRedirect パラメーターを含む URL を使用するには
フォーム テンプレートを作成し、新規作成フォーム ライブラリにアップロードします。
そのフォーム テンプレートに基づいてフォームを作成し、ライブラリ内に "Form1" として保存します。
次の URL を入力します。プレースホルダー値には実際の値を挿入してください。
https://ServerName/sites/SiteCollection/FormLibrary/Form1.xml?NoRedirect=true
および
https://ServerName/sites/SiteCollection/FormLibrary/Forms/template.xsn?NoRedirect=true
注意
フォーム ファイル (.xml) およびフォーム テンプレート (.xsn) は FormServer.aspx にリダイレクトされません。その代わりに、SharePoint サイトからファイルをダウンロードするために、[ファイルのダウンロード] ダイアログ ボックスが表示されます (Internet Explorer をお使いの場合)。
フォームを表す XML のコンテンツ ストリームを返す必要がある場合があります。それには次の方法を使用します。
コンテンツ ストリームを使用するには
NoRedirect パラメーターを含む URL を使用します。
以下の例のように、HTTP GET 要求に "Translate:f" ヘッダーを挿入します。
myRequest.Headers.Add("Translate:f"); myRequest.Headers["Translate"] = "F";
HTTP GET 要求で適切な InfoPath ユーザー エージェントを使用します (InfoPath.1 または InfoPath.2)。