【选项脚本】下拉选项值需要唯一,过滤重复项(distinct SQL)

选项脚本,请参考

function deptinfo(){
	var opts =  createOptions();
	opts.add("","");
	var sql="select A.item_appno,'"+getDomainid()+"' as domainid  from (select distinct(item_appno) as item_appno from tlk_xxx) A";
	var datas = queryBySQL(sql);
	if(datas!=null){
	   for(var iterator = datas.iterator();iterator.hasNext();){
		   var datavo = iterator.next();
		   var name= datavo.getItemValueAsString("appno");
		   opts.add(name,name);
		}
	}
	return opts;
}

返回首页

【选项脚本】下拉列表的选项来源第三方数据库

业务场景:

第三方数据库,数据源名称: AS400 

需要在表单-字段“客户名称”显示POrderDetail表-字段customer的值

第一步:在数据源中,添加第三方数据库的链接地址,例如配置数据源名称为AS400

blob.png

第二步,在字段客户的【选项】放如下脚本

blob.png

(function(){    
	var opts=createOptions();		
	opts.add("","");		
	var company=getItemValueAsString("公司");		
	if(company!=""&&company!=null){			
	var sql="select '"+getDomainid()+"' as domainid,code ,customerName from t_test客户信息 where 公司='"+company+"'";			
	var datarts=queryByDSName("AS400",sql);			
	if(datarts!=null){				
		for(var iter=datarts.iterator();iter.hasNext();){						
			var docone=iter.next();							
			var customerName=docone.get("customerName");							
			var code=docone.get("code");							
			opts.add(customerName,code);//customerName为显示值,code为真实值					
		}				
		}		
	}		
	return  opts;
})()

返回首页

【计算脚本】给出友好文字提示

例如请假单,如果类型年假,则提示已请的年假天数,脚本如下,具体可以参考示例软件-行政办公-人事-员工请假申请

var str = "已请年假:0天0小时";

str = "<span style='color:red;'>" + str + "</span>";

blob.png

返回首页

【选项脚本】选项设计模式

选项的值,来源于一张基础数据表(字典表),则不用任何脚本,可以直接引用基础数据表的某个列的数据作为选项;

注意:1、不能去掉基础数据表中重复值;2第一个选项不能自由配置是否为空值;

blob.png

返回首页

【选项脚本】的三种方式

// 第一种,选项用分号隔开

"公司1;公司2;公司3";

// 第二种 固定值,但是以键值对方式呈现

(function(){
    var opts=createOptions();
    //opts.add("","");附上空值
    opts.add("中国","UN",true);
    opts.add("费用","病假");
    opts.add("其他","其他");
    return  opts;
})()

// 第三种 选项来源于另外的表,可以用当前表单的字段作为过滤条件,

	 // 选项来源于另外的表,可以用当前表单的字段作为过滤条件
(function(){
	var opts=createOptions();
	opts.add("","");
	var company=getItemValueAsString("公司");
	if(company!=""&&company!=null){
	    var sql="select '"+getDomainid()+"' as domainid,code as item_code,customerName as item_customerName from t_test客户信息 where 公司='"+company+"'";
		var datarts=queryBySQLWithCache(sql);
		if(datarts!=null){
		    for(var iter=datarts.iterator();iter.hasNext();){
			    var docone=iter.next();
				var customerName=docone.getItemValueAsString("客户名称");
				var customerName=docone.getItemValueAsString("code");
				opts.add(customerName,code);//customerName为显示值,code为真实值
			}
		}
	}
	return  opts;
})()

返回首页

【值脚本】获取当前操作用户的部门

(function(){
    var applicant_dept=getItemValueAsString("部门");
    if(applicant_dept==""||applicant_dept==null){
        applicant_dept=getWebUser().getDefaultDepartment();
    }
    return  applicant_dept;
})()

返回首页

【值脚本】申请人自动获取当前操作用户

(function(){
    var applicant=getItemValueAsString("申请人");
    if(applicant==""||applicant==null){
        applicant=getWebUser().getId();
        //applicant=getWebUser().getName(); 获取用户名称
    }
    return applicant;
 
})()

返回首页

【值脚本】汇总统计明细表金额

(function(){
    var formName="Expensive_Item";//明细表
    var fieldName="amount";//明细表需要汇总字段
    var value=sumSubDocument(formName, fieldName);
    return value;
})()

返回首页

【值脚本】自动计算单价*数量的金额

(function(){
    var price=getItemValueAsDouble("price");
    var num=getItemValueAsDouble("num");
    var amount=round(price*num,2);//保留2位小数
    return amount;
})()

返回首页

【值脚本】生成表单流水号码

(function(){
    //appno 的生成规则是tlfy开头,tlkfy20171200001这样的格式显示
    var appno=getItemValueAsString("appno");
    if(appno==""||appno==null){
        appno=countNext2("TLFY",true,true,false,4);
    }
    return appno;
})()

返回首页

【值脚本】获取当前系统时间

(function(){
    var applicant_date = getItemValueAsDate("填写日期");
    if(applicant_date ==null || applicant_date==""){ 
    applicant_date = getToday();
    }
    return applicant_date;
})()

返回首页

发表评论

电子邮件地址不会被公开。 必填项已用*标注