2016-12-01 35 views
1

在注释中,我有一个表单(订单),其中具有创建新表单(订单行)的按钮“Create new OrderLine”。订单文件具有嵌入式设计视图,可以获取订单文件。每个订单行文档都包含一个带有订单文档ID的隐藏字段,以便您知道哪个订单行与哪个订单相关联。对于Orderline也是如此,它有价格的嵌入式视图。IBM Notes可编辑字段从父表单获取数据

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

在OrderlineForm我只得到了debtorNumber

价格我叫费可编辑数字字段。

所以我这样做的各种方式:

在形式的价格我已经把这个LotusScript代码的PostOpen的:

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.

当点击 “添加新的订单行” 按钮whic是在订货表格中,我会调用一个函数在scriptlibrary,在这个函数中,我得到debnr和admnr的值,然后做条件语句。如果为true,那么设置FeePercentage

2.

在orderlline上添加了一个名为admnr的新隐藏字段,它在单击New Orderline按钮时获取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 

回答

2

工作:

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 

它让您轻松访问到文档中的所有领域。

+0

如何做,然后..因为在订单上,我有一个按钮,打开价格orderline和价格子窗体。当用户打开价格表格时,该费用也必须可见。 – YdB

+1

你是在谈论形式“订单”或关于不同形式的子形式吗? –

+0

对不起,其实它是这样的,“订单”形式有一个嵌入式视图,带有命令行,还有一个叫做“添加新命令行”的按钮,如果用户点击按钮“添加新命令行”,则打开一个命令行文档。在这种形式中,有一个名为“价格”的子表单,其中有一个名为“feePercentage”的字段,4.235必须在这里是admnr = 1和debtornumer = 2(它来自订单) – YdB

2

你说的“子表单”在Notes设计中有特殊含义,但它听起来像是你所拥有的是OrderLine表单使用的称为“Order”的表单,称为“OrderLine”的表单和称为“Prices”的子表单?

在这种情况下,请确保OrderLine的“公式从选定文档继承值”表单属性被选中。

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

P.S.您可能想要将默认公式更改为

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

以便它返回一个数字而不是看起来像数字的文本。

+1

除了打开继承,他还应该隐藏他的OrderLine表单上的AdministrationNumber和DebtorNumber字段。 –

+1

嗯......它没有它,所以除非它有其他原因有用... ...?尽管OrderLine文档可能是响应,但他应该计算显示的AdministrationNumber和DebtorNumber字段,每个字段的公式为@GetDocField(@Text($ REF); @ ThisName)',并且这将允许向后兼容的现有订单行文档以及更新(当OrderLine文档被刷新时)如果订单文档的AdministrationNumber和DebtorNumber字段在OrderLine文档第一次保存后发生更改。不过,这会让他的表格稍微慢一些。 – JSmart523

+1

我相信你是对的。从很久很久以前,我都相信只有在子文档的表单上有一个同名的实际字段时,才能继承。我确信不止有几次我被告知这不是真的 - 但很难忽视那些早期的第一印象。 –