表单显示标签(grid:formView)
1.1 表单标签基础用法:
1. 首先在【系统元数据管理】--【表单管理】--【数据表管理】中录入数据表,并且启用该数据表,该数据表一旦启用会在【表单管理】中生成一条对应该数据表的表单数据。然后在此表单数据中增加表单信息。(具体操作请参考”iMatrix平台开发手册-功能”)如下图所示:
2. 在jsp页面中引入
<script src="${resourcesCtx}/widgets/validation/dynamic.validate.js"type="text/javascript"></script>
和
<grid:formView code=” ES_ORDER” entity =”${entity}”></grid:formView>
参数说明:
code:必填。表单编号,【系统元数据管理】--表单管理中定义的表单的编号。
version:可选。表单的版本。默认为启用的表单的最高版本。
collection:可选。集合。例如订单和商品之间,如果没有配关系,商品中只是保存了订单的id,则需要通过订单id获得商品列表;如果配了关系,则不需要此参数,通过entity即可得到商品列表。
entity: 必填。当前表单实体。
页面如下图所示:
3. 若该表单中含有标准列表,保存该表单前,请先调用iMatrix.getSubTableDatas(formId);否则不用执行此步骤。
formId:提交的表单的id
4. 若该表单中含有标准列表,请执行以下操作,否则不用执行此步骤。
Java的service中,调用JsonParser.getFormTableDatas(Class class);class:为子表实体对应的类,返回子表实体集合,如下:
public voidsaveOrder(Order order){
orderDao.save(order);
List<OrderItem> items=new ArrayList<OrderItem>();
List<Object>objects=
ParseJsonUtil.getFormTableDatas(OrderItem.class); //保存子表实体
for(Object obj:objects){
OrderItem orderItem=(OrderItem)obj;
orderItem.setOrder(order);
orderItem.setCompanyId(contextService.getCompanyId());
orderItem.setCreatedTime(new Date());
orderItem.setCreator(contextService.getUserName());
orderItemDao.save(orderItem);
items.add(orderItem);
}
order.setOrderItems(items);
}
1.2 表单页面主子表的使用
以demo中订单主子表中表单标签为例:在【系统元数据管理】à【表单管理】对应表单中画表单,添加标准列表控件,设置属性值:
1.2.1 属性说明
对应字段:选择子表对应的字段,即主表中配置子表关系的字段;
对应列表:应选择子表在列表管理中对应的列表:此列表要设置成可编辑的;
--属性设置:
1.2.2 页面使用
在新建表单页面上使用grid:formView标签,会自动把“订单项”这个控件解析成grid:formGrid列表;
主子表都在表单中,只需使用表单标签:
<grid:formViewcode="ES_ORDER_FORMVIEW"entity="${order}"></grid:formView>
保存前调脚本:
varcansave = getSubTableDatas("expenseReportForm");
返回值cansave为true时,表示子表数据获取成功,继续执行保存;
参数说明:
expenseReportForm为提交表单form名称;
后台获取子表数据:
OrderManager中saveOrder方法中:
publicvoid saveOrder(Order order){
orderDao.save(order);
List<OrderItem> items=newArrayList<OrderItem>();
List<Object>objects=JsonParser.getFormTableDatas(OrderItem.class);
for(Object obj:objects){
OrderItem orderItem=(OrderItem)obj;
orderItem.setOrder(order);
orderItemDao.save(orderItem);
items.add(orderItem);
}
order.setOrderItems(items);
}
关于标签更详细的资料可以到官网下载:http://www.imatrix.net.cn
如有使用iMatrix平台问题请登录iMatrix平台论坛咨询:
http://bbs.imatrix.net.cn/forum.php?mod=forumdisplay&fid=37
或者加入QQ群307599527