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

[已解决] 如何判断记录是否为有效记录

[复制链接]
杭州维熙 发表于 2014-7-31 10:55:49 | 显示全部楼层 |阅读模式
本帖最后由 dan 于 2014-7-31 18:07 编辑

QQ图片20140731105012.jpg
整个表单做了非空验证。
要求如下:1、当我在明细表中添加一条记录后,直接关闭窗口,则明细表中的这条记录为无效记录。
          2、当我在明细表中添加一条记录后,点击“保存”按钮,因为某几个字段验证不通过,关闭窗口,则明细表中的这条记录为无效记录。
          3、当我在明细表中添加一条记录后,所有字段验证通过,点击“保存”按钮,关闭窗口,则明细表中的这条记录为有效记录。
在“保存”按钮上我该如何写脚本才能满足我的要求?
kharry 发表于 2014-7-31 11:24:27 | 显示全部楼层
第一个的话可以再按钮里面加上隐藏条件,在子表没有数据的时候不给显示,这样的话在子表添加数据前就不能保存
第二个问题要操作按钮的脚本上座判断
第三个也是
回复

使用道具 举报

kharry 发表于 2014-7-31 11:26:03 | 显示全部楼层
但是如果说你不给我联系方式的 我也没办法具体定位问题并给出有效解决方案
回复

使用道具 举报

 楼主| 杭州维熙 发表于 2014-7-31 13:13:10 | 显示全部楼层
回复 3# kharry


    你好,我要的是三个要求同时实现,不过我已经做好了,谢谢……我的操作是,早明细表上加一个状态的字段,在“保存”的脚本里面,先判断那些字段非空的验证,如果非空的验证都能通过,那么再执行方法去更新明细表状态的字段。不过我这样做的弊端就是,需要验证的非空字段越多,脚本里面不为空的判断就越多。
“保存”上的脚本
#include "constant";

var doc = getCurrentDocument();
var value = getItemValue("couriernumber");
var expresscompany = getItemValueAsString("expresscompany");
var starttime = getItemValueAsDate("reportdate");
var deadline = getItemValueAsDate("senddate");
var expressnumber = getItemValueAsString("expressnumber");

var docid=doc.getId();
var updateSql = "update  tlk_fm_express_sendmanagement_sub  set state='结束' where parent='"+docid+"'";

if(value == null  ||  value.trim().length() <= 0){
    value = countNext2(expresssendnumberletter,true,true,true,3);
    doc.findItem("couriernumber").setValue(value);
         if(expresscompany != null && starttime != null && expressnumber != null ){
                var startDate = format(starttime,"yyyy-MM-dd HH:mm:ss");
                var endDate =  format(deadline,"yyyy-MM-dd HH:mm:ss");
                if(startDate >= endDate){
                         updateByDSName(datasourceName,updateSql);       
                }
        }
    var process = getDocProcess(getApplication());
    process.doUpdate(doc);
}else{
        if(expresscompany != null && starttime != null && expressnumber != null ){
                var startDate = format(starttime,"yyyy-MM-dd HH:mm:ss");
                var endDate =  format(deadline,"yyyy-MM-dd HH:mm:ss");
                if(startDate >= endDate){
                         updateByDSName(datasourceName,updateSql);       
                }
        }
    var process = getDocProcess(getApplication());
    process.doUpdate(doc);
}
如果有更好的方法处理,请指点下我吗,谢谢……联系方式个人信息上有,可以结贴了,谢谢
回复

使用道具 举报

kharry 发表于 2014-7-31 13:56:10 | 显示全部楼层
感谢楼主反馈  该帖结贴
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-13 22:30

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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