天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 6372|回复: 26

[已解决] 已知一个日期(日期型)+(数值)天数=另一个日期(日期型)

[复制链接]
沈阳铁路局 发表于 2012-10-30 16:32:10 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2012-11-5 17:02 编辑
  1. function(生产或检修日期,有效期限){  
  2. var sd =new Packages.java.text.SimpleDateFormat("yyyy-MM-dd");//定义一个日期转换方法
  3. var date1 =new Packages.cn.myapps.util.DateUtil();//声明一个日期变量
  4. date1= sd.parse(生产或检修日期);//将afterdate参数的值转换类型付给date1变量
  5. var s=0;//声明一个整形变量s
  6. s=(有效期限*(24 * 60 * 60 * 1000));  //将daycount参数算上时差后的值赋给s变量
  7. var v=date1.getTime();//声明一个变量v,将date1的日期值赋给v
  8. var t=v-s;//声明一个变量t,值等于变量v和s的差
  9. var  date2 = new Packages.java.util.Date(t);//声明一个变量date2值等于日期类型的t的值
  10. var date3=sd.format(date2);//声明一个变量date3,将date2的值转换成日期格式后赋给date3
  11. return date3;//返回date3的值
  12. }
复制代码
请问哪里有错误,为什么不执行脚本,我是写到想得到的日期的值脚本里的
spiral 发表于 2012-10-30 16:54:55 | 显示全部楼层
请问您是如何调用的呢?直接写到日期的值脚本是不行的
您可以把代码放到函数库,然后在日期的值脚本调用它,您可以参考一下这个帖子
http://www.teemlink.com/bbs/viewthread.php?tid=160907
 楼主| 沈阳铁路局 发表于 2012-10-31 10:27:39 | 显示全部楼层
回复 2# spiral

名称:计算日期
  1. function jsrq(生产或检修日期,有效期限){  
  2. var sd =new Packages.java.text.SimpleDateFormat("yyyy-MM-dd");//定义一个日期转换方法
  3. var date1 =new Packages.cn.myapps.util.DateUtil();//声明一个日期变量
  4. date1= sd.parse(生产或检修日期);//将afterdate参数的值转换类型付给date1变量
  5. var s=0;//声明一个整形变量s
  6. s=(有效期限*(24 * 60 * 60 * 1000));  //将daycount参数算上时差后的值赋给s变量
  7. var v=date1.getTime();//声明一个变量v,将date1的日期值赋给v
  8. var t=v-s;//声明一个变量t,值等于变量v和s的差
  9. var  date2 = new Packages.java.util.Date(t);//声明一个变量date2值等于日期类型的t的值
  10. var date3=sd.format(date2);//声明一个变量date3,将date2的值转换成日期格式后赋给date3
  11. return date3;//返回date3的值
  12. }
复制代码
我在日期控件的值脚本里调用
  1. #include " 计算日期";
  2. jsrq();
复制代码
 楼主| 沈阳铁路局 发表于 2012-10-31 10:28:11 | 显示全部楼层
没有成功,是不是写的不对呀
 楼主| 沈阳铁路局 发表于 2012-10-31 10:28:29 | 显示全部楼层
没有成功,是不是写的不对呀
spiral 发表于 2012-10-31 10:32:29 | 显示全部楼层
#include " 计算日期"//文字前面怎么多了个空格啊?

你的jsrq()不是有参数嘛?  怎么没有参数传进去啊?

jsrq(生产或检修日期,有效期限)  不要用中文参数  换英文的
 楼主| 沈阳铁路局 发表于 2012-10-31 10:42:28 | 显示全部楼层
回复 6# spiral


    jsrq这个参数我是仿照
  1. function(afterdate,daycount){  // 声明一个带参函数,afterdate是已知的日期,daycount是两个日期相差的天数

  2. var sd =new Packages.java.text.SimpleDateFormat("yyyy-MM-dd");//定义一个日期转换方法

  3. var date1 =new Packages.cn.myapps.util.DateUtil();//声明一个日期变量

  4. date1= sd.parse(afterdate);//将afterdate参数的值转换类型付给date1变量

  5. var s=0;//声明一个整形变量s

  6. s=(daycount*(24 * 60 * 60 * 1000));  //将daycount参数算上时差后的值赋给s变量

  7. var v=date1.getTime();//声明一个变量v,将date1的日期值赋给v

  8. var t=v-s;//声明一个变量t,值等于变量v和s的差

  9. var  date2 = new Packages.java.util.Date(t);//声明一个变量date2值等于日期类型的t的值

  10. var date3=sd.format(date2);//声明一个变量date3,将date2的值转换成日期格式后赋给date3

  11. return date3;//返回date3的值

  12. }
复制代码
这个写的
afterdate,daycount在我这里是日期控件“生产或检修日期”和单行文本(数值型的)“有效期限”
purple 发表于 2012-10-31 10:55:12 | 显示全部楼层
您调用没传参,所以您的函数根本就没调用到,肯定不成功哦。你需要把对应字段的值,作为参数传递到您的jsrq(参数值1,参数值2);函数中,其中将参数值1,参数值2为您对应的字段值。
 楼主| 沈阳铁路局 发表于 2012-10-31 11:06:48 | 显示全部楼层
加参数后前台报这个错
*Field:yjsj-值脚本出错 <br>JavaScriptRunning:[Form.配件信息录入.Field(11e2-2267-97d0de50-8852-bd68cdfb6672).yjsj.ValueScript]: ReferenceError: "jsrq" is not defined. (11e2-2267-97d0de50-8852-bd68cdfb6672).yjsj.ValueScript#2)
 楼主| 沈阳铁路局 发表于 2012-10-31 11:09:12 | 显示全部楼层
jsrq是函数库名也是方法名(改英文了),jsrq(生产或检修日期,有效期限);现在改为 jsrq(scrq,yxqx)

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 18:47

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表