1

(エージェントを介して) ドキュメントの 5 つのコピーを作成し、それらを新しいフォーム名で保存するデータベースがあります (つまり、元のフォーム名は「MasterProfile」であり、エージェントはドキュメントの 5 つのコピーを作成し、それらに UserProfile という名前を付けます - XXXX を使用) .Form = "UserProfile")。これは完全に機能します。Ytria 内のフォーム/ドキュメントを見ると、すべて問題ないように見えます。フォーム「UserProfile」の下に 5 つのドキュメントがあります。

UserProfile ドキュメント内には、ユーザーからのドキュメントの応答を受け取り、次を使用してフォームを保存する Hotspot があります。

@If(@Command([FileSave]);@Command([FileCloseWindow]);"")

私が抱えている問題は、その @Command[FileSave] を実行すると、ドキュメントが元の名前「MasterProfile」に保存されることです。フォームフィールドを正しい名前に設定しようとしました

FIELD Form := "UserProfile";

しかし、それは何もしません。

誰かが私が見逃している可能性があるものを知っていますか? コピーされたドキュメントが MasterProfile に変換されずに UserProfile のままにならないのはなぜですか?

ご協力ありがとうございました!

4

2 に答える 2

3

解決策に飛びつく前に、問題の原因についての質問に答えることが重要だと思います。いくつかの原因が考えられます。

1) データベース設計に「UserProfile」というフォームがなく、「MasterProfile」フォームがデータベースのデフォルト フォームです。その場合、Notes UI でドキュメントを開くたびに、MasterProfile フォームがデフォルトとしてロードされます。そのため、ドキュメントを保存すると、フォーム フィールドの値がロードされたフォーム名、つまり「MasterProfile」に変更されます。

2) データベースに「UserProfile」フォームがありますが、「MasterProfile」に設定されたエイリアスがあります。Notes UI で文書を保存すると、フォーム項目は実際にはプライマリ名ではなくフォームのエイリアス名から設定されるため、フォーム フィールドが「MasterProfile」に変更されます。

3) データベースに「UserProfile」フォームがありますが、フォームに「Form」という計算フィールドがあり、そのフィールドの式は実際には「MasterProfile」です。Notes UI で文書を保存すると、Form フィールドの計算された値がロードされたフォームの名前とエイリアスをオーバーライドするため、Form フィールドが「MasterProfile」に変更されます。

4) あなたのアプリケーションは、「フォーム式」と呼ばれるノーツのめったに使用されない機能を使用しています。つまり、ドキュメントを開こうとしているビューのデザインには、値が「MasterProfile」であるフォーム式があります。ビュー内のフォーム式により、UI は式の結果を使用して、ドキュメントに保存されているフォーム フィールドを上書きします。フォーム数式を使用することの厄介な副作用は、ドキュメントを保存するときに、フォーム フィールドの値が上書きされた名前「MasterProfile」に変更されることです。

実際には他にもいくつかの可能性がありますが、上記のいずれよりも可能性が低いと思います。

#1 の解決策は、「ProfileSubform」というサブフォームを作成し、「MasterProfile」の内容全体 (フィールドとイベント スクリプト) をそれにコピーすることです。次に、MasterProfile フォームを完全に消去し、新しいサブフォームを挿入します。次に、"UserProfile" フォームを作成し、そこに MasterProfile フォームも挿入します。(Ken Pepisa の提案も良いですが、私が提案していることの利点は、アプリケーションに他の変更を加えることなく実行できることです。)

#2 の解決策は、"UserProfile" フォームのエイリアスを削除または修正することです。

#3 の解決策は、"UserProfile" フォームの Form フィールドを削除または修正することです。

#4 の解決策はもっと問題があります。ビューでフォーム式を取り除くことができる場合は、それを実行してください...しかし、それは何らかの理由でそこにある可能性があります。もっと賢くする必要があるかもしれませんし、Ken の提案の 1 つに従う必要があるかもしれません。

于 2012-05-06T03:00:56.620 に答える
1

フォームフィールドを使用する代わりに、別のフィールドを設定する必要があります。ドキュメントがUIに保存されると、フォームフィールドは常にNotesによって設定されます。

たとえば、DocTypeフィールドを作成し、それをMainProfileまたはUserProfileに設定できます。次に、適切なNotesビューで、表示しているフォーム列の代わりにそのDocType列を追加できます。Ytriaがどのように機能するかはわかりませんが、フォームフィールド以外の別のフィールドで表示できることを願っています。

この目的でフォームフィールドをどうしても使用する必要がある場合は、PostSaveイベントを介してフォームフィールドを更新してみることができますが、それが可能かどうかはわかりません。

于 2012-05-05T23:07:40.380 に答える