自定义操作窗、子程序、菜单等的变量传递问题

动作开发 · 1057 次浏览
洛阳白菜 创建于 2024-05-14 19:28

一、目的是想用自定义操作窗,做成按钮整合动作,但是不太会用变量,目前会使用的是使用固定参数传递给子程序

test|operation=sp&spname=test&menu=lock

如何能把非固定值的变量传递给子程序?

二、动作选项中的菜单“[fa:Light_Cog]缩放设置|font-ocnfig”可以通过“$= {quicker_in_param} == "font-ocnfig”判断和调用主程序步骤组

自定义操作窗中这个要怎么写?帮助上的试了一下午也没找到。。。

三、同上,想使用自定义操作窗的方式,无论是把动态变量传递给子程序,还是直接调用步骤组都行~


回复内容
CL 2024-05-14 19:36
#1

使用变量有2个方式,文本插值和表达式,

在任意步骤的参数框右键可以查看到文档。如果内容比较复杂,可能需要对他们URL编码以后放进去。


洛阳白菜 2024-05-14 19:54
#2

这两种方法都会使用

现在需要的是把主程序自定义操作窗,定义动态变量传递给字程序

&a=5直接就传过去了

自定义操作窗怎么传动态变量给子程序呢?

CL 回复 洛阳白菜 2024-05-14 20:40 :

将变量的值插值到操作窗的参数里。例如

$$test|operation=sp&spname=test&menu={变量}

洛阳白菜 2024-05-14 21:01
#3

嗯嗯,现在就是这样用的,还想着自定义文本框可以直接调用变量呢


还有就是,$= {quicker_in_param} == "font-ocnfig”这种菜单的调用步骤组用法,在自定义操作窗中,应该怎么写呢?

一个按钮执行一个简单的步骤组,都放到子程序太麻烦了一些。。。

CL 回复 洛阳白菜 2024-05-14 21:06 :

如果变量是固定的,可以在子程序中通过表达式访问主程序变量。 $= _context.GetRootContext().GetVarValue("变量名")

洛阳白菜 2024-05-14 21:19
#4

哦哦,这个看上去就好用


上面是问,菜单

“[fa:Light_Cog]缩放设置|font-ocnfig”

可以通过

“$= {quicker_in_param} == "font-ocnfig”

判断和调用主程序步骤组

帮助中说自定义操作窗和菜单语法想相似,可是

“[fa:Light_Cog]缩放设置|font-ocnfig”

放入自定义操作窗中确是无效的,正确写法是什么呢?

CL 回复 洛阳白菜 2024-05-14 21:36 :

每太看懂这个问题。建议调试运行,看看实际输入的参数值、预期的结果、实际的结果。

洛阳白菜 2024-05-14 21:47
#5

如图,

右键菜单可以调用步骤组

自定义操作窗,类似的语法要如何写可以实现调用步骤组?

CL 回复 洛阳白菜 2024-05-14 22:45 :

quicker_in_param是给动作传递的参数,是启动动作的时候传的。 操作窗不涉及quicker_in_param。 请再看下自定义操作窗的文档哦,操作窗通常不使用点击之后就关闭的方式,使用点击就关闭的方式的时候,将选择的结果输出给变量,然后判断这个变量,而不是quicker_in_param。

洛阳白菜 回复 CL 2024-05-14 23:08 :

明白了,昨天才开始使用自定义操作窗,可能操之过急了,我再仔细翻翻文档看看,谢啦

zryan 2024-05-14 22:49
#6
对于你的问题二

你可能对于右键菜单的用法有一点点误解,右键菜单不是直接“调用步骤组”的。它也是从头开始执行动作,只不过同时给 {quicker_in_param} 这一个固定变量里面传入了菜单后面的数据,所以才能在步骤中通过“如果”判断这个变量里的内容来执行不同的步骤

本质上动作还是从上往下执行的。

所以不存在“调用步骤组”这样的说法,自定义操作窗里也就没法实现。


如果要找一个和动作右键菜单比较相似的功能,可以看看文档里的“返回点击的按钮”。它会将自定义操作窗关闭,将变量输出,你就可以在自定义操作窗的步骤后面使用不同的“如果”对返回的这个数据进行判断,从而实现执行不同的操作。


zryan 最后更新于 2024-05-14 22:52
洛阳白菜 回复 zryan 2024-05-14 23:09 :

确实是把步骤组理解成了简化版的子程序,这么一解释就很明白了

谢谢!!!


回复主贴