1

従業員番号、従業員名、従業員の電子メール アドレスのフィールドを持つ従業員情報フォームがあります。新しい従業員情報を登録したとき、(Domino ディレクトリの names.nsf から) 電子メール アドレスを取得できません。フォームの従業員名は、ディレクトリ内の名前と一致し、メール アドレスを持ってくる必要があります。
Lotus Notes を初めて使用するので、助けてください :( 私はこの式を試しました...電子メール アドレス フィールドに...

server := @Name([CN]; @Subset(@DbName; 1));
err := "No email address found, plz chk Domino Directory";
@If(EmpName != ""; @DbLookup("":"NoCache";server:"names.nsf";"People";Name;4); Email);
@If(@IsError(err)=err)

しかし、これは機能していません。エラーのみが表示され、電子メールアドレスは表示されません。Plz help me :( 次に、DbColumn を試してみました... メール フィールドにすべてのメール アドレスを入力します。
私の要件は、ドミノ ディレクトリから登録された従業員名と一致する名前のメール アドレスを持ってくることです。メール アドレスが存在しない場合、表示エラー。

4

2 に答える 2

2

Lotus Notes は初めてです。その式はめちゃくちゃです!:-)

まず、"People" ビューは @DBLookup には適していません。最初の列はソートされていません。デザイナーで確認してください。

私は通常、隠しビュー ($Users) を使用します。最初の列には、人の名前のさまざまなバリエーションがあり、並べ替えられています。電子メール アドレスは列 8 で使用できるため、次のようなものが機能する可能性があります。

結果:= @DbLookup(""; server_name:"names.nsf"; "($Users)"; name_to_match; 8; [FailSilent]);

[FailSilent] では、エラーまたは一致がない場合、結果は "" になります。それが機能せず、本当にそうすべきだと思う場合は、[FailSilent] を取り出し、@Prompt([OK]; "Result"; @Text(result)) を使用してエラーの内容を確認してください。

names.nsf 内の Person ドキュメントが頻繁に更新されることが予想される場合を除き、@DbLookup から「NoCache」を除外できます。それはより速くなります。

于 2011-02-24T20:48:23.637 に答える
0

マークはあなたの質問にほとんど答えました。
数式を読みやすくするために質問をフォーマットした後、まだ問題が発生する可能性があることに気付きました。これが計算フィールドの値の数式であるとするとEmail、成功した場合、数式は@DbLookupの結果を返すはずです。あなたが使っているものはそうではないようです。また、最後の行はタイプミスのようです。
したがって、Markのアプローチを数式と組み合わせて、コメントに対処しながらコードを少し再配置します。1.フィールドが空の
場合は、先に進む必要はありません。現在の内容を返すだけです 。2. server_nameの場合、使用する内容を実行できます。数式の最初の行、または単に: 3.ここでルックアップを実行すると、戻り値はEmpNameEmail
@If(EmpName = ""; @Return(Email); "");

server := @Subset(@DbName; 1);
Emailフィールドなので、最後にセミコロンを付けないでください
@DbLookup(""; server:"names.nsf"; "($Users)"; EmpName; 8; [FailSilent])
。そうです、($Users)ビューにはユーザー名が形式で含まれていますUsername/Domain

フィールドにルックアップエラー(存在する場合)を表示する場合は、代わりに次のコードを使用する必要があります。 errorMessage := "<your message here>";
result := @DbLookup(""; server:"names.nsf"; "($Users)"; EmpName; 8);
@If(@IsError(result); errorMessage; result)

于 2011-03-07T23:32:39.023 に答える