动作内子程序较多,是否可以通过输入子程序的名称和子程序的输入参数来运行子程序,而不是选择好子程序才能运行。

使用问题 · 113 次浏览
王文铖 创建于 2024-02-26 21:01

动作内子程序较多,是否可以通过输入子程序的名称和子程序的输入参数来运行子程序,而不是选择好子程序才能运行。

 

类似下面这种

王文铖 最后更新于 2024/2/26

回复内容
CL 2024-02-26 21:11
#1

因为子程序有自己的参数定义,每个子程序可能需要不同的表单,而动作只有一个固定的参数,所以两者不同,子程序没法使用这样的界面。

但是可以在表达式里直接调用,类似于这样的方式:


$=_context.RunSp("子程序名称",     new Dictionary<string,string>(){{"p1", "value1"},{"p2", "value2"}}

    );

或使用匿名对象传递参数,例如:

$=_context.RunSp("子程序名称"
    new {key1 = "value1", key2 = "value2" }
    );



这里可以直接使用c#语法写比较复杂的判断来执行不同的子程序。

如果每个子程序都使用类似的参数或没有参数,也可以考虑直接从动作参数中传入子程序名,使用表达式进行直接调用。

需要注意的时,如果子程序里使用界面显示,可能会造成冲突。测试之前备份好动作。



CL 最后更新于 2024-02-26 21:14
回复主贴