IBM 说明如何使计算字段可编辑

ibm notes how to make computed field editable

在 ibm Notes 中,我有一个文档,其中有一个字段(例如价格),当有人打开该文档时,该字段将预先填充来自其他地方的数据。所以我将这个字段设置为 'computed field for display' 但我希望用户也可以让他们编辑该字段,但这是不可能的。那么如何让用户可以编辑计算字段?

您可以通过多种方式解决此问题。

首先你要考虑用户体验。相同的字段将默认计算并在需要时可编辑。

实现这一点的一种方法是始终计算该字段并提供一个编辑按钮以启动对话框弹出窗口以让您编辑该值。您的计算公式将寻找被覆盖的值,如果它不存在,它只会进行计算。

另一种解决方案是让它始终可编辑,并在其他字段更改时设置值。该代码将放置在计算中使用的字段上。

可能还有其他方法可以解决问题,从用户的角度出发会很有帮助。

典型的解决方案是有两个字段,一个是可编辑的,在打开文档进行阅读和打印时隐藏,一个是为显示计算的,在打开文档进行编辑时隐藏。

如果你真的想要一个字段,你可以在表单事件的帮助下让它工作,但是当你需要在再次打开文档时显示最新的'price'时它不起作用。

一种方法是有 3 个字段

  • 一个像你一样的组合字段计算
  • 一个可编辑的 'override' 字段,默认为空白。用户可以在需要时填写值
  • 将计算一个单独的最终价格字段。因此,如果覆盖字段具有其他默认字段所采用的值。

这取决于计算您的字段以显示的原因。

为显示而计算的字段不会写入磁盘,这意味着每次打开文档时都会执行公式,而不仅仅是当您打开新文档或 refreshing/saving 正在处理的文档时已编辑。

如果这是您的意图,那么您不能有任何其他字段,并且需要一个不同的、可编辑的字段以允许用户覆盖该数字。如果您计算的显示字段名为 ExamplePrice,我可能会做的是

  • 创建一个名为 ExamplePrice_Edit、
  • 的新可编辑字段
  • 创建一个名为 ExamplePrice_Mode(或 ExamplePrice_Override)的复选框或单选按钮字段,允许用户指示他们是否希望他们的编辑版本覆盖默认版本。确保它在更改时刷新字段。
  • 更改 ExamplePrice 的字段公式:
    • 如果公式复杂,在第一行前加@If(ExamplePrice_Mode = ""; 0; @Return(ExamplePrice_Edit));,或
    • 如果公式简单,用@If(ExamplePrice_Mode = "";ExamplePrice_Edit);包裹起来[=44​​=]
  • 根据 ExamplePrice_Mode 是否被用户标记,将隐藏时间更改为显示-隐藏 ExamplePrice_Edit。

另一方面,如果 ExamplePrice 不会改变,除非文档被再次编辑和保存,那么您仍然可以按照上述方式进行,或者您可以通过让您的ExamplePrice 字段可编辑,然后使用输入启用公式。

  • 将 ExamplePrice 的字段公式复制到剪贴板,因为我们可能会(短暂地)丢失它。
  • 将 ExamplePrice 更改为可编辑字段。
  • 将您的公式粘贴到字段的默认 输入翻译公式中。
  • 创建一个名为 ExamplePrice_Mode(或者可能是 ExamplePrice_Override)的复选框或单选按钮字段,允许用户指示他们是否需要计算或可编辑的版本。确保它在更改时刷新字段。
  • 更改 ExamplePrice 的输入翻译公式:
    • 如果公式比较复杂,在第一行前加@If(ExamplePrice_Mode = ""; 0; @Return(@ThisValue));,或者
    • 如果公式简单,用@If(ExamplePrice_Mode = "";@ThisValue);
    • 包裹起来
  • 将 ExamplePrice 的输入启用公式设置为 ExamplePrice_Mode != ""