About wex5

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

访问session

import javax.servlet.http.HttpSession; 获得session HttpSession session = ContextHelper.getSessionContext().getSession(); 赋值 session.setAttribute("loginName", pn); 取值 String value = (String) session.getAttribute("loginName"); 删除 session.removeAttribute("loginName"); 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

模仿queryAction

如果queryAction不能满足获取数据的需求,就需要自定义action,在action中仅仅返回table,再通过data组件的loadXML方法装入数据,和执行queryAction的效果是不同的,原因是还需要进行一些设置,按照下面的方法进行设置,可以获得和queryAction同样的效果。 1  设置rowid </pre> Table table = KSQL.select("select X5_GoodsType.* from X5_GoodsType X5_GoodsType",null, "/x5demo/rich/data", null); return table; <pre> 仅仅这样写,放入data后,grid会把fid列显示出来,此时使用data.getID(),得不到值,说明系统不知道fid是rowid,需要增加一句代码。如下: Table table = KSQL.select("select X5_GoodsType.* from X5_GoodsType X5_GoodsType",null, "/x5demo/rich/data", null); //设置table的rowid属性 table.getProperties().put(Table.PROP_NAME_ROWID, "X5_GoodsType"); return table; [...]

WeX5自动编号相关函数和用法

1 WeX5为自动编号提供了一组函数 Integer nextSeq(String key); //按照关键字产生一个自动递增的整型序号 String nextSeqString(String key, String format); //按照关键字和序号格式,产生一个自动递增的组合编号 Integer tempNextSeq(String key); //按照关键字产生一个临时的递增整型序号 String tempNextSeqString(String key, String format); //按照关键字和序号格式,产生一个临时的递增组合编号 String createSerialNumberByCurrentDate(); //产生一个'yyyyMMdd00000'格式的递增组合编号 2 技术实现 所有自动编号的产生,其实依赖于数据库中的SA_KVSequence这张表,这张表只有两个字段(k-string, v-integer)。 Integer nextSeq(String key); //按照关键字产生一个自动递增的整型序号 这个函数会在SA_KVSequence表中创建一行数据k=key、v=1,每次执行v=v+1,获取v做为返回的递增整型序号(1,、2、3、4、...) String [...]

新增数据时,数据库中产生连续不间断的序号

1  找到 2  点开动作设置,找到对应的save***Action 3  点执行前事件后边的编辑,输入如下代码 public class GoodProcess { public static void goodProcessBeforeSaveGO_goodAction() { //获得table参数 Table table = (Table)ContextHelper.getActionContext().getParameter("table"); //获得所有新增的行 Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.NEW ); SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy"); String date = [...]

截获数据库异常

在界面上保存数据时,由于不满足数据库的约束,数据库会抛出异常,x5会在界面上提示执行sql出错,在控制台里面打印出全部错误信息,包括数据库抛出的异常,下面介绍一下截获数据库异常,重新抛出异常的方法 保存数据的saveAction不能使用平台提供的bizSaveProcedure,而是需要自己写一个新的procedure,这个新的procedure可以作为saveAction使用的公共procedure。 这个新的procedure对应的java代码如下,可以在里面再添加其它的数据库异常 public static int saveER_WPXX(List insertRange,List deleteRange,List updateRange,String concept,String dataModel,String fnModel,String readOnly,String notNull,Table table){ try { return BizData.save(table, concept, insertRange, deleteRange, updateRange, readOnly, notNull, dataModel, fnModel); } catch (BusinessException e) { e.printStackTrace(); [...]

axis使用WSDL2Java方式调用WebService

1  WSDL2Java 基于x5_biz_integration案例,不清楚这个案例的请先看《系统集成》培训视频 1.1 切换到java视图 1.2 右键菜单->运行方式->运行配置 1.3 左边选择"应用程序",新建 1.4 主要->项目:x5_biz_integration->main类:WSDL2Java 1.5 自变量->程序自变量:-o src -p demo http://localhost:8080/axis/Test.jws?wsd -o 指定输出路径 src -p 指定包名 demo 最后指定wsdl的文件,可以是本地文件或远程URL 1.6 运行 1.7 刷新src目录,会发现已经自动生成java接口类 2  调用 回到main类的入口main方法,用以下代码做调试 demo.TestServiceLocator service = [...]

WeX5集成ActiveMQ+WebSocket实现消息推送

1  首先下载并安装ActiveMQ http://www.apache.org/dyn/closer.cgi?path=/activemq/apache-activemq/5.9.0/apache-activemq-5.9.0-bin.zip 1)解压后,将webapps-demo目录下的demo复制到webapps目录下 2)执行bin/activemq.bat,启动ActiveMQ服务 3)打开http://localhost:8161/demo,运行自带的Web sockets example进行测试 2  在X5中创建应用demo/activeMQ 1)编写用于发送ActiveMQ消息的动作 下载http://central.maven.org/maven2/org/apache/activemq/activemq-all/5.9.0/activemq-all-5.9.0.jar 放入/BIZ/demo/activeMQ/logic/code/lib文件夹中 编写动作代码(动作模型文件参见/BIZ/demo/activeMQ/logic/action/activeMQ.action.m) import org.apache.activemq.transport.stomp.StompConnection; public class ActiveMQ { public static void activeMQSendMessage(String message) throws Exception { StompConnection conn = new StompConnection(); try [...]

BusinessServer中调用biz-client传Table参数

基本思路: 将BusinessServer的Table对象序列化XML或JSON格式数据,调用biz-client的api请求另一个BusinessServer. 代码类似: 1  发送端的代码 private static void test() { String query = "select p, p.sName, p.sPhoto from SA_OPPerson p where p.sCode='test'"; Table table = KSQL.select(query, null, "/system/data", null); table.getProperties().put(Table.PROP_NAME_ROWID, "p"); try { Iterator [...]

模块引用

最常用的两种模块引用 1  ksql里面需要join其它模块下的概念——打开本模块data目录中的model.config.xml文件,include其它模块的data目录 2  引用其它模块下的action——打开本模块process目录中的model.config.xml文件,use其它模块的logic/action目录 引用Fn 1  在关系默认值中使用其它模块的Fn——打开本模块ontology目录中的model.config.xml文件,use其它模块的logic/fn目录 2  在条件表达式中使用其它模块的Fn——打开本模块process目录中的model.config.xml文件,use其它模块的logic/fn目录 引用java 在java文件中使用其它模块的静态java中的方法——打开本模块Logic/code目录中的model.config.xml文件,use其它模块的Logic/code目录 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

树、主从的级联删除

1、正常建概念(只建需要存数据库的字段)、映射、生成数据库表 2、需要级联删除时,树添加“子节点”关系,主从的主表添加“明细”关系,在[关系]里面设置互逆、是否单值 3、相关关系的类型改为概念类型,多值关系的级联删除设置(a、删除 b、清空关联),树需要选择"是否树型" 说明 whole-part的值具体是: composition是级联删除 aggregation是级联设空即删除父的时候子没删但是把外键的值设置为空了 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443