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;
})()