报表动态设置导出的名字

report组件提供的有setReportName(string 报表名称) 设置报表名称,作为导出后的文件名 可以在model的onload事件中通过this.comp("report的xid").setReportName("要导出的名字");这样在导出的时候就会用设置的名字 注意设置的名字中不需要带后缀,直接写后缀前面的就可以 如:this.comp("report的xid").setReportName("test");

不同的人登录打开不同的首页

V3.3以及之后的版本要实现不同的人登陆后打开不同的首页可以修改/UI2/portal/base/base.js中 Model.prototype.createFunctionTree = function() {这个函数的实现的代码实现 1.在这个函数的实现中找到pageMappings[mainPageKey] = param2pageMapping(this._cfg.main); 在这句的前面加上人的判断并设置不同的首页如下: var pageMappings = {}; if (this.getContext().getCurrentPersonMemberFID() == "/ORG01.ogn/9B38128D8B33435DBB6781B6E04AE7FE@ORG01.psm") { this._cfg.main.url = "$UI/portal/sample/main/main.w"; }else{ this._cfg.main.url = "$UI/portal/pc/main/main.w"; } pageMappings[mainPageKey] = param2pageMapping(this._cfg.main); 2.在这个函数的实现中找到this.shellImpl.addPageMappings(pageMappings);在这句代码的前面加上 this.shellImpl.pageMappings = {}; [...]

grid中直接显示附件(非attachmentSimple)名并点击下载

V3.5之后的版本grid的colunm上放了附件组件后可以自己显示附件名 如果列设置的可编辑模式点击后会显示附件组件,可以通过组件操作附件;如果列是不可编辑的点击名字要显示下载需要如下处理: 1.在grid的onCellRender事件中判断是附件这列并且有值时解析json数据获取文件名等相关的信息,然后用a标签显示 2.下载附件可以在a标签的onClick中调用函数实现 onCellRender中的实现: Model.prototype.grid1CellRender = function(event) { if (event.colName === "fFJ" && event.colVal !== undefined) {//判断是附件这列并且有值 var jsonList = eval("("+event.colVal+")");//把值转换为json对象 var html = ""; if (jsonList.length > 0) { for (var i [...]

js动态控制只读

组件关联了data在控制只读时推荐用data的规则去控制 需要动态控制只读的时候可以在js中定义函数,然后在规则中用$model调用函数,如果要通过当前计算行的数据判断,可以给函数定义参数,在规则中调用用$row做参数,把当前计算行传过去进去取值判断 如下:判断列fName的值为back时控制fCode不能编辑 1.js中定义函数: Model.prototype.fCodeReadonly = function(row) { var fName = row.val("fName");//通过传的row获取fName的值 if (fName == "back") return true; else return false; } 2.规则中调用

在process文件的流程启动后onAfterStart中获取task

流程启动的时候没有传task,所以不能像在流转后onAfterAdvance中获取task一样用ProcessUtils.getProcessContext().getTask().getId()获取 流程启动后会在返回结果中有task,所以可以在onAfterStart中从action的返回结果中获取,具体如下: public static void flowProcessAfterStart() { List<Map<String, String>> list = (List<Map<String, String>>)ContextHelper.getActionContext().getActionResult(); for(Map<String, String> map: list){ System.out.println(map.get("task")+"输入生成的任务ID"); } } 如果要在启动后修改任务名称可以通过上面的获取到task的值(就是SA_Task中sID的值),然后用ksql或者sql去修改SA_Task中sName的值

attachment(非attachmentSimple)相关的组件点图标调用自己的js方法

平台默认的attachment(非attachmentSimple)相关的组件点图标调用的是$model.previewOrRemoveItem.bind($model)打开附件查看 如果要调用自己当前.w对应的js中的方法,可以如下修改 $model.getModel().preview.bind($model.getModel(),$object,$model) 其中preview是js中的函数名 attachment组件js文件中定义如下: Model.prototype.preview = function(event, owner) { var docPath = event.docPath.get(); var docID = event.docID.get(); var docName = event.docName.get(); var fileID = event.fileID.get(); if (owner.$state.get() == 'upload' && owner.$access.get() % 4 [...]

为什么有的模块没有分配授权运行时功能树中可以显示出来

在UI2应用模块的config目录XXX.function.xml菜单文件中有展现类型的设置 可以设置为无、solid、hide 设置无需要分配了功能权限才可以功能树显示的 设置为solid不分配功能权限就可以在功能树中显示,但运行时可能会提示没有权限 设置为hide分配功能权限了功能树也不会显示,但是有权限运行,如流程后续环节的页面不需要在功能树中显示从待办任务中可以打开 如果有需求所有人不需要分配功能权限就在功能树中就可以显示并操作,需要如下设置 1.process文件中设置类型为SYSTEM 2.XXX.function.xml菜单文件中展现类型设置为solid