使用按钮时出现此错误消息时出现问题:"运算符或@Function的数据类型不正确:预期数字"
一切正常 - 当需要检查"需要检查时,它会弹出错误消息。被选中
代码:
@Command([EditDocument];" 1"); FIELD STAT:= @Prompt([OkCancelList];"选择和操作";"检查状态?&#34 ;;" STAT&#34 ;;"需要检查&# 34;:"需要修改":"已检查"); @If(STAT =" Needs Checking&#34 ;; @ SetField(" USER&#34 ;; @ Name([CN]; @ UserName))& @SetField(" REF&#34 ;; @ Unique)& @Command([FileSave])& @Command([EditDocument];" 0")& @Command([Folder];" Checking&#34 ;; " 1")& @Command([CloseWindow]); @Command([FileSave])& @Command([EditDocument];" 0")& @Command([Folder];"";" 1")& @Command([CloseWindow]))
谢谢:)
答案 0 :(得分:3)
&
是逻辑运算符,不用于连接命令。那样你就可以做像
ResultOfCommand1 & ResultOfCommand2 & ResultOfCommand3
这是一个比较并返回true或false。如果其中一个结果不是数字,那么就会出现错误。
使用" @ Do"在if:
中连接多个命令@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])) )
但这仍然是#34;糟糕的代码"因为它包含许多重复的代码。我会这样做(仍然不是最好的代码,但更好):
@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]);
例如:我检查文档是否可以保存(字段验证,继续= QuerySave中的Fals ...如果不是:停止处理。
然后我把这些东西放在@If中,这两种情况都不同。
将EditMode设置为" 0"没有必要,因为你之后立即关闭文件。禁止"您是否要保存更改"我将SaveOptions设置为" 0" (这不会保存在文档中)。 foldername是一个变量,因此@Command([Folder]; ...)可以使用它。