IBM Notes 可编辑字段从父表单获取数据

IBM Notes editable fields getting data from parent form

在 Notes 中,我有一个表单(Order),其中有一个按钮 "Create new OrderLine",可以创建一个新表单(Orderline)。 Order 文档在设计上有一个嵌入式视图,可以获取 orderlines 文档。每个订单行文档都包含一个隐藏字段,其中包含订单文档的 ID,以便您知道哪个订单行与哪个订单相关联。订单行也是如此,它有一个带有价格的嵌入式视图。

在订单表单中,我有 2 个可编辑的文本字段:AdministrationNumber 和 DebtorNumber。

在 OrderlineForm 中我只得到了 debtorNumber

在价格中,我有一个名为费用的可编辑数字字段。

所以我通过各种方式做到了这一点:

在价格表的 postOpen 中,我放入了这个 LotusScript 代码:

If( (Source.FieldGetText( "AdministrationNumber" ) = "1" ) And   (Source.FieldGetText( "DebtorNumber" ) = "2") ) Then
    Call Source.FieldSetText("FeePercentage",  "4.235")
    Call Source.Refresh()
End If

但是没用。

在费用的默认值中我也尝试了这个公式代码:

@If((AdministrationNumber="1") & (DebtorNumber= "2");
    "4,235";
        "0"
)

但也没用..

是否可以在父窗体中根据条件语句打开子窗体时设置可编辑字段?

编辑

2种解决方法:

1.

当单击订单表单上的 "Add new Orderline" 按钮时,我将调用脚本库中的函数,在该函数中我获取 debnr 和 admnr 的值,然后执行条件语句。如果为真,则设置费用百分比

2.

在订单行上添加了名为 admnr 的新隐藏字段,当单击“新建订单行”按钮时,它会获取 administratorNr 字段数据。该字段是通过脚本库中的函数设置的。

最终在价格子表单的 postOpen 中这个有效:

Dim doc As NotesDocument
Set doc = Source.Document
If doc.admnra(0) = "1" And doc.debnr(0) = "2" Then
    doc.FeePercentage = 4.235
End If

改为使用后端 类:

Dim doc as NotesDocument
Set doc = Source.Document
If doc.AdministrationNumber(0) = "1" And doc.DebtorNumber(0) = "2" Then
    doc.FeePercentage = 4.235
End If

它使您可以轻松访问文档中的所有字段。

您说 "subform" 在 Notes 设计中具有特殊含义,但听起来您拥有的是一个名为 "Order" 的表单、一个名为 "OrderLine" 的表单和一个名为 "Prices" OrderLine 表单使用什么?

在这种情况下,确保订单行的 "Formulas inherit values from selected document" 形式 属性 被选中。

如果按钮在父表单上(而不是查看订单表单嵌入),那么您的默认公式应该这样做。

P.S。您可能希望将默认公式更改为

@If(
  (AdministrationNumber="1") & (DebtorNumber= "2"); 4235;
  0
)

这样它 returns 一个数字而不是看起来像数字的文本。