&
논리 연산자 명령을 연결하는 것이 아닙니다. 그렇게하면 다음과 같은 것을 할 수 있습니다.
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]; ...)가 사용할 수 있습니다.
화려한! Torsten,이 점에 대해 많은 감사를드립니다. @Do 함수에 대해 알지 못해서, 그 certianly 것들을 tidier하게! STAT 필드가 "Needs Checking"인 경우 If not 함수가 필요한 이유는 Checking ...이라는 폴더에 들어가기를 원하기 때문입니다. 그렇지만 사용자가 폴더를 선택할 수있게하려는 경우. 나는 이것을 해결할 수 있어야합니다 - 당신의 도움에 감사드립니다! – ClaaziX
나의 두 번째 제안은 정확하게 그 일을합니다 : @If ... 변수에 "_folderName"변수를 설정합니다. else 케이스가 아니라면, @Command ([folder]; _folderName; "1")' @Command ([folder]; "" "1")와 동일합니다. –
매우 영리합니다. Torsten에게 감사드립니다. – ClaaziX