0

我的表单包含一个名为:的数字字段txt_number,它是经过计算的,它是两个可编辑数字字段的总和:txt_no1txt_no2

所有txt_number字段都存储在一个视图中(以便能够获取之前的元素),以这种方式:

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

“vwTest” 有 2 列:第一列是分类的( field1+field2 ),第二txt_number列是其默认列值。

因此,我的主题问题列表"vwTest"包含第二列中的所有txt_number值。

假设保存的第一个文档将具有txt_number = 5. 当一个新的文档。创建,并计算 txt_no1 和 txt_no2 ,我们得到txt_number = 10

表单有一个计算字段txt_diff,我想在其中获得最后一个 txt_number 和实际值之间的差异。(10 - 5 = 5

因此,如果它将是另一个带有txt_number = 50=>的新表单txt_diff(在这个新创建的文档上)应该是50-10 = 40.

vwTest: 字段1+字段2 | txt_number

  • 项目清单

                  |   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 回答