ibm注意到如何使计算字段可编辑

时间:2016-11-29 11:30:26

标签: formula lotus-notes lotusscript

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

4 个答案:

答案 0 :(得分:4)

你可以通过几种方式解决这个问题。

首先,您必须考虑用户体验。默认情况下会计算相同的字段,并在需要时进行编辑。

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

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

可能有其他方法可以解决问题,从用户开始考虑是有帮助的。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

  • 创建一个名为ExamplePrice_Edit,
  • 的新可编辑字段
  • 创建一个名为ExamplePrice_Mode(或者可能是ExamplePrice_Override)的复选框或单选按钮字段,允许用户指示他们是否希望他们的编辑版本覆盖默认版本。确保在更改时刷新字段。
  • 更改ExamplePrice的字段公式:
    • 如果公式很复杂,请在第一行之前添加@If(ExamplePrice_Mode = ""; 0; @Return(ExamplePrice_Edit));
    • 如果公式很简单,请使用@If(ExamplePrice_Mode = "";ExamplePrice_Edit);
    • 打包
  • 根据用户是否标记了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 != ""

答案 3 :(得分:0)

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

一种方法是拥有3个字段

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