如何查询文档并获取其字段值并使用LotusScript将其插入到表单字段中?

时间:2013-07-10 04:38:19

标签: lotusscript

示例I有2个视图:

  • 资料
  • 交易

在交易表单中,我希望能够从视图中搜索文档(使用姓氏和名字)并获取地址并插入到事务中的计算地址字段中。

我在考虑在postOpen事件中插入LotusScript。

一个例子会有很大帮助。

1 个答案:

答案 0 :(得分:2)

您的编码经验是什么?如果您对这一切都不熟悉,那么您应该从公式语言开始: 首先:独立于解决方案的外观,视图的第一个排序列必须包含您的搜索键。

最佳做法是,为此使用单独的隐藏视图,以免干扰用户对视图设计的期望。

第二列包含一个计算字符串,其中包含您想要在另一个文档中包含的所有信息,由一个特殊字符分隔(〜是一个非常常见的字符) 该列中的公式可能如下所示:

City + "~" + Zip + "~" + StreetAddress + "~" + PhoneNumber

然后在表单中使用以下代码创建一个计算字段(例如LookupData):

_lkp := @DbLookup("":"NoCache";"";"NameOfHiddenView";"HereIsYourSearchKey";2)
@If( @IsError( _lkp ); ""; _lkp )

您将获得该字段中给定名称/密钥的所有数据,并可以使其他字段从中进行计算。例如。你有一个名为“城市”的字段。它的公式是:

@Word(LookupData; "~"; 1)

字段“电话”将具有以下公式:

@Word(LookupData; "~"; 4)

就是这样。

当然这也可以在LotusScript中完成......这看起来像(在Postopen事件中):

Dim ses as New NotesSession 
Dim db as NotesDatabase
Dim view as NotesView
Dim strKey as String
Dim docLkp as NotesDocument
Dim doc as NotesDocument

Set doc = Source.document
Set db = ses.CurrentDatabase
Set view = db.getView("NameOfHiddenView")
StrKey = "HereIsYourSearchKey"
Set docLkp = view.GetDocumentByKey(strKey, True)
Call doc.ReplaceItemvalue( "City", docLkp.GetItemValue("City")
Call doc.ReplaceItemvalue( "Phone", docLkp.GetItemValue("PhoneNumber")

此代码中没有错误处理,不检查文档是否真的存在等等... 只是用它作为起点......