永洪社区

标题: 脚本中使用文本参数默认昨天,一直报错 [打印本页]

作者: 我是卡拉米    时间: 2024-5-15 11:11
标题: 脚本中使用文本参数默认昨天,一直报错
问题接https://club.yonghongtech.com/thread-71656-1-1.html这个帖子当时在第一个帖子中,报错前脚本:

后将第二行的脚本改为:var b = day(eomonth(parseDate(文本参数1.value,"yyyy-MM-dd"),0))
不再报错。
现在问题是:在日期进度条参数下面我又计算了
都需要用到文本参数1,现在继续报错,如下图。我把下图中第一行脚本改为图1写法,仍报错。

我现在不知道改怎么改了!

作者: 我是卡拉米    时间: 2024-5-15 11:12
另外,美滋滋在上个关联帖子中提到了,9版本复现出文本参数相关报错,请问后续会修改9版本的问题么?感觉没有人在跟进了!
作者: yhdata_lyaa    时间: 2024-5-15 11:50
当前是啥版本呢,看看个性化设置最底下的版本号,


作者: 美滋滋    时间: 2024-5-15 13:03
把完整脚本发一下
作者: 美滋滋    时间: 2024-5-15 13:04
你希望文本参数1打开时默认是什么值?
作者: 我是卡拉米    时间: 2024-5-15 13:31
美滋滋 发表于 2024-5-15 13:04
你希望文本参数1打开时默认是什么值?

这是我的完整脚本,包括注释掉的。
作者: 我是卡拉米    时间: 2024-5-15 13:33
美滋滋 发表于 2024-5-15 13:04
你希望文本参数1打开时默认是什么值?

我希望文本参数1打开是默认昨天,然后再获取文本参数1所在月份的1号,文本参数1的同期以及同期的月份1号。
作者: 我是卡拉米    时间: 2024-5-15 13:33
yhdata_lyaa 发表于 2024-5-15 11:50
当前是啥版本呢,看看个性化设置最底下的版本号,
9461没有复现报错

947b
作者: 美滋滋    时间: 2024-5-15 13:58
首先,系统有很多内置参数,你可以参考一下。如下连接。
https://www.yonghongtech.com/rea ... m_highlightsub=LAST

其次,你修改一下脚本
//设定文本参数1默认是昨天
文本参数1.value = param["_LAST_FULL_DAY_"]
//当月天数
var b = formatDate(dateAdd(param["_NEXT_YEAR_MONTH_"],"dayofyear",-1),"dd")
//日期进度条
param["日期进度条"] = param["_THIS_DAY_"] / b
//当月第一天
param["当月第一天"] = param["_THIS_YEAR_MONTH_"]
//同期
param["同期"] = formatDate(dateAdd(param["_THIS_FULL_DAY_"],"year",-1),"yyyy-MM-dd")
//同期第一天
param["同期第一天"] = formatDate(parseDate(param["同期"],"yyyy-MM-dd"),"yyyy-MM-01")

作者: 我是卡拉米    时间: 2024-5-15 14:12
美滋滋 发表于 2024-5-15 13:58
首先,系统有很多内置参数,你可以参考一下。如下连接。
https://www.yonghongtech.com/real-help/Z-Suite/ ...

请问,文本参数编辑器设置日期类型,默认了昨天,那在脚本中这个文本参数1是文本类型?还是日期类型?
作者: 我是卡拉米    时间: 2024-5-15 14:13
本帖最后由 yh-10044 于 2024-5-15 14:16 编辑
美滋滋 发表于 2024-5-15 13:58
首先,系统有很多内置参数,你可以参考一下。如下连接。
https://www.yonghongtech.com/real-help/Z-Suite/ ...

感谢给的参数参考,
我需要把昨天赋给文本参数1组件,后续跟据文本参数1 的选择值写后续日期相关参数。
请问我应该怎么改后面的脚本?

作者: 美滋滋    时间: 2024-5-15 14:14
本帖最后由 美滋滋 于 2024-5-15 14:15 编辑

具体为什么param["文本参数1"]会有NULL的情况,这个要问产品了,我不知道。
所以我让你用文本参数1.value来替代param["文本参数1"]的使用
这个文本参数1.value 是文本类型
作者: 美滋滋    时间: 2024-5-15 14:17
yh-10044 发表于 2024-5-15 14:13
感谢给的参数参考,
我需要把昨天赋给文本参数1组件,后续跟据文本参数1 的选择值写后续日期相关参数。
请 ...

我不是给你脚本了吗?? 你需求的脚本我不是都给你了吗
作者: 我是卡拉米    时间: 2024-5-15 14:18
美滋滋 发表于 2024-5-15 14:14
具体为什么param["文本参数1"]会有NULL的情况,这个要问产品了,我不知道。
所以我让你用文本参数1.value来 ...

【文本参数1.value 是文本类型】
那我明白了我在11楼的疑问了,我只能先把文本参数1.value 转成日期类型,然后用函数修改

作者: 美滋滋    时间: 2024-5-15 14:18
yh-10044 发表于 2024-5-15 14:18
【文本参数1.value 是文本类型】
那我明白了我在11楼的疑问了,我只能先把文本参数1.value 转成日期类型 ...

你看9楼我的回帖,你需要的各个时间点,我都给你脚本了,你直接拿去用就可以了啊
作者: 我是卡拉米    时间: 2024-5-15 14:24
美滋滋 发表于 2024-5-15 14:18
你看9楼我的回帖,你需要的各个时间点,我都给你脚本了,你直接拿去用就可以了啊 ...

可能我描述的需求不太准确,我的同期是 文本参数1所选的日期同期,也就是其余的参数都要以文本参数1为基础(只是默认是昨天)。其实我的疑问都在文本参数1上。根据您12楼回复我明白咋回事了,自己脚本已修改好。感谢!
作者: yhdata_lyaa    时间: 2024-5-15 14:27
这样试试呢
var a=parseDate(文本参数1.getSelectedObjects()[0],"yyyy-MM-dd")
var b=day(eomonth(a,0))
var c=day(a)
param["日期进度条"]=c/b
param["当月第一天"]=formatDate(dateAdd(eomonth(today(),-1),"dayofyear",1),"yyyy-MM-dd")


作者: 美滋滋    时间: 2024-5-15 14:29
那就是说,你要的同期是昨天的同期呗,比如今天2024-05-15,昨天就是 2024-05-14.你要的同期就是2023-05-14呗,可以用下面脚本
//同期
param["同期"] = formatDate(dateAdd(param["_LAST_FULL_DAY_"],"year",-1),"yyyy-MM-dd")
我给你的那个链接是系统已经提供好的一些参数。所以我给你的脚本都是尽量依据系统提供好的参数做的。
同时我也希望你能尽量用系统提供的参数去扩展,这样可以尽量避免未知错误。

作者: 我是卡拉米    时间: 2024-5-15 14:30
yhdata_lyaa 发表于 2024-5-15 11:50
当前是啥版本呢,看看个性化设置最底下的版本号,

经过美滋滋老师的协助,发现,将文本参数组件设置编辑器类型为日期,并用产品自带功能默认数据为昨天,param["文本参数1"]会有NULL的情况,不能在脚本中以日期形式正常使用param["文本参数1"]。请您这边确认一下。看看后续是不是给947b版本发补丁包。
作者: 我是卡拉米    时间: 2024-5-15 14:32
美滋滋 发表于 2024-5-15 14:29
那就是说,你要的同期是昨天的同期呗,比如今天2024-05-15,昨天就是 2024-05-14.你要的同期就是2023-05-14 ...

我的同期是文本参数组件选择日期的同期,会变的
作者: 美滋滋    时间: 2024-5-15 14:35
哦,那就需要在变化运行时增加脚本了。那只能利用文本参数1.value 来获取去年的同期日期了。
作者: yhdata_lyaa    时间: 2024-5-15 14:51
yh-10044 发表于 2024-5-15 14:30
经过美滋滋老师的协助,发现,将文本参数组件设置编辑器类型为日期,并用产品自带功能默认数据为昨天,pa ...

是的使用param["文本参数1"]获取会报错,您试试我楼上发的脚本 用文本参数1.getSelectedObjects()[0]获取,后续补丁包需要在工单平台提工单处理
作者: 我是卡拉米    时间: 2024-5-15 14:58
谢谢两位~




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4