2014-07-16 4 views
2

I 버튼을 사용할 때 나타나는이 오류 메시지에 문제가 있습니다 : "잘못된 데이터 유형 운영자 또는 @Function에 대해 : 예상 번호"Lotus Notes를 공식 : 버튼 오류 메시지가

모든 것이 잘 작동을 - 그냥 팝업 "요구 확인"오류 메시지

를 선택

번호 :

@Command ([EditDocument]; "1"); FIELD STAT : = @Prompt ([OkCancelList]; "선택 및 조치"; "상태 확인?"; "STAT"; "Needs Checking": "Needs Amending": "Checked"); & @SetField ("REF"; @Unique) & @ 명령 ([FileSave]) & @@@@@@@@@@@@@@@@@@@@@@@@ " @Command ([EditDocument]; "0") & @Command ([Folder]; "Checking"; "1") & @ 명령 ([CloseWindow]); @ 명령 ([FileSave]) & @ 명령 ; "0") & @Command ([폴더] '', '1') & @Command ([CloseWindow]))

감사 :)

답변

3

& 논리 연산자 명령을 연결하는 것이 아닙니다. 그렇게하면 다음과 같은 것을 할 수 있습니다.

ResultOfCommand1 & ResultOfCommand2 & ResultOfCommand3 

이것은 비교이며 true 또는 false를 반환합니다. 결과 중 하나가 숫자가 아니면 오류가 발생합니다.

사용 "@Do은"더 이상의 명령을 연결하는 경우 :

@Command([EditDocument]; "1"); 
FIELD STAT := @Prompt([OkCancelList]; "Select and Action"; "Checking Status?"; 
    "STAT"; "Needs Checking" : "Needs Amending" : "Checked"); 
@If(STAT="Needs Checking"; 
    @Do(@SetField("USER";@Name([CN];@UserName)); 
     @SetField("REF";@Unique); 
     @Command([FileSave]); 
     @Command([EditDocument]; "0"); 
     @Command([Folder];"Checking";"1"); 
     @Command([CloseWindow])); 
    @Do(@Command([FileSave]); 
     @Command([EditDocument] ; "0"); 
     @Command([Folder];"";"1"); 
     @Command([CloseWindow]))) 

가 중복 코드를 많이 포함하지만이 여전히 "나쁜 코드"입니다. 처리를 중지 :이처럼 그것을 (아직하지 않는 것이 좋습니다 코드,하지만 더 나은) 것 :

@Command([EditDocument]; "1"); 
FIELD STAT := @Prompt([OkCancelList]; "Select and Action"; "Checking Status?"; 
    "STAT"; "Needs Checking" : "Needs Amending" : "Checked"); 
@If(STAT = "Needs Checking"; 
    @Do(@SetField("USER";@Name([CN];@UserName)); 
     @SetField("REF";@Unique); 
     @Set(_folderName; "Checking") 
    ); ""); 
@If(@Command([FileSave]); "" ; @Return("")); 
@Command([Folder];_folderName;"1"); 
FIELD SaveOptions := "0"; 
@Command([CloseWindow]); 

예 : = FALS이 QuerySave에 ...하지 않으면 것은 내가 확인 문서 (필드 유효성 검사를 저장할 수있는 경우, 계속 .

그럼 난 그냥 두 경우 모두에 대해 서로 다른있는 @if에서 일을했습니다.

을 즉시 후 문서를 닫을으로 한 EditMode "0"필요하지 않습니다하는 설정. 금지하려면 "하니 변경 내용을 저장하려면 "SaveOptions를"0 "으로 설정합니다 (문서에는 저장되지 않음). foldername은 변수에 있으므로 @Command ([Folder]; ...)가 사용할 수 있습니다.

+0

화려한! Torsten,이 점에 대해 많은 감사를드립니다. @Do 함수에 대해 알지 못해서, 그 certianly 것들을 tidier하게! STAT 필드가 "Needs Checking"인 경우 If not 함수가 필요한 이유는 Checking ...이라는 폴더에 들어가기를 원하기 때문입니다. 그렇지만 사용자가 폴더를 선택할 수있게하려는 경우. 나는 이것을 해결할 수 있어야합니다 - 당신의 도움에 감사드립니다! – ClaaziX

+1

나의 두 번째 제안은 정확하게 그 일을합니다 : @If ... 변수에 "_folderName"변수를 설정합니다. else 케이스가 아니라면, @Command ([folder]; _folderName; "1")' @Command ([folder]; "" "1")와 동일합니다. –

+0

매우 영리합니다. Torsten에게 감사드립니다. – ClaaziX