泛微E9表单建模常用功能总结

1、页面扩展相关

1.1、根据扩展id执行保存逻辑

image-20210413235425456
//1368 为页面扩展的id
javascript:ModeForm.doCardSubmit(1368,'0','',true,function(billid){
    
    
       console.log("===执行系统保存完毕=数据id为=",billid)
 });

1.2、调用其他的页面扩展上的接口

在页面扩展的自定义java接口里,调用其他的页面扩展上的接口

weaver.formmode.data.ModeDataManager ModeDataManager = new weaver.formmode.data.ModeDataManager();
ModeDataManager.setFormid(formid);//表单id ;int类型
ModeDataManager.setBillid(billid);//数据id ;int类型
ModeDataManager.setFormmodeid(formmodeid);//模块id ;int类型
ModeDataManager.setPageexpandid(pageexpandid);//页面扩展id ;int类型
ModeDataManager.setUser(user);//当前用户  weaver.hrm.User对象
ModeDataManager.doInterface(pageexpandid);//调用代码,触发改页面扩展上的接口

1.3、如何在表单点击保存后关闭窗口

在建模的【模块】【页面扩展】【新建保存】 或者【编辑保存】

点击【回调函数】 编写对应的编辑窗口方法

1221221

1.4、如何获取查询列表里勾选的记录的id,和清空前一次选择的值以及刷新列表

-----------------------------E8--------------------------

页面扩展按钮的

打开方式:其他

链接目标来源:手动输入

链接目标地址:

javascript:

var href = window.location.href;

var win = window;

if(href.indexOf("CustomSearchBySimple.jsp")!=-1){

win = document.getElementById("tabcontentframe").contentWindow;
}

var ids= win._xtable_CheckedCheckboxId();

alert("选中的记录id为:"+ids);

如果需要清空前一次选择的值,需要调用

win._xtable_CleanCheckedCheckbox();

重新加载列表数据:

win._table.reLoad();

-----------------------------E9--------------------------

页面扩展按钮的

打开方式:其他

链接目标来源:手动输入

链接目标地址:

javascript:var ids = ModeList.getCheckedID();

alert("选中的记录id为:"+ids);

如果需要清空前一次选择的值,需要调用

ModeList.clearChecked();

重新加载列表数据:

ModeList.reloadTable();

-----------------------------E8--------------------------

页面扩展按钮的

打开方式:其他

链接目标来源:手动输入

链接目标地址:

javascript:

var href = window.location.href;

var win = window;

if(href.indexOf("CustomSearchBySimple.jsp")!=-1){

win = document.getElementById("tabcontentframe").contentWindow;
}

var ids= win._xtable_CheckedCheckboxId();

alert("选中的记录id为:"+ids);

如果需要清空前一次选择的值,需要调用

win._xtable_CleanCheckedCheckbox();

重新加载列表数据:

win._table.reLoad();

-----------------------------E9--------------------------

页面扩展按钮的

打开方式:其他

链接目标来源:手动输入

链接目标地址:

javascript:var ids = ModeList.getCheckedID();

alert("选中的记录id为:"+ids);

如果需要清空前一次选择的值,需要调用

ModeList.clearChecked();

重新加载列表数据:
ModeList.reloadTable();

1.5、获取勾选数据跳转指定页面方法

javascript:
var ids=_xtable_CheckedCheckboxId();
alert("选中的记录id为:"+ids);
window.open('/weavernorth/formmode/batchdownload.jsp?ids='+ids,'_blank');
//alert("选中的记录id为:"+ids); 

1.6、链接目标地址

1、只有在查询列表中使用的按钮才能在代码块写js方法,在链接目标地址中调用对应方法。

2、在显示、编辑、新建页面的按钮需要把方法js登都写在该编辑框内。

image-20210427134122012

1.7、tab页中获取对应卡片的显示模板链接

1317 image-20220824161022987

2、模块基础数据

2.1、模块关联数据查询sql

select a.id,a.formid,a.modename,b.tablename  from modeinfo a,workflow_bill b where a.formid = b.id and a.isdelete=0 order by modename asc

3、彻底删除应用和模块

ecology\WEB-INF\prop\formmode.properties文件中添加
#删除模块功能添加:
canDeleteModeInfo=y
#删除应用功能添加:
canDeleteModeTreeField=y
添加后无需重启服务,即可在对应的模块基本信息和应用树右键出现 【删除】 按钮

4、查询列表

4.1、查询页面把数据id做为参数

/spa/cube/index.html#/main/cube/tree?id=2&xmid=$billid$

4.2、查询列表代码块

<style type="text/css">
span.tag{
      
      
  white-space:nowrap;
  border-radius:3px;padding:1px 5px;margin:0 0 0 5px;font-size:12px;
  color:#888;background-color:#f8f8f8;border:1px solid #ccc;
  display:inline-block;
}
span.t{
      
      background-color:transparent;border:0;}

span.t初级{
      
      color:#fff;background-color:#87d068;border:1px solid #87d068;}
span.t中级{
      
      color:#fff;background-color:#2db7f5;border:1px solid #2db7f5;}
span.t高级{
      
      color:#fff;background-color:#108ee9;border:1px solid #108ee9;}

    #btnDiv1 button,#btnDiv2 button{
      
      
      margin:8px 10px;
    }
    #spanDiv1{
      
      
      width:97%;
      font-size: 14px;
      border-bottom: 1px solid #ccc;
      margin:8px 10px;
      line-height: 1.5;
      padding:5px 0px;
    }
    
</style>
<script type="text/javascript">
jQuery(function($){
      
      
   jQuery(".wea-new-top").after("<div id='btnDiv1'></div>");
   addBtn("btnDiv1","顶部随机弹出message",'showMessage()');
   addBtn("btnDiv1","获取列表选中ID",'getCheckedIDFun()');
   addBtn("btnDiv1","获取列表未选中ID",'getUnCheckedID()');
   addBtn("btnDiv1","清除选中的checkbox",'clearChecked()');
   addBtn("btnDiv1","全选",'setAllChecked()');
   addBtn("btnDiv1","重新加载列表数据",'reloadTable()');
   addBtn("btnDiv1","获取当页表格json数据",'getTableDatas()');
   addBtn("btnDiv1","获取当页表格json数据",'getTableDatasWithSpan()');
   
})

function addBtn(containerid,btnname,clickFun){
      
      
  $("#"+containerid).append("<button type='button' onClick='"+clickFun+"' class='ant-btn ant-btn-primary'><span>"+btnname+"</span></button>");
}


function showMessage(){
      
      
    var num=Math.floor(Math.random()*4+1)
    var msg = "ModeList.showMessage('消息内容')";
    ModeList.showMessage("这是消息", num);
    
  }
  


function getCheckedIDFun(){
      
      
  var ids = ModeList.getCheckedID();
  if(ids==""){
      
      
    ModeList.showMessage("没有选择记录", 2)
  }else{
      
      
    ModeList.showMessage("选择的ID是:"+ids, 4)
  }
}

function getUnCheckedID(){
      
      
  var ids = ModeList.getUnCheckedID();
  if(ids==""){
      
      
    ModeList.showMessage("没有未选中记录", 2)
  }else{
      
      
    ModeList.showMessage("未选择的ID是:"+ids, 4)
  }
}
  
function clearChecked(){
      
      
  ModeList.clearChecked();
  ModeList.showMessage("选中的记录被清除选中了")
}

  
function setAllChecked(){
      
      
  ModeList.setAllChecked();
  ModeList.showMessage("选中的记录都被选中了")
}

function reloadTable(){
      
      
  ModeList.reloadTable();
  ModeList.showMessage("重新加载了列表数据")
}

function getTableDatas(){
      
      
  var datas = ModeList.getTableDatas();
  console.log("当页数据为:",datas);
  ModeList.showMessage("当页数据为请查看console控制台")
}

function getTableDatasWithSpan(){
      
      
  var datas = ModeList.getTableDatasWithSpan();
  console.log("当页数据带显示内容为:",datas);
  ModeList.showMessage("当页数据带显示内容请查看console控制台")
}
</script>

4.3、隐藏头部信息

链接地址增加hidetop=1参数

5、树形

5.1、树的数据限制条件,PARM()取链接地址参数

image-20210427130009758

6、js获取当前日期

//当前日期获取的js方法  yyyy-MM-dd
function formatDate() {
    
          
var date = new Date();
    var myyear = date.getFullYear();    
    var mymonth = date.getMonth()+1;     
    var myweekday = date.getDate();      
    if(mymonth < 10){
    
         
        mymonth = "0" + mymonth;     
    }      
    if(myweekday < 10){
    
         
        myweekday = "0" + myweekday;     
    }     
    return (myyear+"-"+mymonth + "-" + myweekday);      
}  

7、获取表单名称

/**
     * b根据表单建模的模块id
     * 获取对应的表单名称
     * @param formmodeid 模块id
     * @return 表单数据库名称
     */
public static String getFormModeTableByFormId(int formmodeid) {
    
    
    String billTableName = "";
    RecordSet rs = new RecordSet();
    String sql = "select tablename from workflow_bill wb left join modeinfo m on 							wb.id=m.formid where m.id=?";
    rs.executeQuery(sql, formmodeid);
    if (rs.next()) {
    
    
        billTableName = Util.null2String(rs.getString("tablename"));
    }
    return billTableName;
}

8、插入数据,权限重构

/**
     * 将数据插入建模表,并重构权限
     *
     * @param requestid
     * @param uuid
     */
    private void insert2Mode(String requestid, String uuid, String cwczz) {
    
    
        //模块id
        int formmodeid = Integer.valueOf(getPropValue("wn_mbs)", "formmodeid"));
        //对应的表单
        String billtablename = FormModeUtil.getFormModeTableByFormId(formmodeid);
        ModeDataIdUpdate modeDataIdUpdate = new ModeDataIdUpdate();
        ModeRightInfo modeRightInfo = new ModeRightInfo();
        //用户类型
        int usertype = 0;
        //创建人id
        int creater = 1;
        //当前日期
        String currentdate = TimeUtil.getCurrentDateString();
        //当前时间
        String currenttime = TimeUtil.getOnlyCurrentTimeString();
        //插入建模的数据id
        int billid = modeDataIdUpdate.getModeDataNewId(billtablename, formmodeid, creater, usertype, currentdate, 			         	currenttime);
        RecordSet rs = new RecordSet();
        String sql = "update " + billtablename + " set reqid=?,uuid=?,cwczz=? where id=?";
        rs.executeQuery(sql, requestid, uuid, cwczz, billid);
        modeRightInfo.setNewRight(true);
        modeRightInfo.editModeDataShare(creater, formmodeid, billid);
    }

9、建模分组展示

分组列表–【1905版本】

默认增加enableTreeList=y来开启此功能,注意此功能默认为不开启,即默认不可见在weaver\ecology\WEB-INF\prop\formmode.properties文件中加入配置信息:

enableTreeList=y

敲重点!!!
重点:仅本模块创建的浏览框引用到本模块才支持分组列表

猜你喜欢

转载自blog.csdn.net/u010048119/article/details/132139189
今日推荐