0

私のフォームには、 という数値フィールドが含まれていますtxt_number。これは計算され、編集可能な 2 つの数値フィールド と の合計txt_no1ですtxt_no2

次のように、すべてのtxt_numberフィールドがビューに格納されます (以前に要素を取得できるようにするため)。

@Unique ( @DbLookup( "" : "NoCache" ; @DbName ; "vwTest" ; field1+field2 ; 2 ));

"vwTest" には 2 つの列があります。最初の列は分類され ( field1+field2 )、2 番目のtxt_number列にはデフォルトの列値があります。

したがって、トピックの質問のリストには、2 列目の"vwTest"すべてのtxt_number値が含まれています。

保存された最初のドキュメントにはtxt_number = 5. 新しいドキュメントのとき。が作成され、txt_no1 と txt_no2 が計算され、 が得られtxt_number = 10ます。

txt_diffフォームには、最後の txt_number と実際の txt_number の差を取得したい場所と呼ばれる計算フィールドがあります。( 10 - 5 = 5)

したがって、それがtxt_number = 50=> txt_diff(この新しく作成されたドキュメント上) を持つ別の新しいフォームになる場合は、50-10 = 40.

vwTest: フィールド 1 + フィールド 2 | txt_番号

  • リスト項目

                  |   1   ( => on this doc, `txt_diff = 1` )
                  |   10  ( => on this doc, `txt_diff = 9` )
                  |   23  ( => on this doc, `txt_diff = 13`)
       .......................
    

お願いします、あなたの助けが必要です。ありがとう!

4

1 に答える 1

0

まだややこしいですが、私が理解している場合は、そのビューを参照として使用して txt_diff を計算する必要があります。

その場合、イベント QueryRecalc または QuerySave にコードを入れて計算を行うことができます。これはコード例です:

(記憶でコーディングしているため、多少のエラーが発生する可能性があります)

dim o_view as NotesView
dim o_nav as NotesViewNavigator
dim o_doc as NotesViewEntry

set o_view = o_current_db.GetView("view_categorized_by_field1_field2")
set o_nav = o_view.CreateViewNavFromCategory(field1+field2)
set o_doc = o_nav.GetlastDocument  '<== THIS IS YOUR DOCUMENT TO CALCULATE txt_diff

'Do something more 

ただし、リアルタイムで txt_diff が必要でない限り、X 分ごとに計算を行うエージェントを作成できます。どちらのソリューションも、アプリに何が必要かによって異なります。

これが役立つことを願っています。

于 2013-03-15T03:57:25.470 に答える