grid中列内容多是如何用…显示

grid中列内容多时默认是在一行显示的,不太美观 在grid上提供了onCellRender 单元格显示渲染事件,我们可以通过这个事件使内容后面用...显示,如下: 把具体的内容给div显示,在div中通过样式控制显示... Model.prototype.grid1CellRender = function(event) { if (event.colName == "fWB" && event.colVal != undefined) {//判断是不是需要换行显示的这列并且列是有值的 event.html = " <div style='overflow: hidden;white-space: nowrap;text-overflow: ellipsis;'>" + event.colVal + "</div> ";//在div中显示列的值event.colVal } }; [...]

attachmentPC组件上传附件列表展现

attachmentPC默认不是把上传的附件以列表的形式展现,如果需要列表显示展现,如下修改,使用的时候可以直接赋值到自己的.w中,然后把bind-ref改为自己的关系 <div component="$UI/system/components/justep/attachment/attachmentPC" access="duud" xid="attachmentPC4" bind-ref="$model.mainData.ref(&quot;fFJ&quot;)"> <div class="x-attachment-pc" xid="div68"> <div class="x-attachment-content x-card-border" xid="div69"> <div class="x-doc-process" xid="div70"> <div class="progress-bar x-doc-process-bar" role="progressbar" style="width:0%;" xid="progressBar4"/> </div> <div class="x-attachment-cell x-attachment-item" data-bind="style:{display:$state.get() == 'upload' &amp;&amp; $access.get() % 512 &gt;= [...]

java中手动判断某功能是否有权限

平台默认提供了checkPermissionAction(验证是否拥有权限)这个action 如果需要通过判断某具体的功能是否有权限对页面进行控制,可以自己在java中调用checkPermissionAction,具体的参数设置参考如下: public static void testPermission(){ //定义一个Map遍历把需要判断的功能的process和activity放到Map中,可以定义多个Map放不同的功能 Map<String, String> funcParams = new HashMap<String, String>(); funcParams.put("process", "/appdemo/test/process/button/buttonProcess"); funcParams.put("activity", "mainActivity"); //定义checkPermissionAction需要的list参数,把功能的Map添加多list中 List<Map<String, String>> actionParam = new ArrayList<Map<String, String>>(); actionParam.add(funcParams); //定义调用action的ActionUtils.invokeAction这个方法进行传参的Map参数,把List添加到Map中 Map<String, Object> params = new HashMap<String, [...]

判断action动作权限控制按钮只读

平台默认在$UI/system/lib/base/bizUtil中提供isDisabledAction (ModelBase model, String action) 判断当前动作是不是禁用的(即没有权限的保护动作) 当需要通过action权限控制按钮等组件是否可用时,需要如下步骤 1.在process文件中添加动作设置时访问权限为protected 2.如果页面中有bizData不用进行引用,如果没有bizData需要在js中进行引用 var biz = require("$UI/system/lib/biz"); 3.在按钮的bind-disable上设置表达式biz.Util.isDisabledAction($model, 'xxxAction')   如果需要分配action的权限,在“组织权限——角色管理”功能中,功能列表中找到对应的功能设置动作权限

js中手动判断某功能是否有权限

平台默认提供了checkPermissionAction(验证是否拥有权限)这个action 如果需要通过判断某具体的功能是否有权限对页面进行控制,可以自己在js中调用checkPermissionAction,具体的参数设置参考如下: Model.prototype.button6Click = function(event) { var process = "/appdemo/test/process/attachment/attachmentProcess";//要判断的功能的process路径 var activity = "mainActivity";//要判断的功能的activity var param = new biz.Request.ListParam();//定义checkPermissionAction需要的list参数 var item1 = new biz.Request.MapParam();//定义map参数,把要判断的proces和activity放到Map中 item1.put("process", new biz.Request.SimpleParam(process, XML.Namespaces.XMLSCHEMA_STRING)); item1.put("activity", new biz.Request.SimpleParam(activity, XML.Namespaces.XMLSCHEMA_STRING)); param.add(item1);//把Map参数添加到list中可以添加多个功能的Map var [...]

记录操作日志时自己扩展日志数据

在定义的action中勾选了启用日志,那么在操作这个action时,平台就会向日志表SA_Log中插入一条操作记录 如果在记录操作日志的时候需要自己向SA_Log的扩展字段或者自己的表中插入数据,可以用拦截器实现 拦截器可以在/BIZ/system/config/interceptor.config.m中定义,推荐用扩展空间修改这个文件 需要注意的是自己加的拦截器定义信息要放到平台默认的logAfter这个下面,便于在自己的拦截器中获取平台默认生成的日志记录的信息 具体参考如下: 1.interceptor.config.m中配置拦截器 <item name="selfLog" value="/demo/misc/logic/code,LogAction,after" /> name可以自己取 value属性值,第一个逗号前面的是自己定义的拦截器的java所在的模块路径 第二个逗号前面的是定义的拦截器的java的类,(需要注意的是如果是在src下定义的那么要在java类前面添加包名,如com.justep.system.interceptor.LogAfter,其中com.justep.system.interceptor包名,LogAfter是类名) 最后的after或者是before是指在action执行前或者执行后执行这个逻辑 2.java中的定义 import com.justep.model.Action; import com.justep.system.action.Interceptor; import com.justep.system.context.ActionContext; import com.justep.system.context.ContextHelper; import com.justep.system.data.KSQL; import com.justep.util.Utils; public class LogAction implements Interceptor [...]

find的数据给另一个data展现

data中提供的有find (List fields, List values, boolean first, boolean caseInsensitive, boolean partialKey, boolean all) 数据查找,根据列和值匹配进行数据查找,可以匹配多列根据列和值匹配进行数据查找,可以匹配多列 返回的是List行对象数组 如果需要把查找出来的数据loadData给其他data展现,需要对数据进行处理不能直接展现,如下: Model.prototype.button6Click = function(event) { var bizData = this.comp("bizData1"); bizData.refreshData(); var findrows = bizData.find([ 'fName' ], [ 'test' ], [...]

java中直接修改Table中的数据进行保存

在java中可以通过KSQL.select或者SQL.select返回Table,可以直接修改Table中的数据,然后保存,数据库中的数据就会更新 参考如下: public static void table(){ String ksql = "select rq.* from AP_RQ rq where rq.fName = 'noticeTest'"; Table table = KSQL.select(ksql, null,"/appdemo/test/data", null); Iterator<Row> it = table.iterator(); while (it.hasNext()) { Row row = [...]

tools\compile\compileUI.bat指定模块编译

平台提供的tools\compile\compileUI.bat可以对UI2下的资源进行编译,使java文件生成对应的class,.w生成对应的.release和.cache 在编译的时候默认是整个UI2下的都编译,如果需要局部编译某个模块可以修改compileUI.bat中的配置COMPILE_TARGET_PATH的值 如下: set COMPILE_TARGET_PATH=/UI2/demo 就只会编译UI2下的demo

onCellRender中生成的按钮动态隐藏

onCellRender中是控制在列上生成的按钮,如果每列就显示一个按钮,可以直接控制列的显示和隐藏,可以参考http://doc.wex5.com/comps-datatables-grid/#3.1 如果不通过列的显示和隐藏控制,直接获取button节点控制,可以在定义button是加一个唯一的class属性值,然后通过class获取button,如下: var window = this.getIDByXID("window"); $("#"+window).find(".btnDel").hide();//隐藏 //$("#"+window).find(".btnDel").show();//显示 this.getIDByXID("window");中的window是.w中window组件的xid btnDel是按钮定义时设置唯一的class 如果数据多分页的情况下用获取button节点控制隐藏和显示的时候需要在data的刷新事件中进行处理