質問
次の2つの特性を持つWSS 3.0のフォームを作成しようとしています。
- 特定のフィールドをほとんど含まないサブレコードを各レコードにいくつか持つ。
- すべてのブラウザで表示できるHTMLまたは類似のものにエクスポートできます。
(間違っていない限り)InfoPathとRepeatingSection / RepeatingTable / etcを使用することでのみ1を達成できることに気付きました。
2に関しては、InfoPathはMHT / PDF / XLSにのみエクスポートできますが、Webに公開できるものを作成することが目標なので、私にとっては理想的ではありません。
これを達成するためのより良い方法についてのヒントはありますか?
2の修正:InfoPathフォームはイントラネット内で編集可能であるが、Webサイトの読み取り専用Webページとしてエクスポートされることを意味しました。だから、「エクスポート」を意味しました。 「公開」ではありません。
解決
これを行う1つの方法は、フォームのプライマリデータソースとしてデータベースを使用し、すべてのフォームデータがそこに保存されるようにすることです。その後、すべての情報をデータベースに照会するWebサイトを構築できます。
別の方法として、infopathフォームデータ(xmlファイルとして保存)を取得し、そのスタイルを定義するXMLスタイルシートを使用してWebサーバーに公開します。 ASP.netのXMLコントロールを介してこれを行うことができます。
これらのソリューションは、他のソリューションよりも多くのエルボグリスを必要とする場合がありますが、どちらかが機能すると考えています。
他のヒント
カスタムフィールドタイプの作成はおそらく可能です。何らかの種類のコレクションを値として持つフィールドタイプを作成します。
2に関しては、InfoPathは MHT / PDF / XLSへのエクスポートが可能、 目標は できる何かを作成する ウェブに公開
そうではありません。InfoPathフォームはWebに公開できます。 InfoPathクライアントを介してフォームをSharePointに公開する場合、このフォームはブラウザー内で編集可能にする必要があるというオプションを選択できます。ただし、InfoPathの一部のフォーム機能は使用できないことに注意してください。
または、「ウェブに公開できます」について異なる理解がありますか?私にとっては、InfoPathフォームが関連付けられているライブラリに新しいアイテムを作成することを意味します->ブラウザでフォームが開きます->ユーザーがフォームに入力します->ユーザーが保存ボタンをクリックする->情報パスドキュメントはライブラリに保存され、閉じられます。
アイデア:
(MOSSと共に)InfoPathがオプションではない場合、データをSPリストに出力したい場合、カスタム編集フォームを介してその動作を模倣することができます。ダイナミックhtmlコントロール(サブレコード用)を備えたカスタム編集フォームについて考えています。これは、ツリー構造に必要なオブジェクトをDOMに動的に挿入することで実現できます。次に、フォームの送信時に、リストのイベントハンドラーがフォームによって送信されたデータを解析し、適切に表示されるように保存します(たとえば、カスタムフィールドでシリアル化されたxmlで)。
リストのカスタム編集フォームにならない場合は、上記と同じ機能をコードビハインド(カスタマイズに注意)でサイトページに保存し、データストレージとして非表示のSPリストを使用できます。
エクスポートセクションについては、おそらくそのリストのECBメニューにリンクされているアプリケーションページが上記のxmlを取得して、適切に表示します。