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

表单保存并新建问题

[复制链接]
天龙白云 发表于 2012-7-31 17:09:46 | 显示全部楼层 |阅读模式
本帖最后由 bess 于 2012-8-2 11:32 编辑

我的表单中有个自动编号的选项,是通过保存时脚本生成的,代码如下:
var value = getItemValue("记录编号");
var starttime = getItemValueAsDate("提报日期");
var starttime = format(starttime,"yyMM");
var text="T"+starttime;
if(value == null  ||  value.trim().length() <= 0){
    value = countNext2(text,false,false,false,3);
var doc = getCurrentDocument();
    doc.findItem("记录编号").setValue(value);
    var process = getDocProcess(getApplication());
    process.doUpdate(doc);
}
如果选择“保存(不带流程)”,在“动作执行后脚本”中输入以上脚本,能正常生成编号
但是如果选择“保存并新建(不带旧数据)”,在“动作执行后脚本”中输入以上脚本,会报错并无法生成新的编号,错误如下
我想可能是新建这个操作的问题,请问有别的办法实现我的需求吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
purple 发表于 2012-7-31 17:48:37 | 显示全部楼层
错误信息不是您生成记录的问题,是您记录还不存在,就去更新数据库的值导致的,请问您具体是什么业务,需要在新建的时候,就去更新记录?
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-7-31 17:51:50 | 显示全部楼层
我就是填表单时,想用“保存并新建”的按钮,但是在执行这个操作时想更新表中的一个字段,也就是实现自动编号
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-7-31 17:52:47 | 显示全部楼层
但是这个脚本不管是放在动作执行前,还是动作执行后都有问题
回复

使用道具 举报

purple 发表于 2012-7-31 17:56:45 | 显示全部楼层
回复 3# 天龙白云


    是跟您动作执行前后没关,问题是,你的记录都没存在,更新肯定报错呀。您想自定义编号,可以在值脚本写脚本,或者放在动作执行前,去掉更新的代码。放在动作执行后,ok,但是不能使用保存并新建,因为该工作,保存之后,就是新建页面了,您的脚本是更新当前文档,记录不存在。
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-7-31 17:59:25 | 显示全部楼层
我本意就是放在保存的时候生成编号,这样会更准确些,能排除那些未保存却占用编号的情况
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-7-31 18:00:53 | 显示全部楼层
因为保存并新建这个操作的特殊性,动作前后的记录都是不存在的,我就不知道用什么其他办法实现了
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-7-31 18:02:44 | 显示全部楼层
那我再做个新建的按钮吧   看来只能这么解决了
回复

使用道具 举报

purple 发表于 2012-7-31 18:33:28 | 显示全部楼层
您采用的是保存并新建的话,为什么不是在保存的动作执行前呢,执行前不需要更新至数据库的语句,所以您的代码去掉
var process = getDocProcess(getApplication());
process.doUpdate(doc);
两句再测试。
回复

使用道具 举报

 楼主| 天龙白云 发表于 2012-8-1 08:52:38 | 显示全部楼层
好像没有更新就设置不进去
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 01:53

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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