【问题标题】:Lotus Notes Formula: Button Error MessageLotus Notes 公式:按钮错误消息
【发布时间】:2014-07-16 11:55:08
【问题描述】:

使用按钮时出现此错误消息有问题:“运算符或@Function 的数据类型不正确:预期数字”

一切正常 - 它只是在选择“需要检查”时弹出错误消息

代码:

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

谢谢:)

【问题讨论】:

    标签: lotus-notes lotus-domino lotusscript lotus


    【解决方案1】:

    & 是一个逻辑运算符,不能用于连接命令。这样你就可以做类似

    ResultOfCommand1 & ResultOfCommand2 & ResultOfCommand3
    

    这是一个比较,返回真或假。如果其中一个结果不是数字,则会出现错误。

    在 if: 中使用“@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]);
    

    例如:我检查是否可以保存文档(字段验证,Continue = Fals in QuerySave...如果不能:停止处理。

    然后我只是把东西放在@If 中,这两种情况都不同。

    没有必要将 EditMode 设置为“0”,因为之后您会立即关闭文档。为了禁止“是否要保存更改”,我将 SaveOptions 设置为“0”(这不会保存在文档中)。文件夹名称在一个变量中,以便 @Command( [Folder] ; ... ) 可以使用它。

    【讨论】:

    • 太棒了!非常感谢 Torsten,这很有意义。不知道 @Do 函数,这确实使事情更整洁!我需要 If not 函数的原因是因为如果 STAT 字段是“需要检查”,我希望它进入名为 Checking....的文件夹。但如果不是,我希望用户能够选择文件夹。不过,我应该能够解决这个问题 - 感谢您的帮助!
    • 我的第二个建议正是这样做的:它在 @If... 中设置变量“_folderName”,否则在未设置的情况下,@Command([folder] ; _folderName; "1" ) 将与 @987654326 执行相同的操作@
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多