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 一个数字而不是看起来像数字的文本。
在 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 一个数字而不是看起来像数字的文本。