如何设置iMatrix平台中列表标签(gridjqGrid)的查询


1        查询设置

.1   自定义查询

如果对系统自动生成的查询布局不满意,可以自己定义查询的布局:

以demo中产品(自定义查询)为例说明:

1.  先在【系统元数据管理】à【列表管理】修改选中列表,在基本信息中设置“是否启用查询”为自定义查询,保存;

2.  列表所在页面中添加查询区域,如下:

<divid="customSearchZoon" style="display: none;padding:6px10px;">

<table id="parameter_Table"class="fix-searchtable" style="width:100%;">

  <tr>

      <tdclass="content-title" align="right">产品编号</td>

      <td>

          <input class="searchInputClass"name="productNumber"/>

      </td>

      <tdclass="content-title" align="right">产品名称</td>

      <td>

          <input class="searchInputClass"name="productName"/>

      </td>

      <tdclass="content-title" align="right">产品数量</td>

      <td>

          <input class="searchInputClass"name="amount"/>

      </td>

      </tr>

</table>

</div>

Input框中name值域实体字段对应,里边样式是默认样式,可以手动写样式添加,每一行可以自由设置显示字段个数,div和table的id固定,不能自定义改变。

1.2   查询事件

列表中普通查询和高级查询可添加事件,在【系统元数据管理】——【列表管理】,选择相应列表,修改基本信息,查询设置中可添加事件:单击事件、下拉框切换、失去焦点事件,如图:

设置完后,需在列表所在页面添加脚本,方法名命名规则为“字段名”+QueryClick、“字段名”+QueryChange、“字段名”+QueryBlur,假设字段名为attrName,则事件为如下:

function attrNameQueryClick(id){}

      function attrNameQueryBlur(id){}

      function attrNameChange(id){}

1.3   列表的多表查询

普通列表中取得数据一般是根据HQL查询,如果列表数据需要从多张数据表中取,HQL满足不了,则需要使用SQL的方式取数据,使用SQL不能绑定实体,一般是一对一或者多对一的形式,需要手动在后台拼sql,以demo中“订单组合列表”为例,方法如下:

1. 在【系统元数据管理】à【数据表管理】中新建表ES_ITEM_COMBINE_ORDER如图4-1:

说明:图4-2基本信息中,“数据库表名称”自己定义,不对应数据库中实际表名,“实体类名”也是自己定义。

     图4-3中orderItem是订单字表的别名,自己定义,o是订单主表别名,orderItem.product_name  是子表中字段,product_name对应数据库中表的实际字段名称。

图4-1

图4-2

图4-3

1.  列表中标签如下

<grid:jqGridgridId="orderItemList"url="${ctx}/order-item/order-combine-data.htm"code="ES_ITEM_COMBINE_ORDER"pageName="combinePage"></grid:jqGrid>

2.  后台action

@Action("order-combine-data")

publicString combineData(){

     combinePage= orderItemManager.getCombinePage(combinePage);

     renderText(PageUtils.pageToJson(combinePage).replace("orderItem.id","id"));       

return null;

}

注意:combinePage定义成object:private Page<Object> combinePage;

     需要在转json时添加.replace("orderItem.id", "id")),如果不替换jQuery('#orderItemList').getGridParam('selarrrow')取得的是行序号,而不是对应记录的id。

3.  dao中:

public Page<Object>getCombinePage(Page<Object> combinePage) {

     StringpartSql =ApiFactory.getMmsService().getColumnsByCode("ES_ITEM_COMBINE_ORDER");

     StringBuildersql = new StringBuilder("select ");

     sql.append(partSql);

     sql.append("from ES_ORDER_ITEM orderItem ");

     sql.append("leftjoin ES_ORDER o on orderItem.FK_ORDER_ID = o.id ");

     sql.append("whereorderItem.company_id=? ");

     returnthis.searchPageBySql(combinePage, sql.toString(),ContextUtils.getCompanyId());

}

说明:ES_ITEM_COMBINE_ORDER对应的是列表管理的编码,orderItem和o是上述(1)中自己定义的别名!

如果列表没出来,调试一下看后台是否报错,如果报错将sql语句在数据库中执行查看是否有误!

4.       列表如下:


1.4    子表查询

列表页面为主子表形式时,若想要根据子表的字段进行查询,请按照以下步骤进行数据的设置:

第一步:在【系统元数据管理】——【数据表管理】中选择列表页面主表的数据表进行修改。

第二步:在【字段信息】中添加子表的字段信息,并且保存。如图:


第三步:在【列表管理】——【字段信息】中用户可根据自己的需求修改该字段子列表页面的显示形式。如图:

 

 

 

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

    如有使用iMatrix平台问题请登录iMatrix平台论坛咨询:

   http://bbs.imatrix.net.cn/forum.php?mod=forumdisplay&fid=37

    或者加入QQ群307599527


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值