Page tree
Skip to end of metadata
Go to start of metadata

命令执行后,可以把命令的执行结果保持到变量里,以便后续的命令或逻辑使用。

可以通过实现ResultToPropertyAttribute来实现此效果。

示例代码:

注意:标注 ResultToProperty 的属性类型必须是 string。 推荐给属性添加默认值,以方便用户使用。

    public class MyPluginCommand : Command
    {
        [DisplayName("加数")]
        [FormulaProperty]
        public object FirstValue { get; set; }

        [DisplayName("被加数")]
        [FormulaProperty]
        public object LastValue { get; set; }

        [ResultToProperty]
        [DisplayName("结果保存至变量")]
        public string Result { get; set; } = "结果";
    }


设计器中的效果:

在后续命令编辑公式时,设置的变量可以直接在公式中使用。

在JavaScript 部分,通过Forguncy.CommandHelper.setVariableValue方法设置结果到结果变量。

class MyPluginCommand extends Forguncy.Plugin.CommandBase{
    execute() {
        const add1 = this.evaluateFormula(this.CommandParam.FirstValue);
        const add2 = this.evaluateFormula(this.CommandParam.LastValue);
        const res = Number(add1) + Number(add2);
        Forguncy.CommandHelper.setVariableValue(this.CommandParam.Result, res);
    }
}

Forguncy.Plugin.CommandFactory.registerCommand("MyPlugin.MyPluginCommand, MyPlugin", MyPluginCommand);
  • No labels