0

例私は2つのビューを持っています:

  • プロフィール
  • 取引

トランザクション フォームで、ビューから (姓と名を使用して) ドキュメントを検索し、住所を取得してトランザクションの計算された住所フィールドに挿入できるようにしたいと考えています。

postOpen イベントに LotusScript を挿入することを考えていました。

例は非常に役立ちます。

4

1 に答える 1

2

コーディングの経験は何ですか? このすべてに慣れていない場合は、式言語から始める必要があります。まず、ソリューションがどのように見えるかに関係なく、ビューの最初に並べ替えられた列に検索キーが含まれている必要があります。

ベスト プラクティスは、このために別の非表示ビューを使用して、ビューのデザインに対するユーザーの希望を妨げないようにすることです。

2 番目の列には、特殊文字 (~ は非常に一般的な文字) で区切られた、他のドキュメントに必要なすべての情報を含む計算された文字列が含まれています。その列の数式は次のようになります。

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

次に、フォームで次のコードを使用して計算フィールド (LookupData など) を作成します。

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

そのフィールドに指定された名前/キーからのすべてのデータがあり、それから他のフィールドを計算させることができます。たとえば、「City」というフィールドがあります。その式は次のとおりです。

@Word(LookupData; "~"; 1)

フィールド "Phone" の式は次のようになります。

@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")

このコードにはエラー処理はなく、ドキュメントが実際に存在するかどうかのチェックもありません...出発点として使用してください...

于 2013-07-10T05:10:39.427 に答える