打印功能教程1、建立资源表 1、要求建在流程信息这个文件夹下面。名称就是原功能名称+采购申请流程信息,编码就是原功能名称+OA_LCSP_CGSQ_LC
2、利用表辅助直接导入字段,选择文件签批那个表来导入字段。
全选,然后把外键这个字段后面的全部删掉,点击确定
保存,应用。 截止到目前为止,表创建成功。 2、子系统创建子功能集合找到对应功能,添加集合。 (注意:项目计划这部分,分类比较混乱,建议先将计划这部分按照显示的功能菜单进行分类,视频教程也要加进去,然后再创建子功能集合)
3、修改该子功能集合的配置1、双击打开该子功能集合,排序,直接复制粘贴下面这句话 ORDER BY LC_SPSJ ASC
2、调整列表,除了圈起来这几个,剩下全部隐藏。
4、在主表上添加子功能集合1、主表功能添加子功能集合
2、配置子功能集合:子功能集合编码,LC_WJ 同时复制粘贴关键信息:childfuncfield_3,这
个编码复制存下来,一会要用
3、添加分组框,放在最后,名字都改成:打印流程,只读。
5、按钮配置,添加打印按钮记得点击授权。
6、为按钮增加JS事件1、在单击这里,先删除所有,再复制粘贴下面的代码:
2、代码中有一处需要修改,即将获取子功能集合这个名字改成刚才让你保存的那个名字。位置如下图所示:
代码如下: function(btn,event,eOpts){
/**
* 平台提示,不用刻意随时删除这段注释.
* var func = JE.getFunc('功能编码'),//得到功能对象
* kqtree = func.treeview,//得到快速查询树对象
* mainRecord = func.getParentData();//得到父亲功能对象
* var formRecord = func.getFormData();//如果是表单按钮就可以得到本功能表单里的数据
* var fieldValue = formRecord.fieldCode;
* var form = func.formview;//得到表单对象
*/
//获取主表单信息
var zhuForm=btn.up("jeformview");
var zhuTableName=zhuForm.funcData.info.tableName;//主表名
var zhuPkName=zhuForm.funcData.info.pkName;//主键名
var zhuPkValue=zhuForm.getValue(zhuPkName);//主键
try{
//获取字功能集合信息
var childFunc = zhuForm.down("childfuncfield[name=childfuncfield_4]");//获取子功能集合
var grid = childFunc.grid;//子功能集合
var funcCode=grid.funcData.info.funcCode;//子功能名称编码
var tableName=grid.funcData.info.tableName;//子功能表名
var pkName=grid.funcData.info.pkName;//子功能主键名
//通过外键获取该表单流程信息
var datas=JE.ajax({
url:"/je/load",
params:{tableCode:tableName,
whereSql:"and LC_WJ='"+zhuPkValue+"'"}
}).rows
//根据主键删除该表单下的流程信息
if(JE.isNotEmpty(datas)){
for(var i=0;i<datas.length;i++){
var data=datas;
var remove=JE.ajax({
url:"/je/doRemove",
params:{
tableCode:tableName,
ids:data[pkName]
}
})
}
}
//从流程历史中获取主表单流程信息
var dataObjs = JE.ajax({
url: '/je/jbpm/processInfo/loadProcessHistory',
params: {
tableCode:zhuTableName,
pkValue: zhuForm.getValue(zhuPkName)
}
});
//将流程信息塞进子功能集合同时保存到数据库中
if(JE.isNotEmpty(dataObjs)){
for (var i = 0; i < dataObjs.length; i++) {
var comment='';
var data=dataObjs;
var signComments='';
if(data.nodeType == "countersign"){//会签
var commentDatas=JSON.parse(data.comments);
for(var j=1;j<commentDatas.length;j++){
var cdt=commentDatas[j];
signComments += cdt.user+":"+cdt.msg+"</br>"
}
comment=signComments;
}else if(data.nodeType=="batchtask"){//多人审批
var commentDatas=JSON.parse(data.comments);
for(var j=0;j<commentDatas.length;j++){
var cdt=commentDatas[j];
signComments += cdt.assgine+":"+cdt.msg+"</br>"
}
comment=signComments;
}else{
comment=data.comments;//审批意见
}
//循环赋值
//往前端表格塞值
var item=grid.funcData.getDefVals();
item.LC_WJ=data.pkValue;//形象进度_外键ID
item.LC_JDMC=data.nodeName;//节点名称
item.LC_ZXR=data.assignee;//执行人
item.LC_SPYJ=comment;
item.LC_CZ=data.transName;//操作
item.LC_ZT=data.statusName//状态
item.LC_JSSJ=data.startTime;//接受时间
item.LC_SPSJ=data.endTime;//审批时间
item.LC_HS=data.durationDesc;//耗时
grid.getStore().add(item);
//保存数据库中
var save=JE.ajax({
url:"/je/doSave",
params:{tableCode:tableName,
funcCode:funcCode,
funcEdit:true,
LC_WJ:data.pkValue,//形象进度_外键ID
LC_JDMC:data.nodeName,//节点名称
LC_ZXR:data.assignee,//执行人
LC_CZ:data.transName,//操作
LC_SPYJ:comment,//审批意见
LC_ZT:data.statusName,//状态
LC_JSSJ:data.startTime,//接受时间
LC_SPSJ:data.endTime,//审批时间
LC_HS:data.durationDesc//耗时
}
})
}
}
}catch{
}
}
7、配置打印表单1、点击表单配置里面的打印配置
2、启动打印按钮,开始画打印表单 3、第一行改成:ERP管理系统+功能名称+表单(ERP管理系统文件签批表单) 4、单击左侧名称则直接显示名称,不需要复制粘贴。点击啊左侧编码,则相当于将该字段拖了过来。 5、这个配置自己觉得怎么好看就怎么画,基本上要把原表单上所有信息都涵盖进去
8、测试打印功能1、先点击左侧打印流程按钮,此时子功能集合出现下列信息,再点击右侧打印按钮。 2、出现如下信息,再点击打印按钮。
3、能正常预览,存为PDF后格式没有问题即可。
9、打印功能配置完成
|