1

フォームにフィールドを追加するときに、古いフィールドに基づいて InfoPath フォームに新しいフィールドを事前入力する方法。

私の InfoPath フォームには、「説明」というフィールド名があります。ここで、「SummaryDescription」という別のフィールドを追加しました。これは、説明フィールドから最初の 10 単語を取得することを想定しています。

フィールドとロジックを追加しても、SharePoint データベースの既存のフォーム データは変更されません。


編集

@PatrickPitre

迅速な対応ありがとうございました。

Web ベースの InfoPath フォーム (Forms Services) を扱っています。はい、私のコンピューターには Visual Studio 2008 がインストールされています。

私がしなければならないことの 1 つは、既存の Web ベースの InfoPath フォームを変更することです。つまり、古いフォームにさらに 3 つのフィールドを追加します。フィールドを追加したら、ユーザーがSharepointに既にある既存のフォームをクリックしたときに、新しく追加されたフィールドが空白でないことを確認する必要があります。「Description」という既存のフィールドの最初の 200 語を取得し、それを新しいフィールド「SummaryDescription」に挿入する必要があります。

私がこれまでに行ったこと:

  1. これら 3 つの新しいフィールドを Web ベースの InfoPath フォームに追加し、テスト サーバーの 1 つに公開しました。新しく追加されたフィールドを既存のフォームで表示できます。

  2. 必要なことを達成するために、InfoPath のルールを使用しようとしています。新しく追加されたフィールドが空白かどうかを確認します。そうである場合は、「SummaryDescription」のフィールドを取得し、の値を追加します。

これはコードです:

concat(
substring((string-length(Description)), 1, ((string-length(Description)) <= 200) * (string-length(Description))), 
substring(number(201), 1, (not(string-length(Description))) * number(201))
) 

しかし、フィールドに値をまったく追加できません。

これは私がやったことのスクリーンショットです。

ここに画像の説明を入力

私は多くの異なる方法を試しました。そして、「SummaryDescription」は空白だと確信していますが、表示する値を取得できませんでした

「Sharepoint データベース」とはどういう意味ですか? 私は、Web ベースの InfoPath フォームのすべてが何らかのデータベースに格納されていると考えていました。私が間違っている場合は修正してください。

どうもありがとうございました。

4

1 に答える 1

0

InfoPath フォームのスキーマとロジックを拡張するだけでは、既存のデータ (入力済みのフォーム) が自動的にアップグレードされるわけではありません。

いくつかのオプションがあります

  • XSLT またはカスタム アップグレード アプリケーションを使用して既存の XML フォームを処理し、XML を変換します。
  • フォームのコード ビハインドでVersionUpgradeイベントを使用して、アップグレード手順を実行します。

主な違いは、前者の場合はバッチ アップグレードを実行できるのに対し、後者の場合は既存のフォームを開いたときにオンデマンドで個別にアップグレードできることです。

于 2011-12-21T23:06:32.870 に答える