(エンドユーザーではなく)テンプレートエディターがサンプルデータを入力してフォームをプレビューできるように、InfoPathアドインを構築しようとしています。
まず、私たちの環境について少し背景を説明します。MOSSに接続し、特定のフォームに適切なデータソースアセンブリをダウンロードし、それらを呼び出してデータベースからフォームにデータ(レターテンプレートの受信者アドレス情報など)をロードするカスタムプロセスがあります。このプロセスは、フォームがダウンロードされ、データ取得用のパラメーター(URL経由)が渡されたときに起動されます。コマンドラインからローカルに保存されたフォームテンプレートにパラメーターを渡すことで、この動作を概算できます。
その知識を武器に、次のことを行うInfoPathアドインの構築に着手しました。
- テンプレートエディタがクリックしてフォームにサンプルデータを入力できるデザインモードでカスタムツールバーボタンを表示します(パラメータを渡す必要があります)。
- ボタンがクリックされたら、アクティブなテンプレートのコピーを一時フォルダーに保存し、Shell()コマンドを使用してパラメーターをフォームに渡します。フォームのコピーは、別のInfoPathウィンドウで起動されます。
途中のガイダンスとして、さまざまなオンラインチュートリアルとApressのPro InfoPath 2007を参照しましたが、ここでの以前の投稿と同様に、利用できる情報が非常に限られていることがわかりました。私は途中ですが、いくつかの問題に遭遇しました:
- カスタムツールバーボタンを表示することができましたが、プレビューモードでのみ表示されました。デザインモードで表示するにはボタンが必要です。
- Application.ActiveWindow.XDocument.SaveAs()メソッドは、テンプレート全体ではなく、フォームのみを保存しているように見えます。おそらくこれは、私がデザインモードではなくプレビューモードになっているためですか?たぶん、最初の問題に取り組むことでこれも解決するでしょう。
- 上記の2つの問題を回避するために、フォームテンプレートソリューションでFormEvents_Loadingハンドラーを呼び出す方法を調べました。これにより、コピーを保存してコマンドラインから起動することなく、テストパラメータに合格することができます。私はこれを行う方法を理解できませんでした。
何かアイデアや提案はありますか?よろしくお願いします!