Chinaunix

标题: 在iMatrix平台中如何设置表单显示标签(grid:formView) [打印本页]

作者: imatrix开发平台    时间: 2014-06-16 11:11
标题: 在iMatrix平台中如何设置表单显示标签(grid:formView)
本帖最后由 imatrix开发平台 于 2014-06-16 11:11 编辑

表单显示标签(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 void saveOrder(Order order){
orderDao.save(order);
                List<OrderItem> items=new ArrayList<OrderItem>();
List<Object> objects=
ParseJsonUtil.getFormTableDatas(OrderItem.class); //保存子表实体
                for(Object objbjects){
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:formView code="ES_ORDER_FORMVIEW" entity="${order}"></grid:formView>
保存前调脚本:
var cansave = getSubTableDatas("expenseReportForm";
返回值cansave为true时,表示子表数据获取成功,继续执行保存;
参数说明:
expenseReportForm为提交表单form名称;
后台获取子表数据:
OrderManager中saveOrder方法中:
public void saveOrder(Order order){
                orderDao.save(order);
                List<OrderItem> items=new ArrayList<OrderItem>();
                List<Object> objects=JsonParser.getFormTableDatas(OrderItem.class);
                for(Object objbjects){
                        OrderItem orderItem=(OrderItem)obj;
                        orderItem.setOrder(order);
                        orderItemDao.save(orderItem);
                        items.add(orderItem);
                }
                order.setOrderItems(items);
        }


关于标签更详细的资料可以到官网下载:http://www.imatrix.net.cn
   





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2