2011-02-24 7 views
1

직원 정보 양식에 직원 번호, 직원 이름 & 직원 전자 메일 주소가 있습니다. 새 직원 정보를 등록 할 때 Domino 주소 names.nsf에서 이메일 주소를 가져올 수 없으며 양식의 직원 이름이 디렉토리의 이름과 일치해야 메일 주소를 가져올 수 있습니다. , 난 단지 오류가 아닌 이메일을
로터스에 새로운 오전으로 제발 도와주세요 ... 난이 이메일 주소 필드에 ...이 공식을 시도 :( names.nsf domino 디렉토리에서 전자 메일 주소를 얻는 방법 - 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 ... 이메일 필드에있는 모든 이메일 주소 채우기 시도했습니다.
내 요구 사항은 domino 디렉토리에서 직원 이름 registerd와 일치하는 이름의 이메일 주소를 가져오고, 이메일 주소가 없으면 오류가 표시됩니다.

+0

음 내가 너무이 시도 ... 와트 BT는 server_name에 넣으시겠습니까? : (... 그리고 ma 디렉토리의 숨겨진보기 $ Users, 메일 주소 열은 비어 있습니다 ... 또한 ... 형식의 EMPNAME은 형식 (사용자 이름/도메인)입니다 ...이 shud에는 matchin이 있습니다. 필드에있는 사용자보기에서 ...? – user631457

+0

실제 문제는 어떤 수식의 마지막 줄만 값을 반환한다는 사실에 의해 복잡해집니다. 두 번째 줄부터 마지막 ​​줄까지 @DBlookup을 수행하지만 값을 반환하거나 할당하지 않습니다 그 결과는 나중에 반환 될 수있는 필드에 전달되고 마지막 행은 아무 것도 쓸모가 없습니다. 부울 값을 문자열과 비교하기 때문입니다. Mark의 솔루션은 맞지만 여전히 수식의 구조를 조정해야합니다. –

답변

1

와우, 당신은 Lotus Notes를 처음 사용합니다. a 엉망이다! :-)

먼저 "사람"보기가 @DBLookup에 적합하지 않습니다. 첫 번째 열은 정렬되지 않습니다. Designer에서 확인해보십시오.

나는 보통 숨겨진보기 ($ 사용자)를 사용합니다. 첫 번째 열에는 사람의 이름에 대한 다양한 변형이 있으며 정렬됩니다. 이 전자 메일 주소는 8 열에서 사용할 수 있으므로 다음과 같이 작동 할 수 있습니다.

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

[FailSilent]를 사용하면 오류가 있거나 일치하지 않을 경우 결과가 ""됩니다. 작동하지 않는데 실제로 생각하면 [FailSilent]를 꺼내고 @Prompt ([OK]; "Result"; @Text (result))를 사용하여 오류의 원인을 확인하십시오.

names.nsf의 Person 문서가 자주 업데이트되는 것을 예상하지 않는 한 @DbLookup에서 "NoCache"를 그대로 둘 수 있습니다. 더 빠를 것입니다.

0

마크는 질문에 거의 답했습니다.
수식을보다 쉽게 ​​읽을 수 있도록 서식을 지정한 후에도 여전히 문제가 발생할 수있는 것으로 나타났습니다. 계산 된 필드 값이 Email 인 경우 수식은 성공하면 @DbLookup의 결과를 반환해야합니다. 당신이 사용하는 것은 보이지 않습니다. 또한 마지막 줄은 잘못 입력 된 것처럼 보입니다. 수식과 함께 마크의 접근 방식을 결합
그래서, 당신의 의견 주소 잠시 동안의 코드를 재 배열 :
1. 필드 EmpName이 비어있는 경우 더 이상 갈 필요가 없습니다, 단지 Email의 현재 내용을 반환 :
@If(EmpName = ""; @Return(Email); "");
을 방금 첫 번째 수식의 라인, 또는 무엇을 사용 할 수있는 서버 _ 들어 2 :
server := @Subset(@DbName; 1);
3. 지금 조회를 할 수는 반환 값은 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)

관련 문제