About jishuang

该作者尚未填入任何详情
So far jishuang has created 559 blog entries.

app打包资源加密注意事项

app打包过程有一个“资源加密”的选项 勾选了之后是根据/Native/templates/normal/build.properties中resPassword配置的密码进行加密的 默认resPassword是没有配置的随机生成的一个数据,当android和ios同时打包的时候不会有问题 当android和ios分开打包resPassword没有配置随机生成的可能是不一样的,可能会导致运行是乱码 因此android和ios分开打包是需要注意到的/Native/templates/normal/build.properties中给resPassword配置一个固定的值

grid多选data分页记住选择的记录

data分页grid设置多选,默认的切换分码之前页选择的数据不会被记住,如果要记住之前页选择的数据,参考如下实现 1.定义一个data记录选择的数据(本例data的xid是memory),指定义了一个主键字段如下: <div component="$UI/system/components/justep/data/data" autoLoad="true" xid="memory" idColumn="fID" confirmDelete="false" onBeforeNew="memoryBeforeNew"> <column name="fID" type="String" xid="xid1"/> </div> 2.在model的构造函数中定一个实例变量(this.checkRowid)用来存储grid当前操作选中行的id var Model = function(){ this.callParent(); this.checkRowid = ""; }; 3.在grid的onRowChecked事件中判断选择状态向memory这data中插入或者删除数据 Model.prototype.mainGridRowChecked = function(event){ var memeryData [...]

excelImport组件导入时获取excel文件名

平台excelImport组件导入时选择的导入的excel文件名默认是获取不到的,如果需要获取如下操作: 1.修改/UI2/system/components/justep/excel/importExcel.js (1).对getActionParam方法的实现的修改,加上file-name的设置 getActionParam : function(options) { var param = new biz.Request.ActionParam(); var to = this.to; var configParam = '<config use-default="' + (this.useDefault ? "true" : "false") + '" to="' + to + '" [...]

gridSelect的inputFilterable为true下拉区域显示当前选择的数据

gridSelect的inputFilterable属性为true时允许在直接在input框中输入值过滤选择数据 默认的是按照输入的数据模糊过滤的,如果当前选择的数据中不包含输入的数据,下拉区域中就不会显示 如果需要在下拉区域中显示当前选择的数据可以,参考如下修改: /UI2/system/components/justep/gridSelect/gridSelect.js中 把 return (val+'').toLowerCase().indexOf(inputVal.toLowerCase())>=0; 修改为: return (val+'').toLowerCase().indexOf(inputVal.toLowerCase())>=0 ||(val+'').toLowerCase()== self.value.toLowerCase(); 修改后执行tools/dist/dist.bat,注意缓存的问题

单表流程显示3列的向导模板制作

平台默认提供的向导“桌面——流程——单表流程”是2列的形式展现数据,如果要显示3列的方式参考如下: 1.在/UI2/system/templates下创建一个目录,本例是flowFrom3PC 2.把/UI2/system/templates/flowPC/singleProcess目录以及下面的文件复制粘贴到新创建的flowFrom3PC目录中 3.修改/UI2/system/templates/flowFrom3PC/singleProcess/template/singlePro.w文件,添加第三列的配置如下: 4.复制/UI2/system/templates/common下的formView.w、formView.js、formView.css这三个文件到flowFrom3PC下 5.修改/UI2/system/templates/flowFrom3PC/formView.js中的even = i % 2;为even = i % 3; 6.修改/UI2/system/templates/flowFrom3PC/singleProcess/template.config.xml中的“列表视图”的configPage的值,如下: configPage="$UI/system/templates/flowFrom3PC/formView.w" 7.在/UI2/system/templates/biz.templates.xml中添加上模板的配置,如下: 需要注意这里要修改的文件都是复制到新创建的目录下的文件,不是修改原目录下的 用此模板新建的.w如果如下: 可以下载下面的资源解压放到/UI2/system/templates下,然后在/UI2/system/templates/biz.templates.xml中添加上模板的配置就可以使用 flowFrom3PC

动态设置打开功能显示的标题

可以在model的onLoad事件中设置 pc门户: $(".page-title").html("XXX"); pc2门户: $(".x-portal-title-a").html("XXX"); pc3门户: $(".content-wrapper ").children("section.content-header").children("h1").html("XXXX"); XXX就是自己要显示的标题 如果是从url中获取参数设置标题,参数的获取方法如下: this.getContext().getRequestParameter("参数的名字") 在地址栏中可以看出是哪个门户

X5应用热部署细则

添加新功能 直接将新功能的模型资源复制到运行环境相应的目录下即可. 删除功能 删除功能相应的模型资源即可. 更新功能 更新业务模型(BIZ) 第一步:更新相应的业务模型文件: 对于java文件,不仅需要更新java源码,还需要更新相应的classes;非java文件直接更新即可。 第二步:标识更新的模块列表 在BIZ目录中添加一个.modified文件,文件的内容记录需要更新模块列表,以换行进行分隔; 模块命名规则: a. java文件所在的模块:dsrc或src的父目录; 例如BIZ模型中"/SA/task/logic/code/dsrc/Task.java"对应的模块是"/SA/task/logic/code"; b. 非java文件所在的模块:当前目录; 例如BIZ模型中"/SA/task/workTask/workTask.process.m"对应的模块是"/SA/task/workTask"; 更新界面模型(UI2) W和JS文件更新:将服务器上的.w和js, .release(如果有的话)和.cache文件删除,复制最新的.w和js文件到服务器上,并删除浏览器的缓存 JAVA文件更新: 更新java源码和相应的classes文件;同时在UI2下添加.modified文件,标识更新过哪些模块下的java(模块命名规则与BIZ层类似,唯一的区别界面模块必须以/UI2开头); 说明:修改BIZ/system的资源以及UI2下功能菜单等xml配置文件必须重启tomcat 5.3的版本更新功能页面(.w和js)和菜单文件可以如下操作: 第一步:复制最新的功能页面(.w和js)和菜单文件到服务器上 第二步:修改版本号(修改的是version节点中的版本号) 方案一:修改UI2下自己应用的config\application.xml中的版本号 方案二:修改的是model同级的conf\server.xml中版本号 第三步:在UI2下添加.modified文件,标识更新过哪些模块 第四步:浏览器刷新或者了关了浏览器重新打开 5.3.6及其之后的版本更新功能还可以如下操作: 更新业务模型(BIZ) 第一步:更新相应的业务模型文件 对于java文件,不仅需要更新java源码,还需要更新相应的classes;非java文件直接更新即可。 第二步:浏览器中运行 [...]

打开修改任务的执行者时过滤组织机构数据

process组件提供的有modifyExecutor()修改任务的执行者 调用这个方法会弹出一个显示组织机构的对话框,默认加载的组织机构中所有的组织,如果要设置过滤条件可以在model的onload事件处理,具体如下: Model.prototype.modelLoad = function(event) { //修改执行者对话框中设置过滤数据 var process = this.comp("process");//获取process组件 process._getModifyExecutorDialog().done(function(dialog) { dialog.on("onOpen", function(event) { dialog.set({filter:"SA_OPOrg.sFName like '%起步软件%'"}); }) }) };

代码控制启动流程

Java中启动流程 需要引入 import com.justep.system.process.ProcessControl; import com.justep.system.process.ProcessUtils; 方法一介绍 List<Map<String, String>> startProcess (String processFullName, String name, String sData1, String executor) 返回的是待办任务的信息,每个待办任务是列表中的一项,每项是一个Map,包括process, activity和task信息。 参数说明: String processFullName 被启的流程的全路径 String name 流程实例的标题 String sData1 关联的业务数据 String executor 流程实例以及第一个待办任务的执行者FID,当这个值为空时,优先取当前用户有权限的人员成员,否则随机获取当前用户的一个人员成员 [...]