myapps iscript脚本iscript使用记录,主子表一对多插入数据,删除数据、值转换

myapps obpm iscript脚本iscript使用记录,主子表一对多插入数据,删除数据、值转换

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
//关于您的需求,需要在对应操作的执行后脚本中,通过脚本,
//用SQL去控制子表数据的新增或者删除。如果是主子表单,
//字表的parent字段对应的是主表的ID字段,您可以通过这两个字段做控制。
(function(){
	var doc = getCurrentDocument();
	var meeting_id=getItemValueAsString("meeting_id");
	var aa = doc.getItemValueAsString("user_list"); //表单用户选择框字段
	
	if(!aa.equals("")&& aa.length()>0){
		var docids = splitText(aa, ";");
		var userlist = createObject("java.util.ArrayList");
		for (var i = 0; i < docids.length; i++) {
			if (docids != null) {
					var userVO = getUserById(docids[i]);
					userlist.add(userVO);
			}
		}
		
		var formProcess = getFormProcess();
		var process = getDocumentProcess(); 
		var form = formProcess.doViewByFormName("meeting_join_user" , getApplication()); 
		if(userlist!=null && userlist.size()>0){
			for(var i = 0; i < userlist.size(); i++){//循环条件
				var dataUser = userlist.get(i);
				var itemDoc = process.doNew(form,getWebUser(),createParamsTable());
				
				var userid=dataUser.getId();
				var sql = "select * from tlk_meeting_join_user where item_meeting_id='"+meeting_id;
				 sql +="' and item_user_id='"+userid+"'";
				var existlist = queryBySQL(sql);
				if(existlist!=null && existlist.size()>0){
	
				}else{
					var depts = dataUser.getDepartments();
					var departmentName = "";
					for (var iter = depts.iterator(); iter.hasNext();) {
						var dept = iter.next();
						departmentName = dept.getName();
					}
					
				    itemDoc.setParent(doc.getId());
					itemDoc.setAuthor(userid);
					itemDoc.setIstmp(false);
					itemDoc.setApplicationid(getApplication());
					itemDoc.setDomainid(dataUser.getDomainid());
					
					itemDoc.addStringItem("meeting_id", meeting_id);
					itemDoc.addStringItem("user_id", userid);
					itemDoc.addStringItem("username", dataUser.getName());
					itemDoc.addStringItem("tel_phone", dataUser.getTelephone());
					itemDoc.addStringItem("department", departmentName);
					itemDoc.addStringItem("message", "");
					itemDoc.addStringItem("status", "wait");
					itemDoc.addDateItem("add_date", getToday());
					process.doCreate(itemDoc);
				}

			}
		}
	}	
})()

/////////////////////////////删除会议参与人/////////////////////////////////
//1.在视图的操作按钮的脚本中,删除选中的的记录
//2.在视图选择框的确定脚本中,删除选中的的记录
//以上两种情况都可以使用
(function(){
	var params = getParameter("_selects");       
	if(params!=null && params!=""){
		var recordids = splitText(params,";");//得到选中记录组的id
		var recordid = "";
		
		var appid=getApplication();//获取应用ID
		var a=new Packages.cn.myapps.core.deploy.application.ejb.ApplicationProcessBean();//实例化application的应用处理类
		var avo=a.doView(appid);//获取软件应用对象
		var did=avo.getDatasourceid();//获取数据源的ID
		var db=new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//实例化数据源的应用处理类
		var kk=db.doView(did);//获取数据源对象
		var dbsname=kk.getName();//获取数据源名称

		var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication()); //实例化文档对象
		for(var i=0;i<recordids.length;i++){
			var id = recordids[i];
			//process.doRemove(recordids[i]);//根据文档ID,删除文档对象
			var sql = "delete from tlk_meeting_join_user where parent='"+id+"'";
			if(!"".equals(dbsname)){
				deleteByDSName(dbsname,sql);	
			}
		}
	}
})()

/////////////////////////////获取数据源的名称//////////////////////////////

var appid=getApplication();//获取应用ID
var a=new Packages.cn.myapps.core.deploy.application.ejb.ApplicationProcessBean();//实例化application的应用处理类
var avo=a.doView(appid);//获取软件应用对象
var did=avo.getDatasourceid();//获取数据源的ID
var db=new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//实例化数据源的应用处理类
var kk=db.doView(did);//获取数据源对象
var name=kk.getName();//获取数据源名称
name;

///////////////////如何获取视图中选中记录的某些字段值   (过时过时过时过时过时过时,doc.getItemValueAsString用不了)////////////////////////
var params = getParameter("_selects");//获取选中记录的ID集合
var process = getDocProcess(getApplication());
var docids = Packages.cn.myapps.util.StringUtil.split(params,";");
println("=================---"+docids.length);
for(var i=0;i<docids.length;i++){
    var doc = process.doView(docids[i]);//根据ID查询document对象。
    var meeting_id = doc.getItemValueAsString("meeting_id");//取字段值
	println("=============="+meeting_id);
}

/////////////////////视图列字段  值转换/////////////////////////

(function(){
	var doc = getCurrentDocument();
	var value = doc.getItemValueAsString("status");//列获取字段的值
	var rtn="";
	if(value=="wait")
		rtn="待确认";
	else if(value=='yes')
		rtn="出席";
	else if(value=='no')
		rtn="请假";
	else
		rtn= value;
	return rnt;
})()


你可能感兴趣的:(myapps iscript脚本iscript使用记录,主子表一对多插入数据,删除数据、值转换)